{"version":3,"file":"static/npm.elixir.a72430d5.js","mappings":"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","sources":["../node_modules/@elixir/customer-care/lib/Contracts/DataProviders/IAplGuidedTroubleshooterDataProvider.js","../node_modules/@elixir/customer-care/lib/Contracts/IInsight.js","../node_modules/@elixir/customer-care/lib/Contracts/IInstantAnswersSearchResult.js","../node_modules/@elixir/customer-care/lib/Contracts/IClients.js","../node_modules/@elixir/customer-care/lib/Contexts/AplContext/AplContext.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardContext.js","../node_modules/@elixir/customer-care/lib/Styling/Variables.js","../node_modules/@elixir/customer-care/lib/SolutionCard/AplSolutionCard.styles.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardItem/AplSolutionCardItem.styles.js","../node_modules/@elixir/customer-care/lib/Feedback/RelevancyFeedback.styles.js","../node_modules/@elixir/customer-care/lib/Feedback/RelevancyFeedback.js","../node_modules/@elixir/customer-care/lib/Feedback/ContentFeedback.styles.js","../node_modules/@elixir/customer-care/lib/Core/I18n/I18n.js","../node_modules/@elixir/customer-care/lib/Utils/Constants.js","../node_modules/@elixir/customer-care/lib/ApolloComponentsI18n.js","../node_modules/@elixir/customer-care/lib/CustomerReadyContent/AplCustomerReadyContent.types.js","../node_modules/@elixir/customer-care/lib/Feedback/ContentFeedback.js","../node_modules/@elixir/customer-care/lib/Markdown/AplMarkdown.styles.js","../node_modules/@elixir/customer-care/lib/Utils/MarkdownUtils.js","../node_modules/@elixir/customer-care/lib/Markdown/AplMarkdown.js","../node_modules/@elixir/customer-care/lib/CustomerReadyContent/AplCustomerReadyContent.styles.js","../node_modules/@elixir/customer-care/lib/Telemetry/AplTelemetry.types.js","../node_modules/@elixir/customer-care/lib/Utils/useId.js","../node_modules/@elixir/customer-care/lib/Telemetry/AplTelemetrySink.js","../node_modules/@elixir/customer-care/lib/Telemetry/AplLog.js","../node_modules/@elixir/customer-care/lib/Elements/Link/ExternalLinkLaunchIcon.js","../node_modules/@elixir/customer-care/lib/Elements/Link/AplLink.js","../node_modules/@elixir/customer-care/lib/Elements/Action/AplAction.js","../node_modules/@elixir/customer-care/lib/HtmlContent/AplHtmlContent.js","../node_modules/@elixir/customer-care/lib/CustomerReadyContent/AplCustomerReadyContent.js","../node_modules/@elixir/customer-care/lib/Core/Parsers/ResourceUriParser.js","../node_modules/@elixir/customer-care/lib/ImpactedResources/AplImpactedResourceLinks.js","../node_modules/@elixir/components/lib/common/hooks/useId.js","../node_modules/@elixir/components/lib/common/hooks/useLinkedState.js","../node_modules/@elixir/components/lib/common/hooks/useElementSize.js","../node_modules/@elixir/telemetry/lib/common/Functions.js","../node_modules/@elixir/telemetry/lib/loggers/ConsoleLogger.js","../node_modules/@elixir/telemetry/lib/TelemetryConfig.js","../node_modules/@elixir/telemetry/lib/LoggerService.js","../node_modules/@elixir/telemetry/lib/loggers/SilentLogger.js","../node_modules/@elixir/telemetry/lib/TelemetryService.js","../node_modules/@elixir/telemetry/lib/components/WorkflowContextProvider.js","../node_modules/@elixir/telemetry/lib/hooks/useInteractionTracker.js","../node_modules/@elixir/telemetry/lib/hooks/useDebounceInteractionTracker.js","../node_modules/@elixir/telemetry/lib/components/LoggerContextProvider.js","../node_modules/@elixir/styling/lib/Variables.js","../node_modules/@elixir/styling/lib/Mixins.js","../node_modules/@elixir/styling/lib/Utilities.js","../node_modules/@elixir/styling/lib/AzureThemeComponentOverrides.js","../node_modules/@elixir/styling/lib/hooks/useResponsiveContext.js","../node_modules/@elixir/styling/lib/Themes.js","../node_modules/@elixir/components/lib/Tooltip/ElxTooltip.base.js","../node_modules/@elixir/components/lib/Tooltip/ElxTooltip.js","../node_modules/@elixir/components/lib/Tooltip/ElxTooltip.styles.js","../node_modules/@elixir/components/lib/Button/ElxButtonBase.utility.js","../node_modules/@elixir/components/lib/Button/ElxButton.styles.js","../node_modules/@elixir/components/lib/Button/Variations/PrimaryButton.js","../node_modules/@elixir/components/lib/Button/Variations/SecondaryButton.js","../node_modules/@elixir/components/lib/Button/Variations/ActionButton.js","../node_modules/@elixir/components/lib/Button/Variations/CommandBarButton.js","../node_modules/@elixir/components/lib/common/utils/DateMath.js","../node_modules/@elixir/components/lib/common/utils/String.js","../node_modules/@elixir/components/lib/common/utils/Datetime.js","../node_modules/@elixir/components/lib/common/utils/Functions.js","../node_modules/@elixir/components/lib/InputBase/ElxInputBase.types.js","../node_modules/@elixir/components/lib/InputBase/ElxInputBase.styles.js","../node_modules/@elixir/components/lib/InputBase/useInputBase.js","../node_modules/@elixir/components/lib/InputBase/ElxInputBase.js","../node_modules/@elixir/components/lib/TextField/ElxTextField.styles.js","../node_modules/@elixir/components/lib/TextField/ElxTextField.js","../node_modules/@elixir/components/lib/DateTimePicker/ElxDateTimePicker.types.js","../node_modules/@elixir/components/lib/TextField/ElxTextField.utility.js","../node_modules/@elixir/components/lib/InputBase/ElxInputBase.utility.js","../node_modules/@elixir/components/lib/DateTimePicker/ElxDateTimePicker.constants.js","../node_modules/@elixir/components/lib/DateTimePicker/ElxDateTimePicker.styles.js","../node_modules/@elixir/components/lib/DateTimePicker/ElxDateTimePicker.utilities.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/getTimezoneUtcOffset.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/uiToRealDate.js","../node_modules/@elixir/components/lib/DateTimeControls/DateField/constants.js","../node_modules/@elixir/components/lib/DateTimeControls/Calendar/constants.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeSelector/constants.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/constants.js","../node_modules/@elixir/components/lib/DateTimeControls/AbsoluteTimeRangeSelector/constants.js","../node_modules/@elixir/components/lib/Localization/LocalizationContext.js","../node_modules/@elixir/components/lib/Localization/strings.js","../node_modules/@elixir/components/lib/Localization/useLocalization.js","../node_modules/@elixir/components/lib/DateTimeControls/DateField/ElxDateField.js","../node_modules/@elixir/components/lib/Filter/FilterProps.js","../node_modules/@elixir/components/lib/DateTimeControls/DateField/DateField.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/Calendar/ElxCalendar.js","../node_modules/@elixir/components/lib/DateTimeControls/Calendar/Calendar.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeSelector/TimeSelector.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeSelector/components/TimePickerSpinButton.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeSelector/components/TimeZoneDropdown.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeSelector/ElxTimeSelector.constants.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeSelector/ElxTimeSelector.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/extractDate.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/mergeDateTime.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/getLocalDateTime.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/realToUiDate.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/getDefaultDate.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/getUTCDate.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/ElxDateTimeSelector.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/DateTimeSelector.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/DateTimeSelector/utils/extractTime.js","../node_modules/@elixir/components/lib/DateTimeControls/AbsoluteTimeRangeSelector/ElxAbsoluteTimeRangeSelector.js","../node_modules/@elixir/components/lib/DateTimeControls/AbsoluteTimeRangeSelector/AbsoluteTimeRangeSelector.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/AbsoluteTimeRangeSelector/utils/getDefaultDateFrom.js","../node_modules/@elixir/components/lib/DateTimeControls/AbsoluteTimeRangeSelector/utils/getDefaultDateTo.js","../node_modules/@elixir/components/lib/DateTimeControls/RelativeTimeRangeSelector/constants.js","../node_modules/@elixir/components/lib/DateTimeControls/RelativeTimeRangeSelector/ElxRelativeTimeRangeSelector.js","../node_modules/@elixir/components/lib/DateTimeControls/RelativeTimeRangeSelector/RelativeTimeRangeSelector.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeSelector/constants.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeSelector/ElxTimeRangeSelector.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeSelector/TimeRangeSelector.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeFilterEditor/editor/TimeRangeEditor.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeFilterEditor/editor/TimeRangeEditor.styles.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeFilterEditor/editor/filterToTimeRange.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeFilterEditor/editor/timeRangeToFilter.js","../node_modules/@elixir/components/lib/DateTimeControls/TimeRangeFilterEditor/TimeRangeOption.js","../node_modules/@elixir/components/lib/DateTimePicker/ElxDateTimePicker.base.js","../node_modules/@elixir/components/lib/DateTimePicker/ElxDateTimePicker.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/Constants/AplScopingQuestionsConstants.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/AplScopingQuestionsWidget.styles.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/Helpers/FormElementVisibilityHelper.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/Helpers/FormElementsInfoBalloonHelper.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/Helpers/FormElementsValidationsHelper.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/Helpers/FormElementValidator.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/AplScopingQuestionsWidgetContext.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/AplScopingQuestionsFormElements.js","../node_modules/@elixir/customer-care/lib/InternalLink/AplInternalLink.js","../node_modules/@elixir/customer-care/lib/SolutionCard/AplSolutionCardContentRenderer.js","../node_modules/@elixir/customer-care/lib/Styling/MediaQueries.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardHeader/AplSolutionCardHeader.styles.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardContent/AplSolutionCardContent.styles.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardContent/AplSolutionCardContent.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardHeader/Sections/CollapserSection/CollapserSection.styles.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardHeader/Sections/CollapserSection/CollapserSection.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardHeader/Sections/TitleSection/TitleSection.styles.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardHeader/Sections/TitleSection/TitleSection.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardHeader/Sections/ActionSection/SolutionCardActionSection.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardHeader/AplSolutionCardHeader.js","../node_modules/@elixir/customer-care/lib/DiagnosticDetails/AplDiagnosticDetails.types.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardItem/AplSolutionCardItem.js","../node_modules/@elixir/customer-care/lib/SolutionCard/AplSolutionCard.js","../node_modules/@elixir/customer-care/lib/Utils/useCancellablePromise.js","../node_modules/@elixir/customer-care/lib/Elements/EmptyIllustration/EmptyIllustrationSvg.js","../node_modules/@elixir/customer-care/lib/Elements/EmptyIllustration/EmptyIllustration.js","../node_modules/@elixir/customer-care/lib/Elements/EmptyIllustration/EmptyIllustration.styles.js","../node_modules/@elixir/customer-care/lib/Styling/Mixins.js","../node_modules/@elixir/customer-care/lib/Mapper/SolutionCardMapper.js","../node_modules/@elixir/customer-care/lib/Elements/BaseWidget/AplWidget.styles.js","../node_modules/@elixir/customer-care/lib/Elements/BaseWidget/AplWidget.js","../node_modules/@elixir/customer-care/lib/Elements/Form/AplFormContext.js","../node_modules/@elixir/customer-care/lib/Elements/Form/AplForm.js","../node_modules/@elixir/customer-care/lib/Utils/debounce.js","../node_modules/@elixir/customer-care/lib/GuidedTroubleshooter/TroubleshooterUtils.js","../node_modules/@elixir/customer-care/lib/GuidedTroubleshooter/GuidedTroubleshooterStepFooter.js","../node_modules/@elixir/customer-care/lib/GuidedTroubleshooter/AplGuidedtroubleshooterStep.js","../node_modules/@elixir/customer-care/lib/GuidedTroubleshooter/AplGuidedtroubleshooterWidget.js","../node_modules/@elixir/customer-care/lib/Health/Context/AplHealthWidgetContext.js","../node_modules/@elixir/customer-care/lib/Utils/RetryUtils.js","../node_modules/@elixir/customer-care/lib/SolutionCard/SolutionCardUtils.js","../node_modules/@elixir/customer-care/lib/Insight/InsightUtil.js","../node_modules/@elixir/customer-care/lib/Insight/Context/AplInsightWidgetContext.js","../node_modules/@elixir/customer-care/lib/InstantAnswer/Context/AplInstantAnswersWidgetContext.js","../node_modules/@elixir/customer-care/lib/InstantAnswer/AplInstantAnswers.styles.js","../node_modules/@elixir/customer-care/lib/InstantAnswer/AplInstantAnswersUtil.js","../node_modules/@elixir/customer-care/lib/SolutionCardLite/AplSolutionCardLite.styles.js","../node_modules/@elixir/customer-care/lib/SolutionCardLite/AplSolutionCardLite.js","../node_modules/@elixir/customer-care/lib/InstantAnswer/Report/AplInstantAnswersLiteWidget.js","../node_modules/@elixir/customer-care/lib/ApolloReport/ApolloReportWidgetContext.js","../node_modules/@elixir/customer-care/lib/ApolloReport/ApolloReportConverter.js","../node_modules/@elixir/customer-care/lib/Elements/InlineLoader/InlineLoader.styles.js","../node_modules/@elixir/customer-care/lib/Elements/InlineLoader/InlineLoader.js","../node_modules/@elixir/customer-care/lib/Insight/Report/AplReportInsightWidget.styles.js","../node_modules/@elixir/customer-care/lib/Insight/Report/AplReportInsightWidget.js","../node_modules/@elixir/customer-care/lib/ScopingQuestions/AplScopingQuestionsWidget.js","../node_modules/@elixir/customer-care/lib/Video/AplVideo.style.js","../node_modules/@elixir/customer-care/lib/Video/AplVideoWidget.js","../node_modules/@elixir/customer-care/lib/VideoGroup/AplVideoGroup.style.js","../node_modules/@elixir/customer-care/lib/VideoGroup/AplVideoGroupWidget.js","../node_modules/@elixir/customer-care/lib/Metrics/Utils/MetricBladeUtil.types.js","../node_modules/@elixir/customer-care/lib/Metrics/Utils/MetricBladeUtil.js","../node_modules/@elixir/customer-care/lib/ApolloExtension/ApolloProvider.types.js","../node_modules/@elixir/customer-care/lib/Metrics/AplMetricWidget.js","../node_modules/@elixir/customer-care/lib/ApolloExtension/ApolloConversionHelper.js","../node_modules/@elixir/customer-care/lib/ApolloExtension/guid.js","../node_modules/@elixir/customer-care/lib/ApolloExtension/ApolloDataProvider.js","../node_modules/@elixir/customer-care/lib/Elements/Accordion/AplAccordion.styles.js","../node_modules/@elixir/customer-care/lib/Elements/Accordion/AplAccordion.js","../node_modules/@elixir/customer-care/lib/Section/AplSectionWidget.js","../node_modules/@elixir/customer-care/lib/ApolloReport/ApolloReportWidget.js","../node_modules/@elixir/customer-care/lib/ApolloReport/ApolloReportWidget.types.js"],"sourcesContent":["export var SelfHelpType;\n(function (SelfHelpType) {\n SelfHelpType[SelfHelpType[\"Generic\"] = 0] = \"Generic\";\n SelfHelpType[SelfHelpType[\"Resource\"] = 1] = \"Resource\";\n SelfHelpType[SelfHelpType[\"Tools\"] = 2] = \"Tools\";\n SelfHelpType[SelfHelpType[\"Diagnostics\"] = 3] = \"Diagnostics\";\n SelfHelpType[SelfHelpType[\"Rca\"] = 4] = \"Rca\";\n SelfHelpType[SelfHelpType[\"ServiceHealthInsights\"] = 5] = \"ServiceHealthInsights\";\n SelfHelpType[SelfHelpType[\"ProblemScopingQuestions\"] = 6] = \"ProblemScopingQuestions\";\n SelfHelpType[SelfHelpType[\"AdvisorRecommendationMetadata\"] = 7] = \"AdvisorRecommendationMetadata\";\n})(SelfHelpType || (SelfHelpType = {}));\n","export var LinkType;\n(function (LinkType) {\n LinkType[LinkType[\"Uri\"] = 0] = \"Uri\";\n LinkType[LinkType[\"Resource\"] = 1] = \"Resource\";\n LinkType[LinkType[\"AppLens\"] = 2] = \"AppLens\";\n})(LinkType || (LinkType = {}));\nexport var AdditionalInfoType;\n(function (AdditionalInfoType) {\n AdditionalInfoType[AdditionalInfoType[\"Unknown\"] = 0] = \"Unknown\";\n AdditionalInfoType[AdditionalInfoType[\"Text\"] = 1] = \"Text\";\n AdditionalInfoType[AdditionalInfoType[\"Link\"] = 2] = \"Link\";\n})(AdditionalInfoType || (AdditionalInfoType = {}));\n","export var InstantAnswerConfidenceLevel;\n(function (InstantAnswerConfidenceLevel) {\n InstantAnswerConfidenceLevel[\"Low\"] = \"Low\";\n InstantAnswerConfidenceLevel[\"Medium\"] = \"Medium\";\n InstantAnswerConfidenceLevel[\"High\"] = \"High\";\n})(InstantAnswerConfidenceLevel || (InstantAnswerConfidenceLevel = {}));\nexport var InstantAnswerSearchType;\n(function (InstantAnswerSearchType) {\n InstantAnswerSearchType[\"Community\"] = \"Community\";\n InstantAnswerSearchType[\"Support\"] = \"Support\";\n InstantAnswerSearchType[\"Documentation\"] = \"Documentation\";\n InstantAnswerSearchType[\"ICM\"] = \"ICM\";\n})(InstantAnswerSearchType || (InstantAnswerSearchType = {}));\n","export var ClientType;\n(function (ClientType) {\n ClientType[ClientType[\"Internal\"] = 0] = \"Internal\";\n ClientType[ClientType[\"External\"] = 1] = \"External\";\n})(ClientType || (ClientType = {}));\n","import React from 'react';\nconst ctx = React.createContext(null);\nexport const AplContext = ctx.Provider;\nexport function useSupportContext() {\n const supportContext = React.useContext(ctx);\n return supportContext;\n}\n","import React from 'react';\nconst SolutionCardContext = React.createContext({\n openKeys: {},\n setItemOpen: () => {\n throw new Error('No SolutionCard Context wrapped');\n },\n setItemClosed: () => {\n throw new Error('No SolutionCard Context wrapped');\n },\n});\n/**\n * SolutionCard context keeps track of the open items and provides methods to update expanded/collapsed state of solution cards.\n * @param props {unknown}\n * @returns {React.ReactElement} context wrapped component\n */\nexport function SolutionCardContextProvider({ children }) {\n const [openKeys, setOpenKeys] = React.useState({});\n const setItemOpen = (keyToSetOpen) => setOpenKeys((openKeys) => (Object.assign(Object.assign({}, openKeys), { [keyToSetOpen]: true })));\n const setItemClosed = (keyToSetClose) => setOpenKeys((openKeys) => (Object.assign(Object.assign({}, openKeys), { [keyToSetClose]: false })));\n return (React.createElement(SolutionCardContext.Provider, { value: { openKeys, setItemClosed, setItemOpen } }, children));\n}\n/**\n * Hook to get the solution card context data\n * @returns {ISolutionCardContext} the entire context object, openKeys, setItemOpen and setItemClosed callbacks\n */\nexport function useSolutionCardContext() {\n return React.useContext(SolutionCardContext);\n}\n/**\n * Is the solution card with key in expanded state ?\n * @param solutionCardKey {string} the unique key identifying the solution card\n * @param isDefaultOpen {boolean} sets the default state of the card which is extracted from\n * @returns {boolean} is the solution card open currently\n */\nexport function useSolutionCardOpen(solutionCardKey, isDefaultOpen) {\n const { openKeys, setItemOpen } = useSolutionCardContext();\n React.useEffect(() => {\n if (isDefaultOpen) {\n setItemOpen(solutionCardKey);\n }\n }, [isDefaultOpen, solutionCardKey]);\n return React.useMemo(() => !!solutionCardKey && !!openKeys[solutionCardKey], [openKeys, solutionCardKey]);\n}\n","export const MaxWidgetWidth = '1200px';\n// Icon colors for diagnostic details\nexport const checkGreen = '#57A300';\nexport const syncBlue = '#015CDA';\nexport const errorRed = '#A4262C';\nexport const infoBorder = '#015CDA';\nexport const criticalBorder = '#A4262C';\nexport const warningBorder = '#DB7500';\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { infoBorder, criticalBorder, warningBorder } from '../Styling/Variables';\nconst classNames = {\n root: 'apl-solutionCard',\n cardItem: 'apl-solutionCard-item',\n};\nexport const useClassNames = (props) => {\n return React.useMemo(() => mergeStyleSets({\n root: [classNames.root],\n cardItem: [classNames.cardItem],\n }, props.styles), [props.styles]);\n};\nexport function useImportanceLevelColor(importanceLevel) {\n const importanceLevelColors = {\n Informational: infoBorder,\n Warning: warningBorder,\n Critical: criticalBorder,\n };\n return React.useMemo(() => (importanceLevel ? importanceLevelColors[importanceLevel] : undefined), [importanceLevel]);\n}\nexport function useImportanceLevelBorder(importanceLevel) {\n const color = useImportanceLevelColor(importanceLevel);\n return React.useMemo(() => (color ? { borderLeft: `4px solid ${color}` } : undefined), [color]);\n}\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nimport { MaxWidgetWidth } from '../../Styling/Variables';\nimport { useImportanceLevelBorder } from '../AplSolutionCard.styles';\nconst classNames = {\n root: 'apl-solutionCardItem',\n};\nexport const useClassNames = (props) => {\n const { importanceLevel } = props;\n const theme = useTheme();\n const border = useImportanceLevelBorder(importanceLevel);\n return React.useMemo(() => mergeStyleSets({\n root: [\n classNames.root,\n border,\n {\n display: 'flex',\n flexFlow: 'column nowrap',\n maxWidth: MaxWidgetWidth,\n marginBottom: '10px',\n border: `2px solid ${theme.palette.neutralLight}`,\n },\n ],\n }, props.styles), [theme, props]);\n};\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nconst classNames = {\n container: 'apl-relevancyfeedback',\n label: 'apl-relevancyfeedback-label',\n rfeedbackButton: 'apl-relevancyfeedback-button',\n};\nexport const useClassNames = () => {\n const theme = useTheme();\n const { fonts } = theme;\n const styleSet = {\n container: [classNames.container, { display: 'flex', flexWrap: 'wrap', alignItems: 'flex-start' }],\n label: [classNames.label, { marginRight: '8px' }],\n rfeedbackButton: [\n classNames.rfeedbackButton,\n {\n marginRight: '8px',\n fontSize: fonts.medium.fontSize,\n height: 'auto',\n },\n ],\n };\n return React.useMemo(() => mergeStyleSets(styleSet), [theme]);\n};\n","import React from 'react';\nimport { ActionButton } from '@fluentui/react/lib/Button';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { useClassNames } from './RelevancyFeedback.styles';\nexport const AplRelevancyFeedback = ({ label = 'Send Feedback', onRelevancyFeedback, binary, }) => {\n const [answered, setAnswered] = React.useState();\n const onFeedback = React.useCallback((sentiment) => {\n if (onRelevancyFeedback) {\n setAnswered(sentiment);\n onRelevancyFeedback(sentiment);\n }\n }, [onRelevancyFeedback]);\n const classNames = useClassNames();\n return (React.createElement(\"div\", { className: classNames.container },\n React.createElement(Text, { className: classNames.label }, label),\n answered && React.createElement(Stack.Item, null,\n \"You responded \\\"\",\n answered,\n \"\\\"\"),\n !answered && (React.createElement(\"div\", null,\n React.createElement(ActionButton, { className: classNames.rfeedbackButton, iconProps: { iconName: 'Like' }, ariaLabel: 'Yes', onClick: () => onFeedback('Yes') }, \"Yes\"),\n !binary && (React.createElement(ActionButton, { className: classNames.rfeedbackButton, iconProps: { iconName: 'EmojiNeutral' }, ariaLabel: 'Partially', onClick: () => onFeedback('Partially') }, \"Partially\")),\n React.createElement(ActionButton, { className: classNames.rfeedbackButton, iconProps: { iconName: 'Dislike' }, ariaLabel: 'No', onClick: () => onFeedback('No') }, \"No\")))));\n};\n","import { mergeStyleSets } from '@fluentui/react/lib/Styling';\nconst classNames = {\n container: 'apl-contentfeedback',\n label: 'apl-contentfeedback-label',\n};\nexport const getClassNames = () => {\n const styleSet = {\n container: [classNames.container, { display: 'flex', alignItems: 'center' }],\n label: [classNames.label, { marginRight: '5px' }],\n };\n return mergeStyleSets(styleSet);\n};\n","import { initReactI18next } from 'react-i18next';\nimport i18n from 'i18next';\nimport { en } from './locales/en';\nimport { cs } from './locales/cs';\nimport { de } from './locales/de';\nimport { es } from './locales/es';\nimport { fr } from './locales/fr';\nimport { hu } from './locales/hu';\nimport { it } from './locales/it';\nimport { ja } from './locales/ja';\nimport { id } from './locales/id';\nimport { ko } from './locales/ko';\nimport { nl } from './locales/nl';\nimport { pl } from './locales/pl';\nimport { pt_br } from './locales/pt-br';\nimport { pt_pt } from './locales/pt-pt';\nimport { ru } from './locales/ru';\nimport { sv } from './locales/sv';\nimport { tr } from './locales/tr';\nimport { zh_hans } from './locales/zh-hans';\nimport { zh_hant } from './locales/zh-hant';\n/**\n * I18n class to hold strings for Apollo components\n * The default language is always assumed to be `en`\n */\nexport class I18n {\n constructor(options) {\n /**\n * Dictionary of language vocabulary dictionary\n * { en: { STRING_KEY: STRING_VALUE } }\n */\n this._vocabsDict = {};\n this._options = Object.assign({}, options);\n let language = this._options.language;\n if (!language && typeof window !== 'undefined' && window && window.navigator) {\n language = window.navigator.language && window.navigator.language.split('-')[0];\n }\n else if (!language) {\n language = 'en';\n }\n this._language = language;\n }\n get(key) {\n return this.getForLanguage(key, this._language);\n }\n getForLanguage(key, language) {\n const langDict = this._vocabsDict[language];\n if (!langDict) {\n return this.getForLanguage(key, 'en');\n }\n return langDict[key];\n }\n setLanguage(language) {\n this._language = language;\n }\n putLanguageVocabularies(language, vocabularies) {\n if (!this._vocabsDict) {\n this._vocabsDict = {};\n }\n let languageDict = this._vocabsDict[language] || {};\n languageDict = Object.assign(languageDict, vocabularies);\n this._vocabsDict[language] = languageDict;\n }\n}\n/**\n * Used to initalize localization for strings in this lib.\n * Needs to be initalized by all clients, even if the only language support you need is English.\n *\n * @param lang - Initial language. Supported languages - en.\n * If lang value is not any of the above supported languges, it will default to English(en).\n */\nexport function loadAplI18n(lang) {\n i18n.use(initReactI18next).init({\n lng: lang,\n fallbackLng: 'en',\n resources: {\n en: { translation: en },\n cs: { translation: cs },\n de: { translation: de },\n es: { translation: es },\n fr: { translation: fr },\n hu: { translation: hu },\n id: { translation: id },\n it: { translation: it },\n ja: { translation: ja },\n ko: { translation: ko },\n nl: { translation: nl },\n pl: { translation: pl },\n pt_pt: { translation: pt_pt },\n pt_br: { translation: pt_br },\n ru: { translation: ru },\n sv: { translation: sv },\n tr: { translation: tr },\n zh_hans: { translation: zh_hans },\n zh_hant: { translation: zh_hant },\n },\n });\n}\n/**\n * Updates the language in which strings are localized to.\n * Cannot be used before loadAplI18n is called to be initalized.\n *\n * @param lang - Language to update to. Supported languages - en.\n * If lang value is not any of the above supported languges, it will default to English(en).\n */\nexport function changeAplLanguage(lang) {\n i18n.changeLanguage(lang);\n}\n","// Customer Ready Content\n// Replacement strings\nexport const CRC_BodyContent = '__BodyContent__';\nexport const CRC_MailSubject = '__MailSubject__';\nexport const CRC_SendToEmail = '__SendToEmail__';\nexport const CRC_CustomerName = '__CustomerName__';\nexport const CRC_Content = '__Content__';\nexport const CRC_SrId = '__SrId__';\n","import { I18n } from './Core';\nimport { CRC_BodyContent, CRC_Content, CRC_CustomerName, CRC_MailSubject, CRC_SendToEmail, CRC_SrId, } from './Utils/Constants';\nconst VocubulariesByLanguage = {\n en: {\n CustomerReadyContent: `To: ${CRC_SendToEmail}\nCc: support@mail.support.microsoft.com\nSubject: ${CRC_MailSubject}\nX-Unsent: 1\nContent-Type: text/html\n\n\n\n\n${CRC_BodyContent}\n\n`,\n CustomerReadyContentGreet: `

Hello ${CRC_CustomerName},

\n

Thank you for contacting Microsoft Support. I am the Support Professional who will be working with you on this Service Request. You may reach me using the contact information listed below, referencing the SR number ${CRC_SrId}

\n${CRC_Content}\n

If you have any questions or concerns, please let me know.

\n

Best regards,

`,\n CopyContent: 'Copy content',\n NewEmail: 'New email',\n ContentFeedbackLabel: 'Send Feedback',\n RelevancyFeedbackLabel: 'Did this help resolve the customer problem?',\n },\n};\nconst ApolloI18n = new I18n();\nfor (const lang in VocubulariesByLanguage) {\n ApolloI18n.putLanguageVocabularies(lang, VocubulariesByLanguage[lang]);\n}\nexport default ApolloI18n;\n","export var CustomerReadyContentActionTypes;\n(function (CustomerReadyContentActionTypes) {\n CustomerReadyContentActionTypes[CustomerReadyContentActionTypes[\"contentCopied\"] = 0] = \"contentCopied\";\n CustomerReadyContentActionTypes[CustomerReadyContentActionTypes[\"sendEmail\"] = 1] = \"sendEmail\";\n})(CustomerReadyContentActionTypes || (CustomerReadyContentActionTypes = {}));\n","import React from 'react';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { IconButton } from '@fluentui/react/lib/Button';\nimport { getClassNames } from './ContentFeedback.styles';\nimport ApolloI18n from '../ApolloComponentsI18n';\nexport const AplContentFeedback = ({ label = ApolloI18n.get('ContentFeedbackLabel'), onContentFeedback, frownAriaLabel = 'send frown feedback', smileAriaLabel = 'send smile feedback', useDefaultLabel, }) => {\n const onFeedback = React.useCallback((sentiment) => {\n if (onContentFeedback) {\n onContentFeedback(sentiment);\n }\n }, [onContentFeedback]);\n const classNames = getClassNames();\n return (React.createElement(\"div\", { className: classNames.container },\n useDefaultLabel && React.createElement(Text, { className: classNames.label }, label),\n React.createElement(\"div\", null,\n React.createElement(IconButton, { \"data-testid\": \"smileIconButton\", ariaLabel: smileAriaLabel, iconProps: { iconName: 'Emoji2' }, onClick: () => onFeedback('smile') }),\n React.createElement(IconButton, { \"data-testid\": \"frownIconButton\", ariaLabel: frownAriaLabel, iconProps: { iconName: 'Sad' }, onClick: () => onFeedback('frown') }))));\n};\n","import React from 'react';\nimport { mergeStyleSets, FontWeights } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nconst classNames = {\n root: 'apl-markdown',\n};\nexport const useClassNames = () => {\n const theme = useTheme();\n const { fonts } = theme;\n const styleSet = {\n root: [\n classNames.root,\n fonts.medium,\n {\n overflow: 'auto',\n overflowWrap: 'break-word',\n h1: fonts.large,\n h3: fonts.medium.fontSize,\n h8: fonts.small,\n a: fonts.medium,\n selectors: {\n h2: {\n fonts: fonts.large,\n fontWeight: FontWeights.bold,\n },\n table: {\n fontSize: fonts.small.fontSize,\n borderSpacing: '0px',\n border: `1px solid ${theme.palette.neutralLight}`,\n marginBottom: '25px',\n },\n td: {\n border: `1px solid ${theme.palette.neutralLight}`,\n textAlign: 'left',\n padding: '2px',\n },\n th: {\n border: `1px solid ${theme.palette.neutralLight}`,\n textAlign: 'left',\n padding: '2px',\n },\n p: {\n fontSize: '13px',\n margin: '12px 0',\n padding: 0,\n },\n ul: {\n paddingInlineStart: '16px',\n },\n ol: {\n paddingInlineStart: '16px',\n },\n li: {\n marginLeft: '8px',\n },\n img: {\n marginTop: '10px',\n width: '100%',\n maxWidth: '900px',\n },\n pre: {\n fonts: fonts.medium.fontSize,\n border: `1px solid ${theme.palette.neutralLight}`,\n borderLeft: `7px solid ${theme.palette.neutralLight}`,\n padding: '16px 10px 16px 15px',\n margin: '5px 0px',\n overflowX: 'auto',\n },\n },\n },\n ],\n };\n return React.useMemo(() => mergeStyleSets(styleSet), [theme]);\n};\n","import dompurify from 'dompurify';\nexport const sanitizeMarkdown = (markdown) => {\n return dompurify.sanitize(markdown);\n};\n","import React from 'react';\nimport ReactMarkdown from 'react-markdown/with-html';\nimport gfm from 'remark-gfm';\nimport { useClassNames } from './AplMarkdown.styles';\nimport { sanitizeMarkdown } from '../Utils/MarkdownUtils';\nexport const AplMarkdown = ({ markdown, allowDangerousHtml = false }) => {\n const classNames = useClassNames();\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(ReactMarkdown, { plugins: [gfm], linkTarget: \"_blank\", allowDangerousHtml: allowDangerousHtml }, sanitizeMarkdown(markdown))));\n};\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nimport { ClientType } from '../Contracts';\nconst classNames = {\n root: 'apl-customerreadycontent',\n actions: 'apl-customerreadycontent-actions',\n markdownContainer: 'apl-customerreadycontent-markdown',\n};\nexport const useClassNames = (context) => {\n const theme = useTheme();\n const { palette } = theme;\n const markdownBackground = context && context.clientType && context.clientType == ClientType.External ? 'inherit' : palette.neutralLighter;\n const styleSet = {\n root: [classNames.root],\n actions: [\n classNames.actions,\n {\n display: 'flex',\n flexFlow: 'row wrap',\n backgroundColor: palette.neutralLight,\n },\n ],\n markdownContainer: [\n classNames.markdownContainer,\n {\n backgroundColor: markdownBackground,\n padding: context && context.clientType && context.clientType == ClientType.External ? '0' : '1rem 1rem',\n },\n ],\n };\n return React.useMemo(() => mergeStyleSets(styleSet), [theme]);\n};\n","/**\n * Component types in apollo report.\n */\nexport var AplComponentType;\n(function (AplComponentType) {\n AplComponentType[\"Report\"] = \"Report\";\n AplComponentType[\"Insight\"] = \"Insight\";\n AplComponentType[\"InstantAnswer\"] = \"InstantAnswer\";\n AplComponentType[\"CustomerReadyContent\"] = \"CustomerReadyContent\";\n AplComponentType[\"Action\"] = \"Action\";\n AplComponentType[\"Video\"] = \"Video\";\n AplComponentType[\"VideoGroup\"] = \"VideoGroup\";\n AplComponentType[\"ScopingQuestions\"] = \"ScopingQuestions\";\n AplComponentType[\"Metric\"] = \"Metric\";\n AplComponentType[\"Section\"] = \"Section\";\n})(AplComponentType || (AplComponentType = {}));\n","import React from 'react';\nimport { getId } from '@fluentui/react/lib/Utilities';\n/**\n * Get unique Id consistent across react re-renders\n * @param {string} prefix\n * @returns {string}\n */\nexport function useId(prefix) {\n const ref = React.useRef();\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n return ref.current;\n}\n","import React from 'react';\nconst TelemetrySinkContext = React.createContext({ handler: () => null });\n/**\n * Telemetry sink used by the application to consume events from the underlying components\n * Ex. \n * \n * \n * @param {IAplTelemetrySinkProps}\n */\nexport function AplTelemetrySink({ outlet, children }) {\n const localHandler = React.useCallback((event) => {\n if (outlet) {\n outlet([event]);\n }\n }, [outlet]);\n return React.createElement(TelemetrySinkContext.Provider, { value: { handler: localHandler } }, children);\n}\nexport function useTelemetrySink() {\n const context = React.useContext(TelemetrySinkContext);\n return {\n push: context.handler,\n };\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { useTelemetrySink } from './AplTelemetrySink';\nconst LogContext = React.createContext(undefined);\nexport function AplLog(_a) {\n var { children, logImpression } = _a, logProps = __rest(_a, [\"children\", \"logImpression\"]);\n const parentLog = useAplLog();\n const sink = useTelemetrySink();\n React.useEffect(() => {\n if (logImpression) {\n sink.push(Object.assign(Object.assign({}, logProps), { eventType: 'impression' }));\n }\n }, []);\n const combinedProps = Object.assign(Object.assign({}, parentLog), logProps);\n return React.createElement(LogContext.Provider, { value: combinedProps }, children);\n}\nexport function useAplLog() {\n const log = React.useContext(LogContext);\n return log;\n}\n","import React from 'react';\nimport { useTheme } from '@fluentui/react';\n/**\n * Launch icon for external links.\n */\nexport function ExternalLinkLaunchIcon() {\n const theme = useTheme();\n const { palette } = theme;\n return (React.createElement(\"svg\", { style: { fill: palette.themePrimary, marginLeft: '5px' }, xmlns: \"http://www.w3.org/2000/svg\", width: \"14\", height: \"14\", viewBox: \"0 0 16 16\" },\n React.createElement(\"path\", { d: \"M14.3,1.5H10V.5h6v6H15V2.2l-8,8-.7-.7Z\" }),\n React.createElement(\"path\", { d: \"M11,8.5v5a.9.9,0,0,1-.787,1,.948.948,0,0,1-.213,0H2a.9.9,0,0,1-1-.787A.948.948,0,0,1,1,13.5v-7a.9.9,0,0,1,.787-1A.948.948,0,0,1,2,5.5H8l1-1H2a2,2,0,0,0-2,2v7a2,2,0,0,0,2,2h8a2,2,0,0,0,2-2v-6Z\" })));\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { Link } from '@fluentui/react/lib/Link';\nimport { ExternalLinkLaunchIcon } from './ExternalLinkLaunchIcon';\nexport const AplLink = (props) => {\n // Some properties in IAplLinkProps is not DOM related attributes, so excluding them.\n const { isExternal, children } = props, linkProps = __rest(props, [\"isExternal\", \"children\"]);\n // Default to internal link\n const isExternalLink = isExternal !== null && isExternal !== void 0 ? isExternal : false;\n return (React.createElement(Link, Object.assign({}, linkProps),\n React.createElement(React.Fragment, null,\n children,\n isExternalLink && React.createElement(ExternalLinkLaunchIcon, null))));\n};\n","import React from 'react';\nimport { PrimaryButton } from '@fluentui/react/lib/Button';\nimport { AplLink } from '../Link/AplLink';\nimport { useAplLog } from '../../Telemetry/AplLog';\nimport { AplComponentType } from '../../Telemetry/AplTelemetry.types';\nimport { useTelemetrySink } from '../../Telemetry/AplTelemetrySink';\n/**\n * Component to render links and buttons in apollo report.\n *\n * @param props\n * @returns\n */\nexport const AplAction = (props) => {\n const { href, children, asButton, onClick } = props;\n const { logEvent, isExternalLink, actionTarget } = useAplAction(props);\n React.useEffect(() => {\n if (logEvent) {\n // Log when AplAction is displayed.\n logEvent('impression');\n }\n }, [logEvent]);\n const onActionClick = React.useCallback((event) => {\n // Log when AplAction is clicked.\n if (logEvent && isExternalLink) {\n logEvent('interaction');\n }\n if (onClick) {\n onClick(event);\n }\n }, [onClick]);\n return asButton ? (React.createElement(PrimaryButton, { href: href, target: actionTarget, onClick: onActionClick }, children)) : (React.createElement(AplLink, { href: href, target: actionTarget, isExternal: isExternalLink, onClick: onActionClick }, children));\n};\n/**\n * AplAction usage function\n */\nfunction useAplAction(props) {\n const parentLog = useAplLog();\n const sink = useTelemetrySink();\n const { asButton, logData, target, isExternal } = props;\n // default to internal link\n const isExternalLink = isExternal !== null && isExternal !== void 0 ? isExternal : false;\n // For external link, override the target with '_blank'.\n const actionTarget = isExternalLink ? '_blank' : target;\n const actionLog = React.useMemo(() => {\n const actionLogData = {\n component: AplComponentType.Action,\n data: {\n title: props.children,\n isExternal: isExternalLink,\n isButton: asButton,\n reportId: logData === null || logData === void 0 ? void 0 : logData.reportId,\n additionalData: logData,\n },\n };\n return (parentLog ? Object.assign({ innerLog: actionLogData }, parentLog) : actionLogData);\n }, [asButton, logData, target]);\n const logEvent = React.useCallback((eventType) => {\n if (sink) {\n const innerLog = actionLog.innerLog ? Object.assign(Object.assign({}, actionLog.innerLog), { eventType: eventType }) : undefined;\n sink.push(Object.assign(Object.assign({}, actionLog), { innerLog: innerLog, eventType: eventType }));\n }\n }, [sink, actionLog]);\n return { logEvent, isExternalLink, actionTarget };\n}\n","import React from 'react';\nimport ReactHtmlParser, { convertNodeToElement } from 'react-html-parser';\nimport { AplAction } from '../Elements/Action/AplAction';\nimport { useAplLog } from '../Telemetry';\nimport { useClassNames } from '../Markdown/AplMarkdown.styles';\n/**\n * Renderes HTML content. Accepts a custom html node processor.\n *\n * @param props IAplHtmlContentProps\n * @returns\n */\nexport const AplHtmlContent = (props) => {\n const parentLog = useAplLog();\n const { htmlContent, logData, nodeProcessor, actionHandler } = props;\n const transform = getAplHtmlTransform(nodeProcessor, actionHandler, parentLog, logData);\n const classNames = useClassNames();\n return React.createElement(\"div\", { className: classNames.root }, ReactHtmlParser(htmlContent, { transform }));\n};\n/**\n * Identifies if link needs to be rendered as a button.\n *\n * @param attribs\n * @returns\n */\nconst shouldRenderAsButton = (attribs) => {\n return (attribs['button-link'] === '' ||\n attribs['button-link'] === 'button-link' ||\n attribs['button-data-blade'] === 'button-data-blade' ||\n attribs['button-data-context'] === 'button-data-context');\n};\n/**\n * Get data for on link click callback.\n *\n * @param attribs attributes in html node.\n * @param parentLog log data of the enclosing component. Eg: Insight log if this content is rendered for an insight.\n * @returns\n */\nconst getData = (attribs, children, parentLog, htmlLogData) => {\n var _a;\n return {\n dataBlade: attribs['data-blade'],\n additionalData: Object.assign(Object.assign({}, attribs), { title: (_a = children === null || children === void 0 ? void 0 : children.toString()) !== null && _a !== void 0 ? _a : '', reportId: (htmlLogData === null || htmlLogData === void 0 ? void 0 : htmlLogData.reportId) || '' }),\n logData: parentLog,\n };\n};\nfunction getAplHtmlTransform(nodeProcessor, actionHandler, parentLog, logData) {\n const transform = (node, index) => {\n let newNode = null;\n if (nodeProcessor) {\n newNode = nodeProcessor(node, index);\n }\n if (newNode === null) {\n if (node.type === 'tag' && node.name === 'pre') {\n const children = convertNodeToElement(node.children[0], index);\n // Adding tabIndex=0 so that this element participates in the\n // selection while using tab key in the keyboard to navigate\n // and to make the scroll accessible.\n newNode = React.createElement(\"pre\", { tabIndex: 0 }, children);\n }\n }\n if (newNode === null) {\n if (node.type === 'tag' && node.name === 'a') {\n const children = convertNodeToElement(node.children[0], index);\n newNode = (React.createElement(AplAction, { href: node.attribs['href'], target: node.attribs['target'], isExternal: !node.attribs['data-blade'], asButton: shouldRenderAsButton(node.attribs), \n // passing all attributes of the node for logging.\n logData: Object.assign(Object.assign({}, node.attribs), { reportId: (logData === null || logData === void 0 ? void 0 : logData.reportId) || '' }), onClick: () => {\n // When there is no href attribute, we do not know how to handle the click.\n // So, invoke actionHandler and let the client handle the click.\n if (!node.attribs['href'] && actionHandler) {\n actionHandler(getData(node.attribs, children, parentLog, logData));\n }\n } }, children));\n }\n }\n if (newNode !== null) {\n return newNode;\n }\n };\n return transform;\n}\n","import React from 'react';\nimport { ActionButton } from '@fluentui/react/lib/Button';\nimport ClipboardJS from 'clipboard';\nimport { useClassNames } from './AplCustomerReadyContent.styles';\nimport { CustomerReadyContentActionTypes, } from './AplCustomerReadyContent.types';\nimport { useId } from '../Utils/useId';\nimport { sanitizeMarkdown } from '../Utils/MarkdownUtils';\nimport { CRC_BodyContent, CRC_Content, CRC_CustomerName, CRC_MailSubject, CRC_SendToEmail, CRC_SrId, } from '../Utils/Constants';\nimport ApolloI18n from '../ApolloComponentsI18n';\nimport { useAplLog, useTelemetrySink } from '../Telemetry';\nimport { ClientType } from '../Contracts';\nimport { AplHtmlContent } from '../HtmlContent/AplHtmlContent';\nexport const AplCustomerReadyContent = (props) => {\n const { markdown, context, actionHandler } = props;\n const { openEmail, onContentCopied } = useCustomerReadyContent(props);\n const classNames = useClassNames(context);\n const id = useId('apl-customerreadycontent');\n // Using the id as a class name to bind clipboardjs object with content and copy button\n const clipboard = new ClipboardJS(`.${id}`);\n clipboard.on('success', () => onContentCopied());\n return (React.createElement(\"div\", null,\n (!context || !context.clientType || context.clientType != ClientType.External) && (React.createElement(\"div\", { className: classNames.actions },\n React.createElement(ActionButton, { className: id, \"data-testid\": \"crCopyBtn\", \"data-clipboard-target\": `#${id}`, iconProps: { iconName: 'Copy' } }, ApolloI18n.get('CopyContent')),\n React.createElement(ActionButton, { \"data-testid\": \"crNewEmailBtn\", onClick: () => openEmail(), iconProps: { iconName: 'EditMail' } }, ApolloI18n.get('NewEmail')))),\n React.createElement(\"div\", { id: id, className: classNames.markdownContainer },\n React.createElement(AplHtmlContent, { htmlContent: markdown, actionHandler: actionHandler }))));\n};\nfunction useCustomerReadyContent({ srId, title, markdown, customerEmail, customerName, logProps, }) {\n const log = useAplLog();\n const sink = useTelemetrySink();\n const openEmail = React.useCallback(() => {\n if (sink) {\n sink.push(Object.assign(Object.assign(Object.assign({}, log), logProps), { component: 'CustomerReadyContent', action: CustomerReadyContentActionTypes[CustomerReadyContentActionTypes.sendEmail] }));\n }\n downloadAsEmail(srId, title, markdown, customerEmail, customerName);\n }, [srId, title, markdown, customerEmail, customerName, logProps]);\n const onContentCopied = React.useCallback(() => {\n if (sink) {\n sink.push(Object.assign(Object.assign(Object.assign({}, log), logProps), { component: 'CustomerReadyContent', action: CustomerReadyContentActionTypes[CustomerReadyContentActionTypes.contentCopied] }));\n }\n }, [logProps]);\n return {\n srId,\n customerEmail,\n customerName,\n openEmail,\n title,\n onContentCopied,\n };\n}\nconst downloadAsEmail = (srId, title, content, customerEmail, customerName) => {\n const subject = '[REG:' + srId + '] ' + title;\n const templateMapObj = {};\n templateMapObj[CRC_BodyContent] = contentGreetWrapper(sanitizeMarkdown(content), customerName, srId);\n templateMapObj[CRC_MailSubject] = subject;\n templateMapObj[CRC_SendToEmail] = customerEmail;\n const replace = `\\\\${CRC_MailSubject}|${CRC_SendToEmail}|${CRC_BodyContent}`;\n const regex = new RegExp(replace, 'g');\n const mailto = ApolloI18n.get('CustomerReadyContent').replace(regex, function (matched) {\n return templateMapObj[matched];\n });\n const data = new Blob([mailto], { type: 'text/html' });\n if (navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(data, 'CaseEmail.eml');\n }\n else {\n const textFile = window.URL.createObjectURL(data);\n download('CaseEmail.eml', textFile);\n }\n};\nconst download = (filename, text) => {\n const element = document.createElement('a');\n element.setAttribute('href', text);\n element.setAttribute('download', filename);\n element.style.display = 'none';\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n};\nconst contentGreetWrapper = (content, customerName, srId) => {\n const replace = `\\\\${CRC_Content}|${CRC_Content}`;\n const regex = new RegExp(replace, 'g');\n const templateMapObj = {};\n templateMapObj[CRC_Content] = content;\n templateMapObj[CRC_CustomerName] = customerName;\n templateMapObj[CRC_SrId] = srId;\n return ApolloI18n.get('CustomerReadyContentGreet').replace(regex, function (matched) {\n return templateMapObj[matched];\n });\n};\n","/**\n * For parsing resource URIs\n */\nexport class ResourceUriParser {\n constructor(resourceUri) {\n this.subscriptionId = '';\n this.resourceType = '';\n this.resourceGroup = '';\n this.resourceInstanceName = '';\n this.resourceUri = '';\n if (!!resourceUri) {\n const subscriptionPart = resourceUri.substring(resourceUri.indexOf('/subscriptions/') + 15);\n this.subscriptionId = subscriptionPart.substring(0, subscriptionPart.indexOf('/'));\n const resourceTypePart = resourceUri.substring(resourceUri.indexOf('/providers/') + 11);\n this.resourceType = resourceTypePart.substring(0, resourceTypePart.lastIndexOf('/'));\n const resourceGroupPart = resourceUri.substring(resourceUri.indexOf('/resourceGroups/') + 16);\n this.resourceGroup = resourceGroupPart.substring(0, resourceGroupPart.indexOf('/'));\n this.resourceInstanceName = resourceUri.substring(resourceUri.lastIndexOf('/') + 1);\n this.resourceUri = resourceUri;\n }\n }\n}\n","import React from 'react';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { Link } from '@fluentui/react/lib/Link';\nimport { ResourceUriParser } from '../Core/Parsers/ResourceUriParser';\nimport { useSupportContext } from '../Contexts/AplContext';\nexport function AplImpactedResourcesLinks(props) {\n const { links } = useImpactedResources(props);\n return (React.createElement(Stack, null,\n links &&\n links.length &&\n links.map((link, index) => (React.createElement(Text, { key: index },\n React.createElement(Link, Object.assign({}, link, { target: \"_blank\" }), link.text)))),\n !links && '--'));\n}\nfunction useImpactedResources({ resources, deeplinkHelper }) {\n const supportContext = useSupportContext();\n const getResourceDeeplink = impactedResourceLinkFactory(deeplinkHelper, supportContext === null || supportContext === void 0 ? void 0 : supportContext.srId);\n const resourceLinks = React.useMemo(() => {\n const items = [];\n resources.forEach((resource) => {\n if (resource) {\n const link = transformResourceToLink(resource, getResourceDeeplink);\n if (link) {\n items.push(link);\n }\n }\n });\n return items;\n }, [resources, getResourceDeeplink]);\n return {\n links: resourceLinks,\n };\n}\nfunction impactedResourceLinkFactory(deeplinkHelper, srId) {\n return function (resourceUri) {\n if (deeplinkHelper && (deeplinkHelper === null || deeplinkHelper === void 0 ? void 0 : deeplinkHelper.getResourceDeeplink) && srId) {\n return deeplinkHelper.getResourceDeeplink(resourceUri, srId);\n }\n else {\n return resourceUri;\n }\n };\n}\nfunction transformResourceToLink(resource, getResourceDeeplink) {\n try {\n const parser = new ResourceUriParser(resource.resourceUri);\n return {\n text: parser.resourceInstanceName,\n href: getResourceDeeplink(resource.resourceUri),\n };\n }\n catch (err) {\n return null;\n }\n}\n","import { useState } from 'react';\nimport { uniqueId } from 'lodash';\nexport function useId(name) {\n const [id] = useState(uniqueId(name || 'elixir_id'));\n return id;\n}\n","import { useEffect, useState } from 'react';\nexport function useLinkedState(initialState) {\n const [state, setState] = useState(initialState);\n useEffect(() => setState(initialState), [initialState]);\n return [state, setState];\n}\n","import React from 'react';\n/**\n * React hook for measuring dimensions of an HTML element\n * @param {React.RefObject} ref Reference to the HTML element\n * @returns {[number, number]} Width and height in px\n */\nexport const useElementSize = (ref) => {\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n React.useLayoutEffect(() => {\n const setSize = () => {\n setWidth(ref.current?.offsetWidth ? ref.current.offsetWidth : 0);\n setHeight(ref.current?.offsetHeight ? ref.current.offsetHeight : 0);\n };\n window.addEventListener('resize', setSize);\n setSize();\n return () => {\n window.removeEventListener('resize', setSize);\n };\n }, [ref]);\n return [width, height];\n};\n","/**\n * Returns a function that does nothing\n */\nexport const FnEmpty = () => {\n // no-op\n};\n/**\n * Returns a function that returns null\n */\nexport const FnNull = () => null;\n/**\n * Returns a function that returns undefined\n */\nexport const FnUndefined = () => undefined;\n","import { FnEmpty } from '../common/Functions';\nexport class ConsoleLogger {\n constructor() {\n this.debug = Function.bind.call(console['log'], console);\n this.event = Function.bind.call(console['info'], console, 'Event: ');\n this.trace = Function.bind.call(console['info'], console, 'Trace: ');\n this.warn = Function.bind.call(console['warn'], console, 'Warning: ');\n this.error = Function.bind.call(console['error'], console, 'Error: ');\n this.initialize = FnEmpty;\n this.setUserId = FnEmpty;\n }\n}\n","let telemetryConfig = undefined;\nexport function setTelemetryConfig(config) {\n if (!config) {\n return;\n }\n else if (config && !telemetryConfig) {\n telemetryConfig = config;\n }\n else if (config && telemetryConfig) {\n telemetryConfig = { ...telemetryConfig, ...config };\n }\n}\nexport function getTelemetryConfig() {\n return telemetryConfig;\n}\n","import { ConsoleLogger } from './loggers/ConsoleLogger';\nimport { SilentLogger } from './loggers/SilentLogger';\nimport { getTelemetryConfig } from './TelemetryConfig';\nconst Silent = new SilentLogger();\n/**\n * The logger instance of the telemetry service module,\n * this instance is initialized by ElxShell with default loggers\n * - AppInsightLogger when ElxConfig.env is set to 'production',\n * - ConsoleLogger for local development.\n *\n * To setup your own logger, use setLogger().\n */\nexport let Logger;\n/**\n * Console logger\n */\nexport const Console = new ConsoleLogger();\n/**\n * Log warning message to the console\n */\nexport const warn = Console.warn;\n/**\n * Log error message to the console\n */\nexport const error = Console.error;\n/**\n * debug function that prints log in console when ElxConfig.debug is set to true\n */\n// tslint:disable-next-line: no-any\nexport function debug(message, ...optionalParams) {\n const conf = getTelemetryConfig();\n if (conf?.debug) {\n Console.debug(message, optionalParams);\n }\n}\n/**\n * Gets the logger\n *\n * @export\n * @returns {ILogger}\n */\nexport function getLogger() {\n const conf = getTelemetryConfig();\n return conf?.debug ? getDebugLogger() : Logger || (Logger = Console);\n}\n/**\n * Gets a logger base on ElxConfig.debug setting,\n * ConsoleLogger when debug config is set to true, otherwise SilentLogger\n *\n * Elixir framework components uses this function to get the logger for debug\n *\n * @export\n * @returns {ILogger}\n */\nexport function getDebugLogger() {\n const conf = getTelemetryConfig();\n if (conf?.debug) {\n return Console;\n }\n return Silent;\n}\n/**\n * Sets the logger\n *\n * @export\n * @param {ILogger} logger\n */\nexport function setLogger(logger) {\n Logger = logger;\n}\n","import { FnEmpty } from '../common/Functions';\n/**\n * Silent logger logs nothing, you can mute the logs at test time.\n *\n * @export\n * @class SilentLogger\n * @implements {ILogger}\n * @template T\n * @template U\n */\nexport class SilentLogger {\n constructor() {\n this.debug = FnEmpty;\n this.event = FnEmpty;\n this.trace = FnEmpty;\n this.warn = FnEmpty;\n this.error = FnEmpty;\n this.initialize = FnEmpty;\n this.setUserId = FnEmpty;\n }\n}\n","import { getTelemetryConfig } from './TelemetryConfig';\nimport { getLogger, warn } from './LoggerService';\n/**\n * Tracks interactions for the components, like button, link clicks and\n * input value changes, etc.\n *\n * @export\n * @param {string} name\n * @param {ITrackingContext} [context]\n */\nexport function trackInteraction(name, label, context) {\n const identifier = context?.label || label;\n const eventName = `${name} - ${identifier}`;\n if (!identifier) {\n warn(`Telemetry - eventName: '${eventName}' - no identifier was defined, ` +\n 'either use a label property, or pass label from the tracking context');\n }\n getLogger().event(eventName, context);\n}\n/**\n * Gets tracking interaction boolean flag from config.\n *\n * @export\n * @returns {boolean}\n */\nexport function isTrackingInteraction() {\n const telemetry = getTelemetryConfig();\n return (telemetry && telemetry.trackInteraction) || false;\n}\n/**\n * get the interaction tracking delay setting. default is 5000ms.\n *\n * @export\n * @returns {number}\n */\nexport function getInteractionTrackingDelay() {\n const telemetry = getTelemetryConfig();\n return (telemetry && telemetry.trackInteractionDelayMs) || 5000;\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { v4 as uuid } from 'uuid';\nimport { useLinkedState } from '../common/Hooks';\nconst WorkflowContext = React.createContext(undefined);\n/**\n *\n * workflow context provider, creates a context boundary and an unique tracking id for the context.\n * components within this boundary can use the useWorkFlowContext() hook to get the workflow context instance.\n *\n * Interactable Elx-Components, like button, link, inputs, etc. are workflow context-aware, meaning all the\n * interaction telemetry will be logged under the same workflow context parameters, if they are under the same\n * workflow boundary.\n *\n * example:\n * \n * \n * \n * \n *\n * text filed 1 and 2, the value change telemetry will be sharing the same workflow context, and the same tracking id.\n *\n * @param props\n */\nexport const ElxWorkflowContextProvider = (props) => {\n const [linkedTrackingContext] = useLinkedState(props.trackingContext);\n const createWorkflowContext = useCallback(() => ({\n trackingId: uuid(),\n name: props.name,\n ...props.trackingContext,\n context: 'workflow',\n }), [props.name, props.trackingContext]);\n const [workflowContext, setWorkflowContext] = useState(createWorkflowContext());\n useEffect(() => {\n if (linkedTrackingContext !== props.trackingContext) {\n setWorkflowContext(createWorkflowContext());\n }\n }, [linkedTrackingContext, props.trackingContext, createWorkflowContext]);\n return React.createElement(WorkflowContext.Provider, { value: workflowContext }, props.children);\n};\n/**\n * useWorkFlowContext react hook, finds the closest WorkflowContextProvider\n */\nexport const useWorkFlowContext = () => React.useContext(WorkflowContext);\n","import { useCallback } from 'react';\nimport { FnEmpty } from '../common/Functions';\nimport { useWorkFlowContext } from '../components/WorkflowContextProvider';\nimport { isTrackingInteraction, trackInteraction } from '../TelemetryService';\n/**\n * useInteractionTracker React hook\n */\nexport const useInteractionTracker = () => {\n const workflow = useWorkFlowContext();\n const tracker = useCallback((name, label, trackingContext) => {\n trackInteraction(name, label, {\n ...trackingContext,\n ...workflow,\n });\n }, [workflow]);\n return isTrackingInteraction() ? tracker : FnEmpty;\n};\n","import { useMemo } from 'react';\nimport { debounce } from 'lodash';\nimport { getInteractionTrackingDelay } from '../TelemetryService';\nimport { useInteractionTracker } from './useInteractionTracker';\n/**\n * useDebouncedInteractionTracker react hook. returns a memoized debounced tracker,\n * request sent to this tracker will be debounced by the config delay time.\n *\n * @export\n */\nexport const useDebounceInteractionTracker = () => {\n const tracker = useInteractionTracker();\n return useMemo(() => debounce(tracker, getInteractionTrackingDelay()), [tracker]);\n};\n","import React, { useContext } from 'react';\nimport { getLogger } from '../LoggerService';\nimport { getTelemetryConfig } from '../TelemetryConfig';\n// set the initial logger context to default logger\nconst LoggerContext = React.createContext({ logger: getLogger(), telemetryConfig: getTelemetryConfig() });\n/**\n *\n * logger context provider, sets the context boundary.\n * components within this boundary will be logged.\n * if no logger context is provided, a default logger will be used.\n *\n **/\nexport const ElxLoggerContextProvider = (props) => {\n const { logger, telemetryConfig } = props;\n return React.createElement(LoggerContext.Provider, { value: { logger, telemetryConfig } }, props.children);\n};\n/**\n * useLogger react hook\n */\nexport function useLogger() {\n const { logger, telemetryConfig } = useContext(LoggerContext);\n const defaultLogger = getLogger();\n const defaultTelemetryConfig = getTelemetryConfig();\n return React.useMemo(() => {\n return { logger: logger ?? defaultLogger, telemetryConfig: telemetryConfig ?? defaultTelemetryConfig };\n }, [logger, defaultLogger, telemetryConfig, defaultTelemetryConfig]);\n}\n","// eslint-disable-next-line no-restricted-imports\nimport * as StyleConstants from '@fluentui/azure-themes/lib/azure/Constants';\nimport { getTheme, loadTheme, memoizeFunction } from '@fluentui/react';\nlet rootFontSize = 16; // 16px\nexport const setRootFontSize = (fontSize) => {\n rootFontSize = fontSize;\n const theme = getTheme();\n loadTheme(theme);\n};\nexport const getRootFontSize = () => rootFontSize;\nexport const px2rem = (px) => `${px / rootFontSize}rem`;\nexport const ElxSpacing = {\n multiple: (multiplier) => px2rem(multiplier * rootFontSize),\n spaceHalf: px2rem(8),\n space1: px2rem(16),\n space2: px2rem(32),\n checkboxSpace: px2rem(24),\n};\nexport const getElxTheme = memoizeFunction((theme = getTheme()) => {\n return {\n constants: getConstants(theme),\n spacing: ElxSpacing,\n fullWidth: '100%',\n font: {\n heroTitle: {\n fontSize: px2rem(42),\n lineHeight: px2rem(52),\n },\n },\n chart: {\n legend: {\n fontSize: px2rem(12),\n lineHeight: px2rem(16),\n },\n axisLabel: {\n fontSize: px2rem(10),\n lineHeight: px2rem(12),\n },\n },\n shell: {\n layers: {\n shell: 200,\n container: 50,\n component: 10,\n toast: 2000000,\n },\n header: {\n height: '3rem',\n brandingWidth: px2rem(240),\n logoWidth: px2rem(48),\n background: theme.palette.white,\n color: theme.palette.neutralPrimary,\n logoSize: '1.5rem',\n titleSize: '1.125rem',\n titleWidth: px2rem(192),\n },\n },\n sidebar: {\n width: px2rem(264),\n },\n };\n});\nconst getConstants = memoizeFunction((theme) => {\n return theme?.name?.startsWith('Azure')\n ? // Azure themes constants\n {\n datePicker: {\n calendarIconPadding: '5px 4px 4px',\n margin: '0 0 10px 0',\n todaySelectedBorderWidth: '0px',\n },\n dualListBox: {\n itemBoxShadowRest: 'none',\n itemBorderRest: `1px solid ${theme.semanticColors.inputBorder}`,\n itemHeight: '24px',\n checkBoxPadding: '9px .5rem',\n },\n filter: {\n padding: '24px',\n },\n input: {\n actionButtonHeight: StyleConstants.commandBarHeight,\n borderRadius: StyleConstants.borderRadius,\n buttonHeight: StyleConstants.inputControlHeight,\n controlHeight: StyleConstants.inputControlHeight,\n },\n masterDetail: {\n pivotPadding: '0 8px',\n },\n panel: {\n footerHeight: px2rem(3 * rootFontSize),\n },\n peoplePicker: {\n chevronMargin: '-3px',\n },\n searchBox: {\n border: `1px solid ${theme.semanticColors.inputBorder}`,\n dropdownTitleWidth: '40px',\n height: '26px',\n iconMarginLeft: px2rem(8),\n padding: '0 0',\n },\n }\n : // elixir default constants\n {\n datePicker: {\n calendarIconPadding: '7px 4px 4px',\n margin: '0 0 0 0',\n todaySelectedBorderWidth: '1px',\n },\n dualListBox: {\n itemBoxShadowRest: 'inherit',\n itemBorderRest: '0',\n itemHeight: '3rem',\n checkBoxPadding: '1rem 0.5rem',\n },\n filter: {\n padding: '12px',\n },\n input: {\n actionButtonHeight: 'unset',\n borderRadius: '.25rem',\n buttonHeight: 'min-content',\n controlHeight: px2rem(28),\n },\n masterDetail: {\n pivotPadding: '0 8px',\n },\n panel: {\n footerHeight: px2rem(5 * rootFontSize),\n },\n peoplePicker: {\n chevronMargin: 'unset',\n },\n searchBox: {\n border: 'none',\n dropdownTitleWidth: 'unset',\n height: 'inherit',\n iconMarginLeft: '0',\n padding: `${px2rem(8)} ${px2rem(16)}`,\n },\n };\n});\n","import { px2rem } from './Variables';\nexport const textTruncate = {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal', // Fix for IE 8/9 in case 'word-wrap: break-word' is set on parent nodes\n};\nexport const textBody = {\n fontSize: px2rem(13),\n lineHeight: px2rem(20),\n};\nexport const textTitleSmall = {\n fontSize: px2rem(14),\n lineHight: px2rem(20),\n};\nexport const textTitleMedium = {\n fontSize: px2rem(15),\n lineHight: px2rem(20),\n};\nexport const fullScreenAbsolute = {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n};\n","function getDimensionMediaQuery(dimension, min, max) {\n let mediaQuery = '@media only screen';\n if (min !== undefined) {\n mediaQuery = `${mediaQuery} and (min-${dimension}: ${min}px)`;\n }\n if (max !== undefined) {\n mediaQuery = `${mediaQuery} and (max-${dimension}: ${max}px)`;\n }\n return mediaQuery;\n}\nexport function getMediaQuery(min, max) {\n return getDimensionMediaQuery('width', min, max);\n}\nexport function getHeightMediaQuery(min, max) {\n return getDimensionMediaQuery('height', min, max);\n}\nexport const ScreenHeightSmall = 300;\n/**\n * Converts a given HEX value to RGBA\n *\n * Inspired by `https://gist.github.com/danieliser/b4b24c9f772066bcf0a6`\n *\n * @param hexCode Value of the color\n * @param {number} [opacity=1] Add opacity to the converted value.\n * Allowed values are 0-1 or 0-100\n */\nexport function HexToRGBA(hexCode, opacity = 1) {\n let hex = hexCode.replace('#', '');\n // 3 digits\n if (hex.length == 3) {\n hex = `${hex[0]}${hex[0]}${hex[1]}${hex[1]}${hex[2]}${hex[2]}`;\n }\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n return `rgba(${r},${g},${b},${getOpacity(opacity)})`;\n}\nfunction getOpacity(opacity) {\n if (opacity < 0) {\n return 0;\n }\n else if (opacity <= 1) {\n return opacity;\n }\n else if (opacity <= 100) {\n return opacity / 100;\n }\n return 1;\n}\n","const ElxSearchBoxOverrides = {\n styles: {\n inlineFilters: {\n '.elx-input .ms-Dropdown-title': {\n width: 'unset',\n },\n '.elx-button-action': {\n height: 24,\n },\n },\n },\n};\nconst AzureThemeHeaderStyles = (theme) => ({\n styles: {\n root: {\n // There's a bug in azure-themes package where themePrimary color is incorrect, using primaryButtonBackground instead.\n background: theme.semanticColors.primaryButtonBackground,\n color: '#fff !important',\n '.ms-Toggle label': {\n color: '#fff !important',\n },\n '.elx-button-icon:hover': {\n background: theme.semanticColors.primaryButtonBackgroundHovered,\n color: '#fff !important',\n },\n '.elx-button-icon.is-expanded': {\n background: `${theme.semanticColors.primaryButtonBackgroundPressed} !important`,\n color: '#fff !important',\n },\n '.elx-header-actions .elx-header-action': {\n color: '#fff !important',\n },\n },\n },\n});\nconst ElxSidebarOverrides = {\n styles: {\n navs: {\n 'a.ms-Nav-link,button.ms-Nav-link': {\n marginLeft: '-1px',\n },\n },\n },\n};\nconst ElxContainerHeaderOverrides = {\n styles: {\n headerContent: {\n '.ms-CommandBar': {\n borderBottom: 0,\n },\n },\n },\n};\nexport const AzureThemeComponentOverrides = (theme) => ({\n ElxSearchBox: ElxSearchBoxOverrides,\n ElxHeader: AzureThemeHeaderStyles(theme),\n ElxSidebar: ElxSidebarOverrides,\n ElxContainerHeader: ElxContainerHeaderOverrides,\n});\n","import React from 'react';\nimport { getWindow } from '@fluentui/react';\n// import { debug } from '../../modules/telemetry/LoggerService';\nconst debug = (...args) => null;\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n /**\n * 320px - 479px\n */\n ResponsiveMode[ResponsiveMode[\"Small\"] = 0] = \"Small\";\n /**\n * 480px - 639px\n */\n ResponsiveMode[ResponsiveMode[\"Medium\"] = 1] = \"Medium\";\n /**\n * 640px - 1023px\n */\n ResponsiveMode[ResponsiveMode[\"Large\"] = 2] = \"Large\";\n /**\n * 1024px - 1365px\n */\n ResponsiveMode[ResponsiveMode[\"XLarge\"] = 3] = \"XLarge\";\n /**\n * 1366px - 1919px\n */\n ResponsiveMode[ResponsiveMode[\"XXLarge\"] = 4] = \"XXLarge\";\n /**\n * 1920px and up\n */\n ResponsiveMode[ResponsiveMode[\"XXXLarge\"] = 5] = \"XXXLarge\";\n /**\n * (internal) Initial state\n */\n ResponsiveMode[ResponsiveMode[\"Unknown\"] = 99] = \"Unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nconst ResponsiveContext = React.createContext({\n responsiveMode: ResponsiveMode.Unknown,\n});\n// defines the upper bound of the screen size\nexport const VIEWSIZE = {\n /**\n * 320px\n */\n SM: 320,\n /**\n * 480px\n */\n MD: 480,\n /**\n * 640px\n */\n LG: 640,\n /**\n * 1024px\n */\n XL: 1024,\n /**\n * 1366px\n */\n XXL: 1366,\n /**\n * 1920px\n */\n XXXL: 1920,\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const ElxResponsiveContextProvider = (props) => {\n const [responsiveMode, setResponsiveMode] = React.useState(() => getWindowSize());\n React.useEffect(() => {\n const eventHandler = () => {\n setResponsiveMode(getWindowSize());\n };\n window.addEventListener('resize', eventHandler);\n return () => {\n window.removeEventListener('resize', eventHandler);\n };\n }, []);\n return React.createElement(ResponsiveContext.Provider, { value: { responsiveMode } }, props.children);\n};\nfunction getWindowSize() {\n const win = getWindow();\n if (win) {\n const width = win.innerWidth;\n const size = getResponsiveMode(width);\n debug(`ResponsiveContext: width: ${width}, size: ${size}`);\n return size;\n }\n return ResponsiveMode.Unknown;\n}\nfunction getResponsiveMode(width) {\n return width < VIEWSIZE.MD\n ? ResponsiveMode.Small\n : width < VIEWSIZE.LG\n ? ResponsiveMode.Medium\n : width < VIEWSIZE.XL\n ? ResponsiveMode.Large\n : width < VIEWSIZE.XXL\n ? ResponsiveMode.XLarge\n : width < VIEWSIZE.XXXL\n ? ResponsiveMode.XXLarge\n : ResponsiveMode.XXXLarge;\n}\nexport const useResponsiveContext = () => React.useContext(ResponsiveContext);\n","/**\n * Use this to determine how the palette maps to semantic colors\n * https://github.com/microsoft/fluentui/blob/master/packages/theme/src/types/ISemanticColors.ts\n * https://github.com/microsoft/fluentui/blob/master/packages/theme/src/utilities/makeSemanticColors.ts\n */\nimport { createTheme } from '@fluentui/react';\nimport { AzureThemeLight as AzThemeLight, AzureThemeDark as AzThemeDark, AzureThemeHighContrastLight as AzThemeHcLight, AzureThemeHighContrastDark as AzThemeHcDark, AzureStyleSettings as AzStyleSettings, LightSemanticColors, DarkSemanticColors, HighContrastDarkSemanticColors, HighContrastLightSemanticColors, } from '@fluentui/azure-themes';\nimport { HexToRGBA } from './Utilities';\nimport { px2rem } from './Variables';\nimport { AzureThemeComponentOverrides } from './AzureThemeComponentOverrides';\n/**\n * @deprecated\n */\nexport const PresenceColors = {\n Away: '#FFAA44',\n DoNotDisturb: '#C50F1F',\n Online: '#6BB700',\n Invisible: '#8A8886',\n OOF: '#B4009E',\n};\n/**\n * @deprecated\n */\nexport const MessageColors = {\n WarningBackground: '#FFF4CE',\n WarningIcon: '#3B3A39',\n SevereWarningBackground: '#FED9CC',\n SevereWarningIcon: '#A82E01',\n ErrorBackground: '#FDE7E9',\n ErrorIcon: '#A80000',\n ErrorText: '#A80000',\n SuccessBackground: '#DFF6DD',\n SuccessIcon: '#107C10',\n InfoIcon: '#3B3A39',\n};\n/**\n * @deprecated\n */\nexport const LinkColors = {\n lightTheme: '#005A9E',\n darkTheme: '#4894FE',\n};\n/**\n * @deprecated\n */\nexport const ThemeColors = {\n themePrimary: '#0078D4',\n themeLighterAlt: '#EFF6FC',\n themeLighter: '#DEECF9',\n themeLight: '#C7E0F4',\n themeTertiary: '#2B88D8',\n themeSecondary: '#2B88D8',\n themeDarkAlt: '#106EBE',\n themeDark: '#005A9E',\n themeDarker: '#004578',\n};\n/**\n * @deprecated\n */\nexport const DarkThemeColors = {\n themePrimary: '#0078D4',\n themeLighterAlt: '#092C47',\n themeLighter: '#043862',\n themeLight: '#004C87',\n themeTertiary: '#2899F5',\n themeSecondary: '#0078D4',\n themeDarkAlt: '#3AA0F3',\n themeDark: '#6CB8F6',\n themeDarker: '#82C7FF',\n};\n/**\n * @deprecated\n */\nexport const NeutralColors = {\n black: '#000000',\n Grays: {\n Gray200: '#1B1A19',\n Gray190: '#201F1E',\n Gray180: '#252423',\n Gray170: '#292827',\n Gray160: '#323130',\n Gray150: '#3B3A39',\n Gray140: '#484644',\n Gray130: '#605E5C',\n Gray120: '#797775',\n Gray110: '#8A8886',\n Gray90: '#A19F9D',\n Gray60: '#C8C6C4',\n Gray50: '#D2D0CE',\n Gray40: '#E1DFDD',\n Gray30: '#EDEBE9',\n Gray20: '#F3F2F1',\n Gray10: '#FAF9F8',\n },\n white: '#FFFFFF',\n};\n/**\n * @deprecated\n */\nconst MessageBarStyles = {\n errorBackground: MessageColors.ErrorBackground,\n errorIcon: MessageColors.ErrorIcon,\n errorText: MessageColors.ErrorText,\n successBackground: MessageColors.SuccessBackground,\n successIcon: MessageColors.SuccessIcon,\n warningBackground: MessageColors.WarningBackground,\n warningIcon: MessageColors.WarningIcon,\n severeWarningBackground: MessageColors.SevereWarningBackground,\n severeWarningIcon: MessageColors.SevereWarningIcon,\n infoIcon: MessageColors.InfoIcon,\n};\n/**\n * @deprecated\n */\nconst ElixirFonts = {\n medium: {\n fontSize: px2rem(13),\n },\n mediumPlus: {\n fontSize: px2rem(14),\n },\n};\n/**\n * @deprecated\n * Light theme aligned to PIE design system\n * https://www.figma.com/file/XcHo4u9pOPvdRqN3qanlhM/PIE-design-system%3A-Fluent-alignment\n */\nexport const lightTheme = createTheme({\n fonts: ElixirFonts,\n semanticColors: {\n bodyBackground: NeutralColors.Grays.Gray10,\n bodyDivider: NeutralColors.Grays.Gray20,\n buttonTextHovered: ThemeColors.themeDarkAlt,\n buttonTextPressed: ThemeColors.themePrimary,\n bodyStandoutBackground: NeutralColors.Grays.Gray130,\n cardStandoutBackground: HexToRGBA(NeutralColors.black, 0.06),\n ...MessageBarStyles,\n // Copied from the Azure light theme\n // https://github.com/microsoft/fluentui/blob/15047a334d953f8638dfe678470b5efc3d206d1c/packages/azure-themes/src/azure/AzureThemeLight.ts#L61\n listHeaderBackgroundPressed: NeutralColors.Grays.Gray20,\n listItemBackgroundChecked: NeutralColors.Grays.Gray30,\n listItemBackgroundCheckedHovered: NeutralColors.Grays.Gray30,\n listItemBackgroundHovered: NeutralColors.Grays.Gray20,\n menuItemBackgroundHovered: NeutralColors.Grays.Gray20,\n menuItemBackgroundPressed: NeutralColors.Grays.Gray30,\n link: LinkColors.lightTheme,\n },\n palette: {\n ...ThemeColors,\n neutralLighterAlt: NeutralColors.Grays.Gray10,\n neutralLighter: NeutralColors.Grays.Gray20,\n neutralLight: NeutralColors.Grays.Gray30,\n neutralQuaternaryAlt: NeutralColors.Grays.Gray40,\n neutralQuaternary: NeutralColors.Grays.Gray50,\n neutralTertiaryAlt: NeutralColors.Grays.Gray60,\n neutralTertiary: NeutralColors.Grays.Gray90,\n neutralSecondaryAlt: NeutralColors.Grays.Gray110,\n neutralSecondary: NeutralColors.Grays.Gray130,\n neutralPrimaryAlt: NeutralColors.Grays.Gray150,\n neutralPrimary: NeutralColors.Grays.Gray160,\n neutralDark: NeutralColors.Grays.Gray190,\n black: NeutralColors.black,\n white: NeutralColors.white,\n },\n defaultFontStyle: {\n fontFamily: 'Segoe UI, SegoeUI, Helvetica Neue, Helvetica, Arial, sans-serif',\n },\n});\n/**\n * @deprecated\n * Dark theme based on Azure portal styling.\n * https://www.figma.com/file/kFJ0uKDxoqjZlbLF4lTHKA/Azure-Portal-Dark-Theme?node-id=285%3A3649\n */\nexport const darkTheme = createTheme({\n fonts: ElixirFonts,\n semanticColors: {\n bodyBackground: NeutralColors.Grays.Gray180,\n bodyDivider: NeutralColors.Grays.Gray160,\n buttonTextHovered: DarkThemeColors.themeDarkAlt,\n buttonTextPressed: DarkThemeColors.themePrimary,\n bodyStandoutBackground: NeutralColors.Grays.Gray90,\n cardStandoutBackground: HexToRGBA(NeutralColors.Grays.Gray20, 0.06),\n ...MessageBarStyles,\n // Primary Button text\n primaryButtonText: NeutralColors.Grays.Gray20,\n primaryButtonTextHovered: NeutralColors.Grays.Gray20,\n primaryButtonTextPressed: NeutralColors.Grays.Gray20,\n // Copied from the Azure dark theme\n // https://github.com/microsoft/fluentui/blob/15047a334d953f8638dfe678470b5efc3d206d1c/packages/azure-themes/src/azure/AzureThemeDark.ts#L60\n listHeaderBackgroundPressed: NeutralColors.Grays.Gray160,\n listItemBackgroundChecked: NeutralColors.Grays.Gray150,\n listItemBackgroundCheckedHovered: NeutralColors.Grays.Gray150,\n listItemBackgroundHovered: NeutralColors.Grays.Gray160,\n menuItemBackgroundHovered: NeutralColors.Grays.Gray160,\n menuItemBackgroundPressed: NeutralColors.Grays.Gray150,\n link: LinkColors.darkTheme,\n },\n palette: {\n ...DarkThemeColors,\n /**\n * neutralLighter => button background hovered/disabled\n * grey-180\n */\n neutralLighter: NeutralColors.Grays.Gray180,\n /**\n * neutralLight => background buttons pressed/checked\n * grey-170\n */\n neutralLight: NeutralColors.Grays.Gray170,\n neutralQuaternaryAlt: NeutralColors.Grays.Gray160,\n neutralQuaternary: NeutralColors.Grays.Gray150,\n neutralTertiaryAlt: NeutralColors.Grays.Gray130,\n neutralTertiary: NeutralColors.Grays.Gray120,\n /**\n * neutralSecondaryAlt => button borders.\n * grey-110\n */\n neutralSecondaryAlt: NeutralColors.Grays.Gray110,\n /**\n * neutralSecondary => inputBorders/placeholderText\n *\n */\n neutralSecondary: NeutralColors.Grays.Gray90,\n /**\n * neutralDark => button/input/menuItem Text Hovered/Checked/Pressed\n */\n neutralDark: NeutralColors.Grays.Gray10,\n neutralPrimary: NeutralColors.Grays.Gray20,\n black: NeutralColors.Grays.Gray20,\n /**\n * This is the page background.\n */\n white: NeutralColors.Grays.Gray200,\n },\n defaultFontStyle: {\n fontFamily: 'Segoe UI, SegoeUI, Helvetica Neue, Helvetica, Arial, sans-serif',\n },\n isInverted: true,\n});\nexport const AzureComponentStyles = (theme) => {\n return {\n ...AzStyleSettings(theme),\n // Elixir extensions\n ...AzureThemeComponentOverrides(theme),\n };\n};\nexport const AzureSemanticColors = (flatSemanticColors, fullSemanticColors) => {\n return {\n ...flatSemanticColors,\n // Elixir extensions\n statusUpsellBackground: fullSemanticColors.statusBar.background.upsell,\n statusUpsellBorder: fullSemanticColors.statusBar.border.upsell,\n statusUpsellIcon: fullSemanticColors.statusBar.icon.upsell,\n };\n};\nexport const createAzureTheme = (theme, fullSemanticColors, name) => {\n const azureTheme = createTheme({\n ...theme,\n palette: {\n ...theme.palette,\n themePrimary: fullSemanticColors.primaryButton.rest.background, // Temporary fix for azure-theme bug\n },\n components: AzureComponentStyles(theme),\n semanticColors: AzureSemanticColors(theme.semanticColors, fullSemanticColors),\n });\n azureTheme.name = name;\n return azureTheme;\n};\nexport const AzureThemeLight = createAzureTheme(AzThemeLight, LightSemanticColors, 'Azure theme light');\nexport const AzureThemeDark = createAzureTheme(AzThemeDark, DarkSemanticColors, 'Azure theme dark');\nexport const AzureThemeHighContrastLight = createAzureTheme(AzThemeHcLight, HighContrastLightSemanticColors, 'Azure theme high contrast light');\nexport const AzureThemeHighContrastDark = createAzureTheme(AzThemeHcDark, HighContrastDarkSemanticColors, 'Azure theme high contrast dark');\n","import React from 'react';\nimport { DirectionalHint, useTheme, TooltipHost, classNamesFunction, css, mergeStyleSets } from '@fluentui/react';\nimport { contentStyles } from './ElxTooltip.styles';\nconst getClassNames = classNamesFunction();\n/**\n * Render a tooltip element {@link JSX.Element}.\n * When chosen target element is hovered or focused. A styled tooltip should display.\n *\n * @param {React.PropsWithChildren} props\n * @returns {JSX.Element}\n */\nexport const ElxTooltipBase = (props) => {\n const { directionalHint, calloutProps, tooltipProps, className: calloutClassName, hostClassName, ...other } = props;\n const defaultDirectionHint = directionalHint ? directionalHint : DirectionalHint.bottomAutoEdge;\n const theme = useTheme();\n const { host, callout } = getClassNames(props.styles, { theme });\n return (React.createElement(TooltipHost, Object.assign({}, other, { hostClassName: css(host, hostClassName), calloutProps: {\n gapSpace: 0,\n isBeakVisible: false,\n backgroundColor: 'transparent',\n ...calloutProps,\n className: css(callout, calloutClassName),\n }, tooltipProps: {\n ...tooltipProps,\n styles: mergeStyleSets(contentStyles({ theme }), tooltipProps?.styles),\n }, directionalHint: defaultDirectionHint }), props.children));\n};\n","import { styled } from '@fluentui/react';\nimport { ElxTooltipBase } from './ElxTooltip.base';\nimport { useElxTooltipStyles } from './ElxTooltip.styles';\nexport const ElxTooltip = styled(ElxTooltipBase, useElxTooltipStyles, undefined, {\n scope: 'ElxTooltip',\n});\n","import { Depths } from '@fluentui/theme';\nimport { ScreenWidthMinLarge } from '@fluentui/react';\nimport { getElxTheme, px2rem, getMediaQuery } from '@elixir/styling';\nexport const useElxTooltipStyles = ({ theme }) => {\n const { palette } = theme;\n const { spacing } = getElxTheme(theme);\n return {\n host: [\n 'elx-tooltip-host',\n {\n display: 'inline-block',\n width: 'fit-content',\n },\n ],\n callout: [\n 'elx-tooltip-callout',\n {\n maxWidth: '80vw',\n backgroundColor: theme.semanticColors.infoBackground,\n padding: `${spacing.spaceHalf} ${spacing.space1}`,\n borderRadius: '2px',\n boxShadow: Depths.depth16,\n fontSize: px2rem(13),\n lineHeight: px2rem(20),\n '::after': {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n [getMediaQuery(ScreenWidthMinLarge)]: {\n maxWidth: px2rem(400),\n },\n },\n ],\n };\n};\nexport const contentStyles = ({ theme }) => {\n return {\n content: {\n color: theme.semanticColors.messageText,\n '&::first-letter': {\n textTransform: 'uppercase',\n },\n },\n };\n};\n","import React from 'react';\nimport { isTrackingInteraction } from '@elixir/telemetry';\nimport { ElxTooltip } from '../Tooltip';\nexport function getElxButtonBaseDefaults(props, tracker) {\n return {\n ariaLabel: getDefaultAriaLabel(props),\n onClick: getTrackableOnClick(tracker, props),\n menuProps: getTrackableMenuProps(tracker, props.menuProps),\n };\n}\nfunction getDefaultAriaLabel(props) {\n return props.ariaLabel || props.text;\n}\nfunction getTrackableOnClick(tracker, props) {\n if (isTrackingInteraction()) {\n return (event) => {\n const label = props.label || props.text || (typeof props.children === 'string' ? props.children : undefined);\n tracker('Button', label, {\n ...props.trackingContext,\n type: 'click',\n });\n props.onClick?.(event);\n };\n }\n return props.onClick;\n}\nfunction getTrackableMenuProps(tracker, menuProps) {\n if (isTrackingInteraction() && menuProps && menuProps.items.length > 0) {\n return {\n ...menuProps,\n items: menuProps.items.map((item) => ({\n ...item,\n onClick: (event, eventItem) => {\n if (eventItem) {\n const label = (eventItem.data && eventItem.data.label) || eventItem.label || eventItem.text;\n const trackingContext = eventItem.data && eventItem.data.trackingContext;\n tracker('Button', label, {\n ...trackingContext,\n type: 'click',\n });\n return item.onClick?.(event, eventItem);\n }\n },\n // add onClick tracking to sub menu items recursively\n subMenuProps: getTrackableMenuProps(tracker, item.subMenuProps),\n })),\n };\n }\n return menuProps;\n}\n/**\n * High order component to convert regular button to tooltip enabled button\n */\nexport const withTooltip = (WrappedButton) => (props) => {\n const { tooltipProps, disabled } = props;\n // Tooltips should not show for disabled buttons or buttons that do not have tooltipProps passed in\n if (!tooltipProps || disabled)\n return React.createElement(WrappedButton, Object.assign({}, props));\n return (React.createElement(ElxTooltip, Object.assign({}, tooltipProps),\n React.createElement(WrappedButton, Object.assign({}, props))));\n};\n","import { FontWeights, mergeStyleSets, useTheme } from '@fluentui/react';\nimport { getElxTheme, NeutralColors, px2rem, textTruncate } from '@elixir/styling';\nconst { spacing } = getElxTheme();\nconst ELX_BUTTON_BASE_CLASS_NAME = 'elx-button';\nexport const useIconButtonStyles = () => {\n const theme = useTheme();\n const defaultStyles = useDefaultButtonStyles();\n const iconButtonStyles = {\n root: [\n 'elx-button-icon',\n {\n color: theme.palette.themePrimary,\n background: 'transparent',\n padding: px2rem(4),\n },\n ],\n rootDisabled: [\n 'is-disabled',\n {\n color: theme.palette.neutralTertiaryAlt,\n },\n ],\n rootHovered: {\n color: theme.palette.themeDarkAlt,\n background: theme.palette.neutralLighter,\n },\n rootPressed: {\n color: theme.palette.themePrimary,\n background: theme.palette.neutralLight,\n },\n rootExpanded: {\n color: theme.palette.themePrimary,\n background: theme.palette.neutralLight,\n },\n };\n return mergeStyleSets(defaultStyles, iconButtonStyles);\n};\nexport const useActionButtonStyles = () => {\n const theme = useTheme();\n const defaultStyles = useDefaultButtonStyles();\n const elxTheme = getElxTheme(theme);\n const actionButtonStyles = {\n root: [\n 'elx-button-action',\n {\n color: theme.palette.neutralPrimary,\n background: 'transparent',\n paddingLeft: 0,\n paddingRight: 0,\n height: elxTheme.constants.input.actionButtonHeight,\n },\n ],\n label: {\n fontWeight: FontWeights.regular,\n },\n icon: {\n color: theme.palette.themeDarkAlt,\n },\n rootHovered: {\n color: theme.semanticColors.buttonTextHovered,\n },\n iconHovered: {\n color: theme.palette.themePrimary,\n },\n rootPressed: {\n color: theme.semanticColors.buttonTextPressed,\n },\n iconPressed: {\n color: theme.palette.themePrimary,\n },\n rootDisabled: [\n 'is-disabled',\n {\n color: theme.palette.neutralTertiary,\n },\n ],\n iconDisabled: [\n 'is-disabled',\n {\n color: theme.palette.neutralTertiary,\n },\n ],\n };\n return mergeStyleSets(defaultStyles, actionButtonStyles);\n};\nexport const useMessageBarButtonStyles = () => {\n const theme = useTheme();\n const defaultStyles = useDefaultButtonStyles();\n const messageBarButtonStyles = {\n root: [\n 'elx-button-messagebar',\n theme.fonts.small,\n {\n border: `1px solid ${theme.palette.neutralSecondaryAlt}`,\n boxSizing: 'border-box',\n borderRadius: '2px',\n marginRight: spacing.spaceHalf,\n background: 'transparent',\n color: NeutralColors.black,\n },\n ],\n rootHovered: {\n background: 'transparent',\n color: NeutralColors.black,\n },\n rootPressed: {\n background: 'transparent',\n color: NeutralColors.black,\n },\n };\n return mergeStyleSets(defaultStyles, messageBarButtonStyles);\n};\nexport const usePrimaryButtonStyles = () => {\n const theme = useTheme();\n const defaultStyles = useDefaultButtonStyles();\n const primaryButtonStyles = {\n root: [\n 'elx-button-primary',\n {\n color: theme.semanticColors.primaryButtonText,\n },\n ],\n rootDisabled: [\n 'is-disabled',\n {\n color: theme.palette.neutralTertiary,\n background: theme.palette.neutralLighter,\n borderColor: theme.palette.neutralLighter,\n },\n ],\n rootHovered: {\n background: theme.palette.themeDarkAlt,\n },\n rootPressed: {\n background: theme.palette.themeDark,\n },\n };\n return mergeStyleSets(defaultStyles, primaryButtonStyles);\n};\nexport const useSecondaryButtonStyles = () => {\n const theme = useTheme();\n const defaultStyles = useDefaultButtonStyles();\n const secondaryButtonStyles = {\n root: [\n 'elx-button-secondary',\n {\n color: theme.palette.neutralPrimary,\n background: theme.palette.white,\n border: `1px solid ${theme.palette.neutralSecondaryAlt}`,\n boxSizing: 'border-box',\n },\n ],\n rootDisabled: [\n 'is-disabled',\n {\n color: theme.palette.neutralTertiary,\n background: theme.palette.neutralLighter,\n borderColor: theme.palette.neutralLighter,\n },\n ],\n rootHovered: {\n color: theme.palette.neutralPrimary,\n background: theme.palette.neutralLighter,\n },\n rootPressed: {\n color: theme.palette.neutralDark,\n background: theme.palette.neutralLighter,\n },\n rootExpanded: {\n color: theme.palette.neutralDark,\n background: theme.palette.neutralLighter,\n },\n };\n return mergeStyleSets(defaultStyles, secondaryButtonStyles);\n};\nexport const useDefaultButtonStyles = () => {\n const theme = useTheme();\n const elxTheme = getElxTheme(theme);\n return {\n root: [\n ELX_BUTTON_BASE_CLASS_NAME,\n {\n padding: `${px2rem(3)} ${spacing.space1}`,\n borderWidth: '1px',\n height: elxTheme.constants.input.buttonHeight,\n },\n ],\n label: [\n theme.fonts.medium,\n textTruncate,\n {\n fontWeight: FontWeights.semibold,\n padding: `${px2rem(4)} 0`,\n },\n ],\n };\n};\n","import React from 'react';\nimport { PrimaryButton, mergeStyleSets } from '@fluentui/react';\nimport { useInteractionTracker } from '@elixir/telemetry';\nimport { getElxButtonBaseDefaults, withTooltip } from '../ElxButtonBase.utility';\nimport { usePrimaryButtonStyles } from '../ElxButton.styles';\nconst ElxPrimaryButtonBase = (props) => {\n const mergedStyles = mergeStyleSets(usePrimaryButtonStyles(), props.styles);\n return React.createElement(PrimaryButton, Object.assign({}, props, { styles: mergedStyles }, getElxButtonBaseDefaults(props, useInteractionTracker())));\n};\n/**\n * ElxPrimaryButton component\n *\n * @param {IElxPrimaryButtonProps} props\n */\nexport const ElxPrimaryButton = withTooltip(ElxPrimaryButtonBase);\n","import React from 'react';\nimport { DefaultButton, mergeStyleSets } from '@fluentui/react';\nimport { useInteractionTracker } from '@elixir/telemetry';\nimport { getElxButtonBaseDefaults, withTooltip } from '../ElxButtonBase.utility';\nimport { useSecondaryButtonStyles } from '../ElxButton.styles';\n/**\n * ElxSecondaryButton component\n * @param props\n */\nconst ElxSecondaryButtonBase = (props) => {\n const buttonStyles = useSecondaryButtonStyles();\n const mergedStyles = mergeStyleSets(buttonStyles, props.styles);\n return React.createElement(DefaultButton, Object.assign({}, props, { styles: mergedStyles }, getElxButtonBaseDefaults(props, useInteractionTracker())));\n};\nexport const ElxSecondaryButton = withTooltip(ElxSecondaryButtonBase);\n","import React from 'react';\nimport { ActionButton, mergeStyleSets } from '@fluentui/react';\nimport { useInteractionTracker } from '@elixir/telemetry';\nimport { getElxButtonBaseDefaults, withTooltip } from '../ElxButtonBase.utility';\nimport { useActionButtonStyles } from '../ElxButton.styles';\n/**\n * ElxActionButton component\n *\n * @param props\n */\nconst ElxActionButtonBase = (props) => {\n const mergedStyles = mergeStyleSets(useActionButtonStyles(), props.styles);\n return React.createElement(ActionButton, Object.assign({}, props, { styles: mergedStyles }, getElxButtonBaseDefaults(props, useInteractionTracker())));\n};\nexport const ElxActionButton = withTooltip(ElxActionButtonBase);\n","import React from 'react';\nimport { CommandBarButton, mergeStyleSets } from '@fluentui/react';\nimport { useInteractionTracker } from '@elixir/telemetry';\nimport { getElxButtonBaseDefaults, withTooltip } from '../ElxButtonBase.utility';\nimport { useDefaultButtonStyles } from '../ElxButton.styles';\n/**\n * Render a command bar button.\n *\n * @param {IElxCommandBarButtonProps} props\n * @returns {JSX.Element}\n */\nconst ElxCommandBarButtonBase = (props) => {\n const mergedStyles = mergeStyleSets(useDefaultButtonStyles(), props.styles);\n return React.createElement(CommandBarButton, Object.assign({}, props, { styles: mergedStyles }, getElxButtonBaseDefaults(props, useInteractionTracker())));\n};\nexport const ElxCommandBarButton = withTooltip(ElxCommandBarButtonBase);\n","/**\n * Copy of DateMath.ts available on https://github.com/OfficeDev/office-ui-fabric-react/blob/2ce6c5ac3ccf4e62d4866841317b4aa55b8fb541/packages/office-ui-fabric-react/src/utilities/dateMath/DateMath.ts\n *\n * This utility class has been copied only to bypass some dependency issues that may appear when running the npm test scope.\n */\n/**\n * Returns a date offset from the given date by the specified number of months.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param {Date} date - The origin date\n * @param {number} months - The number of months to offset. 'months' can be negative.\n * @return {Date} A new Date object offset from the origin date by the given number of months\n */\nexport function addMonths(date, months) {\n let result = new Date(date.getTime());\n const newMonth = result.getMonth() + months;\n result.setMonth(newMonth);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !== ((newMonth % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of years.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param {Date} date - The origin date\n * @param {number} years - The number of years to offset. 'years' can be negative.\n * @return {Date} A new Date object offset from the origin date by the given number of years\n */\nexport function addYears(date, years) {\n let result = new Date(date.getTime());\n result.setFullYear(date.getFullYear() + years);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((date.getMonth() % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of days.\n * @param {Date} date - The origin date\n * @param {number} days - The number of days to offset. 'days' can be negative.\n * @return {Date} A new Date object offset from the origin date by the given number of days\n */\nexport function addDays(date, days) {\n const result = new Date(date.getTime());\n result.setDate(result.getDate() + days);\n return result;\n}\n/**\n * Common constants and methods\n */\nconst TimeConstants = {\n MillisecondsInOneDay: 86400000,\n MillisecondsIn30Mins: 1800000,\n MillisecondsIn1Hour: 3600000,\n MinutesInOneDay: 1440,\n MinutesInOneHour: 60,\n DaysInOneWeek: 7,\n MonthInOneYear: 12,\n};\n","/**\n * Determines if a string is undefined/whitespace\n * @param input\n */\nexport function isNullOrWhitespace(input) {\n if (!input)\n return true;\n return input.replace(/\\s/g, '').length < 1;\n}\n/**\n * Determines if a string can be converted to a number\n * @param value\n */\nexport function isNumber(value) {\n return !isNullOrWhitespace(value) && !isNaN(Number(value));\n}\n","import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\ndayjs.extend(utc);\n/**\n * Formats date object or date string to 'YYYY-MM-DD'\n * @param date Date object or string\n * @param utc Use UTC date.\n */\nexport function dateToString(date, utc) {\n if (date === undefined) {\n return '';\n }\n return !!utc ? dayjs.utc(date).format('YYYY-MM-DD') : dayjs.utc(date).local().format('YYYY-MM-DD');\n}\n/**\n * Formats date object or date string to 'MMM D [at] h:mm a'\n * @param date Date object or string\n * @param utc Use UTC date.\n */\nexport function timeToString(date, utc) {\n if (date === undefined) {\n return '';\n }\n return !!utc ? dayjs.utc(date).format('MMM D [at] h:mm a') : dayjs.utc(date).local().format('MMM D [at] h:mm a');\n}\n","/**\n * Returns a function that does nothing\n */\nexport const FnEmpty = () => {\n // no-op\n};\n/**\n * Returns a function that returns null\n */\nexport const FnNull = () => null;\n/**\n * Returns a function that returns undefined\n */\nexport const FnUndefined = () => undefined;\n","export var InputMessageTypes;\n(function (InputMessageTypes) {\n InputMessageTypes[\"Success\"] = \"success\";\n InputMessageTypes[\"Warning\"] = \"warning\";\n InputMessageTypes[\"Info\"] = \"info\";\n InputMessageTypes[\"Error\"] = \"error\";\n InputMessageTypes[\"Loading\"] = \"loading\";\n})(InputMessageTypes || (InputMessageTypes = {}));\n","import { getElxTheme, px2rem } from '@elixir/styling';\nimport { InputMessageTypes } from './ElxInputBase.types';\nconst { spacing } = getElxTheme();\nexport const readonlyGlobalClassName = 'elx-readonly';\nexport const readonlyComponentStyles = {\n root: [readonlyGlobalClassName],\n fieldGroup: {\n minHeight: spacing.space1,\n },\n field: {\n lineHeight: spacing.space1,\n },\n};\nconst InputBaseGlobalClassnames = {\n root: 'elx-input',\n required: 'is-required',\n disabled: 'is-disabled',\n error: 'has-error',\n};\nexport const useInputBaseStyles = (props) => {\n const { theme, required, disabled, message } = props;\n return {\n root: [\n InputBaseGlobalClassnames.root,\n {\n display: 'flex',\n flex: '1 0 auto',\n flexDirection: 'column',\n },\n !!required && [InputBaseGlobalClassnames.required],\n !!disabled && [InputBaseGlobalClassnames.disabled],\n message &&\n message.type === InputMessageTypes.Error && [\n InputBaseGlobalClassnames.error,\n {\n // [Workaround] Target fluent's dropdown doesn't target error state correctly.\n '.ms-Dropdown, .ms-Dropdown:hover, .ms-Dropdown:focus': {\n '.ms-Dropdown-title': { borderColor: theme.semanticColors.errorText, borderRadius: '2px' },\n },\n },\n ],\n ],\n descriptionContainer: [\n 'description',\n {\n whiteSpace: 'pre-wrap',\n color: theme.palette.neutralSecondary,\n marginBottom: spacing.spaceHalf,\n },\n ],\n description: ['elx-description'],\n labelContainer: [\n 'label',\n {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n ],\n labelActionContainer: ['label-actions', { display: 'flex', flexDirection: 'row' }],\n labelActionItem: ['action-item', { marginLeft: spacing.spaceHalf }],\n inputActionContainer: [\n 'input-actions',\n {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginBottom: spacing.multiple(0.25),\n },\n ],\n inputActionItem: ['action-item', { marginLeft: spacing.spaceHalf }],\n ...useMessageAreaStyles(props),\n };\n};\nconst useMessageAreaStyles = (props) => {\n const { theme, message } = props;\n return {\n messageContainer: [\n 'message-container',\n {\n paddingTop: px2rem(5),\n margin: 0,\n },\n ],\n message: [\n 'message',\n message && `is-${message.type}`,\n {\n display: 'flex',\n alignItems: 'center',\n fontSize: px2rem(12),\n lineHeight: px2rem(16),\n },\n message?.type === InputMessageTypes.Error && {\n color: theme.semanticColors.errorText,\n },\n ],\n messageIcon: [\n 'message-icon',\n {\n marginRight: spacing.multiple(0.25),\n paddingTop: spacing.multiple(0.25),\n },\n message?.type === InputMessageTypes.Warning && {\n color: '#B85100',\n },\n message?.type === InputMessageTypes.Success && {\n color: theme.semanticColors.successIcon,\n },\n message?.type === InputMessageTypes.Info && {\n color: '#105E7D',\n },\n ],\n };\n};\nexport const getInputBaseLabelStyles = (props) => {\n const { theme, required, disabled } = props;\n return {\n root: [\n 'elx-label',\n {\n padding: `${px2rem(4)} 0`,\n },\n required && {\n selectors: {\n '::after': {\n content: '',\n },\n '::before': {\n content: \"'* '\",\n color: theme.semanticColors.errorText,\n },\n },\n },\n disabled && {\n color: theme.palette.neutralPrimary,\n },\n ],\n };\n};\n","import { classNamesFunction, useTheme } from '@fluentui/react';\nimport { useId } from '../common/hooks';\nconst getInputBaseClassnames = classNamesFunction();\nconst CLASS = 'elx-input';\nexport const useInputBase = (props) => {\n const generatedId = useId(CLASS);\n const theme = useTheme();\n const componentTheme = theme;\n const classnames = getInputBaseClassnames(props.styles, { ...props, theme: componentTheme });\n return {\n props,\n id: props.id || generatedId,\n theme,\n classnames,\n };\n};\n","import React from 'react';\nimport { Icon, Label, TextField, Announced, styled } from '@fluentui/react';\nimport { isNullOrWhitespace } from '../common';\nimport { InputMessageTypes } from './ElxInputBase.types';\nimport { readonlyComponentStyles, readonlyGlobalClassName, getInputBaseLabelStyles, useInputBaseStyles } from './ElxInputBase.styles';\nimport { useInputBase } from './useInputBase';\nconst emptyObject = {};\nconst ElxInputBaseImpl = (props) => {\n const component = useInputBase(props);\n const { id, classnames } = component;\n const inputBaseId = `${id}-base`;\n return (React.createElement(\"div\", { id: inputBaseId, className: classnames.root },\n renderLabel(component),\n renderDescription(component),\n renderInputActions(component),\n renderChildren(props),\n renderMessage(component)));\n};\nexport const ElxInputBase = styled(ElxInputBaseImpl, useInputBaseStyles, undefined, {\n scope: 'ElxInputBase',\n});\nfunction renderMessage({ props, classnames }) {\n const { message } = props;\n let messageDisplay = React.createElement(React.Fragment, null);\n if (message) {\n let iconName;\n switch (message.type) {\n case InputMessageTypes.Error:\n iconName = 'ErrorBadge';\n break;\n case InputMessageTypes.Success:\n iconName = 'Completed';\n break;\n case InputMessageTypes.Warning:\n iconName = 'Warning';\n break;\n case InputMessageTypes.Info:\n iconName = 'Info';\n break;\n default:\n iconName = undefined;\n }\n messageDisplay = (React.createElement(\"div\", { className: classnames.messageContainer },\n React.createElement(\"span\", { className: classnames.message },\n React.createElement(Icon, { className: classnames.messageIcon, iconName: iconName }),\n React.createElement(\"span\", null, message.content))));\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(Announced, { \"aria-live\": \"assertive\", message: `${message?.content ?? ''}` }),\n \" \",\n messageDisplay));\n}\nexport function renderLabel(component) {\n const { classnames, props } = component;\n if (!props)\n return null;\n const { labelActions, onRenderLabel } = props;\n const renderDefaultLabel = getDefaultLabelRenderer(component);\n return (React.createElement(\"div\", { className: classnames.labelContainer },\n (onRenderLabel && onRenderLabel(props, renderDefaultLabel)) || renderDefaultLabel(props),\n labelActions && (React.createElement(\"div\", { className: classnames.labelActionContainer }, labelActions.map((o, i) => (React.createElement(\"div\", { key: i, className: classnames.labelActionItem }, o)))))));\n}\nexport function getInputDescriptionId(inputId) {\n return inputId + '-description';\n}\nexport function getInputLabelId(inputId) {\n return inputId + '-label';\n}\nfunction renderDescription({ props, classnames }) {\n if (!props)\n return null;\n const { onRenderDescription, description } = props;\n const defaultRenderer = (props) => {\n if (!props)\n return null;\n const { description, id } = props;\n return description ? (React.createElement(\"div\", { className: classnames.description, id: getInputDescriptionId(id) }, description)) : null;\n };\n return onRenderDescription || description ? (React.createElement(\"div\", { className: classnames.descriptionContainer }, onRenderDescription ? onRenderDescription(props, defaultRenderer) : defaultRenderer(props))) : null;\n}\nfunction renderInputActions({ props, classnames }) {\n if (!props)\n return null;\n const { inputActions } = props;\n return inputActions ? (React.createElement(\"div\", { className: classnames.inputActionContainer }, inputActions.map((o, i) => (React.createElement(\"div\", { key: i, className: classnames.inputActionItem }, o))))) : null;\n}\nfunction getDefaultLabelRenderer({ theme }) {\n return function (props) {\n const { label, required, disabled, id } = props;\n const labelStyles = getInputBaseLabelStyles({ ...props, theme });\n return label ? (React.createElement(Label, { styles: labelStyles, required: required, id: getInputLabelId(id), disabled: disabled }, label)) : null;\n };\n}\nfunction renderChildren(props) {\n if (!props) {\n return null;\n }\n const { children, readOnly, onRenderReadOnly } = props;\n if (readOnly) {\n return (onRenderReadOnly && onRenderReadOnly(props, renderReadonly)) || renderReadonly(props);\n }\n return children;\n}\nfunction renderReadonly(props) {\n if (!props) {\n return null;\n }\n const { id, readOnlyText, disabled, required } = props;\n const text = !isNullOrWhitespace(readOnlyText) ? readOnlyText : 'No data available';\n return (React.createElement(TextField, { id: id, ariaLabel: props.label ?? 'Input', className: readonlyGlobalClassName, \"aria-labelledby\": props.label ? getInputLabelId(id) : props['aria-labelledby'], \"aria-describedby\": props.description ? getInputDescriptionId(id) : props['aria-describedby'], label: undefined, description: undefined, onRenderDescription: undefined, onRenderLabel: undefined, multiline: true, wrap: \"hard\", autoAdjustHeight: true, value: text, rows: 1, resizable: false, disabled: disabled, readOnly: true, required: required, styles: readonlyComponentStyles }));\n}\n","import { mergeStyleSets } from '@fluentui/react';\nimport { getElxTheme, MessageColors, px2rem } from '@elixir/styling';\nimport { InputMessageTypes } from '../InputBase/ElxInputBase.types';\n/**\n * Get a style based on the {@Link IElxTextFieldProps}\n *\n * @param {IElxTextFieldProps} props\n * @returns {IStyleFunctionOrObject}\n */\nexport function getTextFieldStyles(props, theme) {\n const { styles, showLineNumbers, multiline, message } = props;\n const hasError = message && message.type === InputMessageTypes.Error;\n const elxTheme = getElxTheme(theme);\n return (styleProps) => {\n const { focused } = styleProps;\n return mergeStyleSets({\n root: {\n '.line-numbers-prefix': {\n lineHeight: px2rem(17),\n paddingTop: px2rem(6),\n position: 'relative',\n textAlign: 'right',\n maxHeight: 0,\n },\n },\n fieldGroup: [\n {\n height: multiline ? 'inherit' : elxTheme.constants.input.controlHeight,\n '&::before': {\n content: '',\n display: 'none',\n },\n },\n hasError && [\n {\n borderColor: MessageColors.ErrorIcon,\n },\n focused && {\n '&::after': {\n border: '2px solid ' + MessageColors.ErrorIcon,\n },\n },\n ],\n ],\n prefix: {},\n field: {},\n suffix: {},\n description: {},\n errorMessage: {\n display: 'none',\n },\n icon: {},\n subComponentStyles: {\n label: {},\n },\n wrapper: {},\n ...(showLineNumbers && {\n fieldGroup: {\n alignItems: 'stretch',\n },\n prefix: {\n overflow: 'hidden',\n alignItems: 'stretch',\n },\n field: {\n whiteSpace: 'pre',\n overflowX: 'auto',\n },\n }),\n }, styles);\n };\n}\n","import React from 'react';\nimport { useTheme, TextField, css } from '@fluentui/react';\nimport { useDebounceInteractionTracker } from '@elixir/telemetry';\nimport { isNullOrWhitespace } from '../common';\nimport { useId } from '../common/hooks';\nimport { InputMessageTypes } from '../InputBase/ElxInputBase.types';\nimport { ElxInputBase, getInputDescriptionId, getInputLabelId } from '../InputBase/ElxInputBase';\nimport { trackOnchange } from './ElxTextField.utility';\nimport { getTextFieldStyles } from './ElxTextField.styles';\nimport { removeUnsupportedReadOnlyProps } from '../InputBase/ElxInputBase.utility';\nconst CLASS = 'elx-textfield';\nexport const ElxTextField = (props) => {\n const generatedId = useId(CLASS);\n const id = props.id || generatedId;\n const autoComplete = props.autoComplete || 'off';\n const track = useDebounceInteractionTracker();\n const [numberOfLines, setNumberOfLines] = React.useState(1);\n const lineNumberRef = React.useRef(null);\n const theme = useTheme();\n React.useEffect(() => {\n if (props.showLineNumbers && props.value !== undefined) {\n const newNumberOfLines = props.value.split('\\n').length;\n if (newNumberOfLines !== numberOfLines) {\n setNumberOfLines(newNumberOfLines);\n }\n }\n }, [numberOfLines, props.showLineNumbers, props.value]);\n const onChange = (e, newValue) => {\n trackOnchange(props, track, newValue);\n if (props.showLineNumbers && newValue !== undefined) {\n const newNumberOfLines = newValue.split('\\n').length;\n if (newNumberOfLines !== numberOfLines) {\n setNumberOfLines(newNumberOfLines);\n }\n }\n if (props.onChange) {\n props.onChange(e, newValue);\n }\n };\n const onScroll = (e) => {\n if (props.showLineNumbers) {\n lineNumberRef.current.style.top = `${-1 * e.target.scrollTop}px`;\n }\n if (props.onScroll) {\n props.onScroll(e);\n }\n };\n const renderLineNumbers = () => {\n return (React.createElement(\"div\", { className: \"line-numbers-prefix\", ref: lineNumberRef }, Array.from({ length: numberOfLines }).map((element, lineNumber) => (React.createElement(\"div\", { key: lineNumber + 1 }, lineNumber + 1)))));\n };\n const onRenderPrefix = () => {\n if (props.showLineNumbers) {\n return () => renderLineNumbers();\n }\n return props.onRenderPrefix;\n };\n const ariaLabelledBy = props['aria-labelledby'] || getInputLabelId(id);\n const ariaDescribedBy = props['aria-describedby'] || getInputDescriptionId(id);\n return (React.createElement(ElxInputBase, Object.assign({ id: id }, getUnControlledTextFieldProps(props), { styles: props.wrapperStyles }),\n React.createElement(TextField, Object.assign({}, props, { id: id, className: css('elx-textfield', props.className), ariaLabel: props.ariaLabel ?? props.label ?? 'Text field', \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onGetErrorMessage: () => (props.message?.type === InputMessageTypes.Error ? React.createElement(React.Fragment, null) : undefined), label: undefined, description: undefined, onRenderDescription: undefined, onRenderLabel: undefined, autoComplete: autoComplete, onChange: onChange, onScroll: onScroll, styles: getTextFieldStyles(props, theme), onRenderPrefix: onRenderPrefix() }))));\n};\nconst getUnControlledTextFieldProps = (props) => {\n if (isNullOrWhitespace(props.value) || isNullOrWhitespace(props.defaultValue)) {\n return removeUnsupportedReadOnlyProps(props);\n }\n return props;\n};\n","/**\n * Display mode used by the {@link ElxDateTimePicker}\n *\n * @export\n * @enum {number}\n */\nexport var ElxDateTimePickerDisplayMode;\n(function (ElxDateTimePickerDisplayMode) {\n /**\n * The calendar and time pickers are shown side-by-side with a vertical divider separating them\n */\n ElxDateTimePickerDisplayMode[ElxDateTimePickerDisplayMode[\"SideBySide\"] = 0] = \"SideBySide\";\n /**\n * The calendar and time pickers are shown vertically stacked with a horizontal divider separating them\n */\n ElxDateTimePickerDisplayMode[ElxDateTimePickerDisplayMode[\"Stacked\"] = 1] = \"Stacked\";\n /**\n * Only the calendar is shown to allow picking a date only\n */\n ElxDateTimePickerDisplayMode[ElxDateTimePickerDisplayMode[\"DateOnly\"] = 2] = \"DateOnly\";\n})(ElxDateTimePickerDisplayMode || (ElxDateTimePickerDisplayMode = {}));\n","import { isTrackingInteraction } from '@elixir/telemetry';\n/**\n * Handles the interaction tracking\n *\n * @export\n * @param {IElxTextFieldProps} props\n * @param {((name: string, label?: string, context?: IInteractionTrackingContext) => void)} track\n * @param {(string | undefined)} newValue\n */\nexport function trackOnchange(props, track, newValue) {\n if (isTrackingInteraction()) {\n const label = props.label;\n const name = props.multiline ? 'TextArea' : 'TextField';\n track(name, label, {\n ...props.trackingContext,\n type: 'change',\n value: newValue,\n });\n }\n}\n","export function removeUnsupportedReadOnlyProps(props) {\n const returnValue = { ...props };\n delete returnValue.readOnly;\n delete returnValue.readOnlyText;\n delete returnValue.onRenderReadOnly;\n return returnValue;\n}\n","export const CalendarStrings = {\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n goToToday: 'Go to today',\n closeButtonAriaLabel: 'Close',\n weekNumberFormatString: 'Week number {0}',\n prevMonthAriaLabel: 'Previous month',\n nextMonthAriaLabel: 'Next month',\n prevYearAriaLabel: 'Previous year',\n nextYearAriaLabel: 'Next year',\n prevYearRangeAriaLabel: 'Previous year range',\n nextYearRangeAriaLabel: 'Next year range',\n monthPickerHeaderAriaLabel: '{0}, select to change the year',\n yearPickerHeaderAriaLabel: '{0}, select to change the month',\n};\nexport const DateTimePickerStrings = {\n apply: 'Apply',\n cancel: 'Cancel',\n hour: 'Hour',\n minute: 'Minute',\n second: 'Second',\n selectDate: 'Select date...',\n selectDateTime: 'Select date time...',\n selectedDate: 'Selected date',\n selectedTime: 'Selected time (UTC)',\n timeZone: 'Time zone',\n tooltop: 'Click to pick a date/time...',\n utcSymbol: 'UTC',\n utcTime: 'UTC time',\n errorMessage: 'Invalid date/time string',\n};\n","import { getElxTheme } from '@elixir/styling';\nexport const getDateTimePickerStyles = ({ theme }) => {\n const elxTheme = getElxTheme(theme);\n return {\n blockContainer: {\n display: 'block',\n paddingTop: '11px',\n paddingBottom: '11px',\n paddingLeft: '8px',\n },\n calendarIcon: {\n cursor: 'pointer',\n padding: elxTheme.constants.datePicker.calendarIconPadding,\n position: 'absolute',\n right: '4px',\n },\n columnFlexContainer: {\n display: 'flex',\n flexFlow: 'column',\n textAlign: 'left',\n paddingRight: '10px',\n },\n dateContainer: {\n minWidth: '225px',\n maxWidth: '225px',\n paddingTop: '0px',\n marginTop: '0px',\n },\n flexPaddingContainer: {\n display: 'flex',\n paddingTop: '11px',\n paddingLeft: '10px',\n },\n footerContainer: {\n display: 'flex',\n height: '100%',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n paddingBottom: '16px',\n },\n horizontalContainer: {\n display: 'flex',\n minWidth: '556px',\n maxWidth: '540px',\n paddingTop: '0px',\n marginTop: '0px',\n '.ms-DatePicker': {\n boxShadow: 'none',\n },\n },\n horizontalDivider: {\n borderTop: '3px solid lightgrey',\n marginLeft: '10px',\n height: '3px',\n width: '306px',\n },\n rightSpacing: {\n marginRight: '7px',\n },\n textFieldContainer: {\n display: 'flex',\n alignItems: 'stretch',\n width: '100%',\n },\n verticalContainer: {\n minWidth: '331px',\n maxWidth: '331px',\n paddingTop: '0px',\n marginTop: '0px',\n '.ms-DatePicker': {\n boxShadow: 'none',\n },\n },\n verticalDivider: {\n borderLeft: '3px solid lightgrey',\n marginBottom: '16px',\n marginTop: '16px',\n height: '240px',\n },\n timezoneSelector: {\n paddingTop: '2px',\n minWidth: '123px',\n width: '123px',\n },\n timePicker: {\n marginRight: '7px',\n },\n calloutRoot: ['elx-picker-callout', {}],\n root: ['elx-datetimepicker', {}],\n };\n};\nexport const calendarStyles = ({ theme }) => {\n return {\n root: {\n '.ms-CalendarDay-dayIsToday': {\n borderRadius: '100%',\n backgroundColor: `${theme.palette.neutralQuaternaryAlt} !important`,\n color: `${theme.palette.black} !important`,\n },\n '.ms-CalendarDay-daySelected': {\n backgroundColor: `${theme.palette.themePrimary} !important`,\n color: `${theme.palette.white} !important`,\n fontWeight: '600 !important',\n },\n '.ms-CalendarDay-hoverStyle': {\n backgroundColor: `${theme.palette.neutralLight} !important`,\n color: `${theme.palette.black} !important`,\n },\n },\n };\n};\nexport const spinButtonStyle = {\n root: {\n minWidth: '55px',\n width: '55px',\n },\n spinButtonWrapper: {\n minWidth: '55px',\n width: '55px',\n },\n input: {\n minWidth: '36px',\n },\n};\n","import dayjs from 'dayjs';\nimport objectSupport from 'dayjs/plugin/objectSupport';\ndayjs.extend(objectSupport);\n/**\n * Helper class that implements DateTime related functions\n */\nexport class DateTimeUtils {\n /**\n * Format time string after applying UTC offset minutes\n *\n * @param number\n * @return\n */\n static formatUtcOffsetTime(utcOffsetMinutes) {\n if (!utcOffsetMinutes) {\n utcOffsetMinutes = 0;\n }\n const h = (utcOffsetMinutes - (utcOffsetMinutes % 60)) / 60;\n const m = utcOffsetMinutes % 60;\n const hh = h < 0 ? (-h < 10 ? `-0${-h}` : `-${-h}`) : h < 10 ? `+0${h}` : `+${h}`;\n const mm = m < 0 ? (-m < 10 ? `0${-m}` : `${-m}`) : m < 10 ? `0${m}` : `${m}`;\n return `${hh}:${mm}`;\n }\n /**\n * Conver string value to Dayjs object\n *\n * @param date\n * @param hour\n * @param minute\n * @param second\n * @param timeZoneOffsetMinutes\n * @return\n */\n static fromDateTime(date, hour, minute, second, timeZoneOffsetMinutes) {\n const d = dayjs().utc().set({\n year: date.getFullYear(),\n month: date.getMonth(),\n date: date.getDate(),\n hour: hour,\n minute: minute,\n second: second,\n });\n return d.subtract(timeZoneOffsetMinutes, 'minute');\n }\n /**\n * Conver string value to Dayjs object\n *\n * @param value\n * @return\n */\n static fromString(value) {\n return !value ? dayjs().utc() : dayjs(value).utc();\n }\n /**\n * Conver Dayjs object to Date object\n *\n * @param number\n * @return\n */\n static toDate(d) {\n return !d || !d.isValid() ? new Date() : d.toDate();\n }\n /**\n * Conver Dayjs object to Date object\n *\n * @param number\n * @return\n */\n static toUtcDate(d) {\n return !d || !d.isValid() ? new Date() : new Date(d.utc().year(), d.utc().month(), d.utc().date());\n }\n /**\n * Conver Date object to string value\n *\n * @param number\n * @return\n */\n static toDateString(date) {\n if (!date) {\n return '';\n }\n const m = date.getMonth() + 1;\n const d = date.getDate();\n const mm = m < 10 ? `0${m}` : `${m}`;\n const dd = d < 10 ? `0${d}` : `${d}`;\n return `${date.getFullYear()}-${mm}-${dd}`;\n }\n /**\n * Conver Dayjs object to string value\n *\n * @param number\n * @return\n */\n static toDateTimeString(d) {\n return !d || !d.isValid() ? '' : d.utc().format().replace('Z', this.formatUtcOffsetTime());\n }\n}\n","/**\n * Handy abstraction for getting the timezone offset (and flipping the sign):\n * - Date().getTimezoneOffset() for some reason gives the wrong offset sign (positive for timezones west to Greenwich)\n * - additionally, this method could be spied upon and mocked in unit tests\n * - Fix: To get timezone offset of the date selected, the date needs to be sent.\n */\nexport const getTimezoneUtcOffset = (date) => -1 * (date || new Date()).getTimezoneOffset();\n","import dayjs from 'dayjs';\nimport { getTimezoneUtcOffset } from './getTimezoneUtcOffset';\n/**\n * In order to display the date time of another timezone, date controls need to \"simulate\" another date (\"UI date\")\n * This method converts the UI date (the one used by controls) to the real one (the one we're loading/saving)\n * @param uiDate UI date\n * @param targetTimezoneUtcOffset UTC offset of target timezone\n * @param localTimezoneUtcOffset UTC offset of browser timezone\n */\nexport const uiToRealDate = (uiDate, targetTimezoneUtcOffset = 0, localTimezoneUtcOffset = getTimezoneUtcOffset(uiDate)) => dayjs(uiDate)\n .subtract(targetTimezoneUtcOffset - localTimezoneUtcOffset, 'minute')\n .toDate();\n","import dayjs from 'dayjs';\nexport const DefaultDateToString = (date, format = 'L') => dayjs(date).format(format);\nexport const DefaultStringToDate = (text, format = 'L') => dayjs(text, format).toDate();\nexport const DefaultIsValid = (text, format = 'L') => dayjs(text, format).format(format) === text;\nexport const DefaultDateFieldSettings = {\n format: 'L',\n};\n","import { CalendarStrings } from '../../DateTimePicker/ElxDateTimePicker.constants';\nimport { DefaultDateFieldSettings } from '../DateField/constants';\n// Use this to hide the today selection which currently can't be disabled\nconst DummyTodayDate = new Date(0); // 01/01/1970\nexport const DefaultInnerCalendarProps = {\n strings: CalendarStrings,\n isMonthPickerVisible: false,\n showGoToToday: false,\n today: DummyTodayDate,\n};\nexport const DefaultCalendarSettings = {\n innerCalendarProps: DefaultInnerCalendarProps,\n showDateField: true,\n dateFieldSettings: DefaultDateFieldSettings,\n};\n","export const DefaultTimeSelectorSettings = {\n showHours: true,\n showMinutes: true,\n showSeconds: true,\n showTimezoneSelector: true,\n timeZones: [],\n};\n","import { DefaultCalendarSettings } from '../Calendar/constants';\nimport { DefaultTimeSelectorSettings } from '../TimeSelector/constants';\nexport const DefaultDateTimeSelectorSettings = {\n calendarSettings: DefaultCalendarSettings,\n // hiding seconds and timezones by default\n timeSelectorSettings: {\n ...DefaultTimeSelectorSettings,\n showSeconds: false,\n showTimezoneSelector: false,\n },\n};\n","import { DefaultDateTimeSelectorSettings } from '../DateTimeSelector/constants';\nexport const DefaultAbsoluteTimeRangeSelectorSettings = {\n dateTimeSelectorSettings: {\n ...DefaultDateTimeSelectorSettings,\n // hiding seconds and timezones\n timeSelectorSettings: {\n showSeconds: false,\n showTimezoneSelector: false,\n },\n },\n};\n","import { createContext } from 'react';\nimport { merge } from 'lodash';\nimport { defaultStrings } from './strings';\nconst defaultOverrides = {};\n/** Creates new strings object by overriding the defaults */\nexport const createLocalization = (overrides = defaultOverrides) => merge({}, defaultStrings, overrides);\nconst LocalizationContext = createContext(defaultStrings);\nexport default LocalizationContext;\n","/**\n * Default values (in English)\n */\nexport const defaultStrings = {\n filter: {\n addFilter: 'Add filter',\n removeFilter: 'Remove filter',\n apply: 'Apply',\n cancel: 'Cancel',\n retry: 'Retry',\n loadingValues: 'Loading values',\n errorLoadingValues: 'There was an error retrieving filter values.',\n operatorSelector: 'Operator selector',\n fieldSelector: 'Field selector',\n noSearchResultsFound: 'No filters found',\n selectField: 'Select field',\n searchFieldPlaceholder: 'Search',\n searchFieldAriaLabel: 'Search field',\n searchNumberOfFilteredItems: 'Number of items after filter applied',\n searchOneItemMatched: 'One filter found',\n searchItemsMatched: 'filters found',\n searchValues: 'Search values',\n selectAllCheckboxLabel: 'All',\n selectAllCheckboxAriaLabel: 'Select all checkbox',\n },\n timeRangeSelector: {\n ariaLabel: 'Time range selector',\n relativeTime: 'Relative time',\n absoluteTime: 'Absolute time',\n },\n absoluteTimeRangeSelector: {\n from: 'From',\n to: 'To',\n enterFromDateText: 'enter from date',\n enterToDateText: 'enter to date',\n select: 'Select',\n selectDateText: 'enter date',\n },\n timeSelector: {\n hour: 'Hour',\n minute: 'Minute',\n second: 'Second',\n selectDateTime: 'Select date time',\n selectedTime: 'Selected time (UTC)',\n timeZone: 'Time zone',\n utcSymbol: 'UTC',\n utcTime: 'UTC time',\n },\n};\n","import { useContext } from 'react';\nimport LocalizationContext from './LocalizationContext';\nexport const useLocalization = () => useContext(LocalizationContext);\n","import React, { useCallback, useEffect, useState } from 'react';\nimport dayjs from 'dayjs';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport { css, MaskedTextField, TextField } from '@fluentui/react';\nimport { DefaultDateToString, DefaultStringToDate, DefaultIsValid } from './constants';\nimport { getClassNames } from './DateField.styles';\nimport { FnEmpty } from '../../common';\ndayjs.extend(localizedFormat);\nconst styles = getClassNames();\nconst isValidDate = (d) => dayjs(d).isValid();\nconst invalidDateErrorMessage = 'Invalid date';\nconst iconProps = { iconName: 'Calendar' };\n/**\n * ElxDateTimePicker component\n * @param props\n */\n// eslint-disable-next-line max-lines-per-function\nconst ElxDateField = ({ value, format = 'L', dateToString = DefaultDateToString, stringToDate = DefaultStringToDate, isValid = DefaultIsValid, mask, className, ariaLabel = 'enter date', disabled, validateOnChange = true, onChange = FnEmpty, }) => {\n const [text, setText] = useState(undefined);\n const [errorMessage, setErrorMessage] = useState('');\n useEffect(() => {\n if (value && isValidDate(value)) {\n setText(dateToString(value, format));\n setErrorMessage('');\n }\n }, [value, format, dateToString]);\n const onTextChange = useCallback((_event, value) => {\n setText(value);\n if (!validateOnChange) {\n return;\n }\n if (isValid(value, format)) {\n setErrorMessage('');\n }\n else {\n setErrorMessage(invalidDateErrorMessage);\n }\n }, [setText, validateOnChange, isValid, setErrorMessage, format]);\n const onKeyDown = useCallback((event) => {\n if (event.key !== 'Enter' || !text) {\n return;\n }\n if (isValid(text, format)) {\n const nextDate = stringToDate(text, format);\n setErrorMessage('');\n onChange({\n date: nextDate,\n text,\n });\n }\n else {\n setErrorMessage(invalidDateErrorMessage);\n }\n }, [text, isValid, stringToDate, setErrorMessage, onChange, format]);\n const onBlur = useCallback(() => {\n if (!text) {\n return;\n }\n if (isValid(text, format)) {\n const nextDate = stringToDate(text, format);\n setErrorMessage('');\n onChange({\n date: nextDate,\n text,\n });\n }\n else {\n setErrorMessage(invalidDateErrorMessage);\n }\n }, [text, isValid, stringToDate, setErrorMessage, onChange, format]);\n const showMaskedTextField = Boolean(mask);\n return showMaskedTextField ? (React.createElement(MaskedTextField, { ariaLabel: ariaLabel, className: css(styles.root, className), iconProps: iconProps, onChange: onTextChange, onKeyDown: onKeyDown, onBlur: onBlur, mask: mask, value: text, errorMessage: errorMessage, disabled: disabled, \"data-testid\": \"date-field\" })) : (React.createElement(TextField, { ariaLabel: ariaLabel, className: css(styles.root, className), iconProps: iconProps, onChange: onTextChange, onKeyDown: onKeyDown, onBlur: onBlur, value: text, errorMessage: errorMessage, disabled: disabled, \"data-testid\": \"date-field\" }));\n};\nexport default ElxDateField;\n","export const DefaultOperator = '==';\nexport var FilterOptionMode;\n(function (FilterOptionMode) {\n /**\n * Predefined list of values\n */\n FilterOptionMode[\"List\"] = \"List\";\n /**\n * Free-form text input\n */\n FilterOptionMode[\"Text\"] = \"Text\";\n /**\n * Custom editor\n */\n FilterOptionMode[\"Custom\"] = \"Custom\";\n})(FilterOptionMode || (FilterOptionMode = {}));\nexport var FilterOptionPillMode;\n(function (FilterOptionPillMode) {\n /**\n * All the results will be fetched on mount and typing into the Search field will filter out those results locally\n * Additionally, the pills will render actual labels instead of values (\"Last 3 days\" instead of \"3d\")\n * Note: please use Static only when dealing with static set of predefined values on the client (your \"values\" shouldn't dynamically call any API)\n */\n FilterOptionPillMode[\"Static\"] = \"Static\";\n /**\n * Dynamic (asynchronous) list\n * The values to show in filter editor will be fetched when the editor mounts and also after typing into the Search field (debounced)\n * When fetching the filter values by calling the API, this is the right option to choose\n * Note: the pill will render the values instead of labels (\"3d\" and not \"Last 3 days\")\n */\n FilterOptionPillMode[\"Dynamic\"] = \"Dynamic\";\n})(FilterOptionPillMode || (FilterOptionPillMode = {}));\nexport var FilterOptionApplyMode;\n(function (FilterOptionApplyMode) {\n /**\n * Changes are applied when user hits the Apply button (this is a default)\n */\n FilterOptionApplyMode[\"Button\"] = \"Button\";\n /**\n * Changes are applied with every selection change (checkbox click etc.)\n */\n FilterOptionApplyMode[\"SelectionChange\"] = \"SelectionChange\";\n /**\n * Changes are applied when filter editor is blurred out (clicked outside and closed)\n */\n FilterOptionApplyMode[\"ClickOutside\"] = \"ClickOutside\";\n})(FilterOptionApplyMode || (FilterOptionApplyMode = {}));\n","import { mergeStyleSets } from '@fluentui/react';\nexport const getClassNames = () => mergeStyleSets({\n root: {\n display: 'block',\n },\n});\n","import React, { useCallback } from 'react';\nimport { Calendar, DateRangeType, css, useTheme } from '@fluentui/react';\nimport dayjs from 'dayjs';\nimport ElxDateField from '../DateField/ElxDateField';\nimport { getClassNames } from './Calendar.styles';\nimport { useLinkedState } from '../../common/hooks';\nimport { DefaultCalendarSettings } from './constants';\nimport { FnEmpty } from '../../common';\nimport { DefaultIsValid, DefaultStringToDate } from '../DateField/constants';\nconst DefaultDate = new Date(); // current\nconst ElxCalendar = ({ value, showDateField = DefaultCalendarSettings.showDateField, innerCalendarProps = DefaultCalendarSettings.innerCalendarProps, dateFieldSettings, disabled = false, className, minDate, maxDate, ariaLabel, onChange = FnEmpty, }) => {\n const theme = useTheme();\n const styles = getClassNames(theme);\n /**\n * Merging with defaults\n * */\n dateFieldSettings = { ...DefaultCalendarSettings.dateFieldSettings, ...dateFieldSettings };\n const dateRangeType = innerCalendarProps?.dateRangeType;\n // these pieces of state are linked to props\n const [date, setDate] = useLinkedState(value || DefaultDate);\n const onCalendarChange = (date, selectedDateRangeArray) => {\n if (disabled) {\n return;\n }\n setDate(date);\n if (dateRangeType === DateRangeType.Month && !selectedDateRangeArray) {\n selectedDateRangeArray = [dayjs(date).startOf('month').toDate(), dayjs(date).endOf('month').toDate()]; // If month selection is enabled, fluent calendar doesn't return date range.\n }\n onChange(date, selectedDateRangeArray);\n };\n const onTextFieldChange = useCallback(({ date }) => {\n if (disabled) {\n return;\n }\n setDate(date);\n onChange(date);\n }, [disabled, setDate, onChange]);\n // Checks validity of date is of correct format and within boundaries of min and max dates.\n const isValid = (text, format) => {\n let isValid = true;\n const date = DefaultStringToDate(text, format);\n isValid = isValid && (minDate && date < minDate ? false : true);\n isValid = isValid && (maxDate && date > maxDate ? false : true);\n return isValid && DefaultIsValid(text, format);\n };\n const dateFromTextField = showDateField && (React.createElement(ElxDateField, Object.assign({}, dateFieldSettings, { value: date, disabled: disabled, onChange: onTextFieldChange, isValid: isValid, ariaLabel: ariaLabel })));\n // Note: using *allFocusable* instead of *disabled* because it seems disabled isn't implemented with Calendar\n // A better solution would be to use *restrictedDates*\n return (React.createElement(\"div\", { className: css(styles.root, className), \"data-testid\": \"calendar\" },\n React.createElement(Calendar, Object.assign({}, innerCalendarProps, { minDate: minDate || innerCalendarProps?.minDate, maxDate: maxDate || innerCalendarProps?.maxDate, className: styles.calendar, value: date, onSelectDate: onCalendarChange, allFocusable: disabled })),\n dateFromTextField));\n};\nexport default ElxCalendar;\n","import { mergeStyleSets } from '@fluentui/react';\nimport { px2rem, getElxTheme } from '@elixir/styling';\nexport const getClassNames = (theme) => {\n const elxTheme = getElxTheme(theme);\n return mergeStyleSets({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: 'fit-content',\n selectors: {\n '.ms-DatePicker ': {\n boxShadow: 'none',\n },\n '.ms-CalendarDay-daySelected::before': {\n borderWidth: elxTheme.constants.datePicker.todaySelectedBorderWidth,\n },\n },\n },\n calendar: {\n // ensuring that the component doesn't change height when FluentUI calendar changes height (due to different number of days)\n height: px2rem(256),\n },\n dateTextField: {\n display: 'block',\n width: px2rem(150),\n },\n });\n};\n","import { px2rem } from '@elixir/styling';\nexport const FlexContainerStyle = {\n display: 'flex',\n};\nexport const RightSpacingStyle = {\n marginRight: '.42rem',\n};\nexport const SpinButtonStyle = {\n root: {\n minWidth: px2rem(60),\n width: px2rem(60),\n },\n spinButtonWrapper: {\n minWidth: px2rem(60),\n width: px2rem(60),\n },\n input: {\n minWidth: px2rem(36),\n },\n};\nexport const TimeZoneStyle = {\n paddingTop: '.11rem',\n minWidth: '6.7rem',\n width: '6.7rem',\n};\n","import React from 'react';\nimport { Position, SpinButton } from '@fluentui/react';\nimport * as Styles from '../TimeSelector.styles';\n/**\n * TimePickerSpinButton component\n * @param props\n */\nexport const TimePickerSpinButton = (props) => {\n return (React.createElement(\"div\", { style: Styles.RightSpacingStyle },\n React.createElement(SpinButton, { label: props.name, labelPosition: Position.top, styles: Styles.SpinButtonStyle, min: 0, max: props.maxValue, step: 1, value: props.numericValue < 10 ? `0${props.numericValue}` : `${props.numericValue}`, onDecrement: (value) => {\n let newValue = +value - 1;\n if (newValue < 0) {\n newValue = props.maxValue;\n }\n props.setNumericValue(newValue);\n }, onIncrement: (value) => {\n let newValue = +value + 1;\n if (newValue > props.maxValue) {\n newValue = 0;\n }\n props.setNumericValue(newValue);\n }, onValidate: (value) => {\n if (isNaN(+value) || +value < 0) {\n props.setNumericValue(0);\n }\n else if (+value > props.maxValue) {\n props.setNumericValue(props.maxValue);\n }\n else {\n props.setNumericValue(+value);\n }\n }, disabled: props.disabled, incrementButtonAriaLabel: props.incrementButtonAriaLabel, decrementButtonAriaLabel: props.decrementButtonAriaLabel })));\n};\n","import React, { useCallback, useMemo } from 'react';\nimport { Dropdown } from '@fluentui/react';\nimport { useLocalization } from '../../../Localization/useLocalization';\nimport * as Styles from '../TimeSelector.styles';\nimport { DateTimeUtils } from '../../../DateTimePicker/ElxDateTimePicker.utilities';\nconst hasUtcTimeZone = (items = []) => items.some((timeZone) => timeZone.utcOffsetMinutes === 0);\nconst getTimeZoneOptions = (items = [], utcSymbol) => {\n const options = [];\n // Add UTC as default option if it doesn't exist in the user provided time zones list\n if (!hasUtcTimeZone(items)) {\n options.push({\n key: 0,\n text: `${utcSymbol} ${DateTimeUtils.formatUtcOffsetTime(0)}`,\n });\n }\n items.forEach((timeZone) => {\n options.push({\n key: timeZone.utcOffsetMinutes,\n text: `${timeZone.symbol} ${DateTimeUtils.formatUtcOffsetTime(timeZone.utcOffsetMinutes)}`,\n });\n });\n return options;\n};\n/**\n * TimeZoneDropdown component\n * @param props\n */\nexport const TimeZoneDropdown = ({ name, timeZones, timeZoneOffsetMinutes, setTimeZoneOffsetMinutes, disabled, }) => {\n const strings = useLocalization();\n const options = useMemo(() => getTimeZoneOptions(timeZones, strings.timeSelector.utcSymbol), [strings.timeSelector.utcSymbol, timeZones]);\n const onChange = useCallback((_event, option) => setTimeZoneOffsetMinutes(!option ? 0 : +option.key), [setTimeZoneOffsetMinutes]);\n return (React.createElement(\"div\", { style: Styles.TimeZoneStyle },\n React.createElement(Dropdown, { options: options, label: name || strings.timeSelector.timeZone, selectedKey: timeZoneOffsetMinutes || 0, disabled: disabled, onChange: onChange })));\n};\n","export const TimeSelectorStrings = {\n increaseHour: 'Increase hour by 1',\n decreaseHour: 'Decrease hour by 1',\n increaseMinute: 'Increase minute by 1',\n decreaseMinute: 'Decrease minute by 1',\n increaseSecond: 'Increase second by 1',\n decreaseSecond: 'Decrease second by 1',\n};\n","import React, { useCallback } from 'react';\nimport { useLinkedState } from '../../common/hooks';\nimport { TimePickerSpinButton } from './components/TimePickerSpinButton';\nimport { TimeZoneDropdown } from './components/TimeZoneDropdown';\nimport * as Styles from './TimeSelector.styles';\nimport { DefaultTimeSelectorSettings } from './constants';\nimport { FnEmpty } from '../../common';\nimport { useLocalization } from '../../Localization/useLocalization';\nimport { TimeSelectorStrings } from './ElxTimeSelector.constants';\n/**\n * ElxDateTimePicker component\n * @param props\n */\n// eslint-disable-next-line max-lines-per-function\nconst ElxTimeSelector = (props) => {\n const strings = useLocalization();\n const { showHours = DefaultTimeSelectorSettings.showHours, showMinutes = DefaultTimeSelectorSettings.showMinutes, showSeconds = DefaultTimeSelectorSettings.showSeconds, showTimezoneSelector = DefaultTimeSelectorSettings.showTimezoneSelector, timeZones = DefaultTimeSelectorSettings.timeZones, disabled = false, onChange = FnEmpty, } = props;\n /**\n * Note: the design decision behind having both the internal state and accepting the change from props is\n * making this component easier to use in the code. Without the internal state, the user wouldn't be able simply to\n * use the non-configured component on screen (without handling its state externally)\n */\n // these pieces of state are linked to props\n const [hours, setHours] = useLinkedState(showHours ? props.hours || 0 : 0);\n const [minutes, setMinutes] = useLinkedState(showMinutes ? props.minutes || 0 : 0);\n const [seconds, setSeconds] = useLinkedState(showSeconds ? props.seconds || 0 : 0);\n /**\n * Note: UTC offset doesn't make sense on a level of time selector\n * This is because changing the offset could involve changing the date too\n * This control provides the timezone dropdown just a convenience (for rendering purposes)\n * The actual UTC offset calculations should be done by parent component\n */\n const [utcOffset, setUtcOffset] = useLinkedState(props.utcOffset || 0);\n /**\n * Triggers onChange whenever any of the internal state changes\n * Important: the onChange passed from the outside is a dependency of this hook, so it shouldn't be recreated\n * upon each render. Recreating it upon each render might might lead to performance degradations!\n * The outer code should normally use the *useCallback* hook (or *setState* directly) in order to prevent this.\n */\n const hourChangeHandler = useCallback((value) => {\n setHours(value);\n onChange({\n hours: value,\n minutes,\n seconds,\n utcOffset,\n });\n }, [setHours, onChange, minutes, seconds, utcOffset]);\n const minuteChangeHandler = useCallback((value) => {\n setMinutes(value);\n onChange({\n hours,\n minutes: value,\n seconds,\n utcOffset,\n });\n }, [setMinutes, onChange, hours, seconds, utcOffset]);\n const secondChangeHandler = useCallback((value) => {\n setSeconds(value);\n onChange({\n hours,\n minutes,\n seconds: value,\n utcOffset,\n });\n }, [setSeconds, onChange, hours, minutes, utcOffset]);\n const utcOffsetChangeHandler = useCallback((value) => {\n setUtcOffset(value);\n onChange({\n hours,\n minutes,\n seconds,\n utcOffset: value,\n });\n }, [setUtcOffset, onChange, hours, minutes, seconds]);\n const hoursSelector = showHours && (React.createElement(TimePickerSpinButton, { name: strings.timeSelector.hour, maxValue: 23, numericValue: hours, disabled: disabled, setNumericValue: hourChangeHandler, incrementButtonAriaLabel: TimeSelectorStrings.increaseHour, decrementButtonAriaLabel: TimeSelectorStrings.decreaseHour }));\n const minutesSelector = showMinutes && (React.createElement(TimePickerSpinButton, { name: strings.timeSelector.minute, maxValue: 59, numericValue: minutes, disabled: disabled, setNumericValue: minuteChangeHandler, incrementButtonAriaLabel: TimeSelectorStrings.increaseMinute, decrementButtonAriaLabel: TimeSelectorStrings.increaseMinute }));\n const secondsSelector = showSeconds && (React.createElement(TimePickerSpinButton, { name: strings.timeSelector.second, maxValue: 59, numericValue: seconds, disabled: disabled, setNumericValue: secondChangeHandler, incrementButtonAriaLabel: TimeSelectorStrings.increaseSecond, decrementButtonAriaLabel: TimeSelectorStrings.decreaseSecond }));\n const timezoneSelector = showTimezoneSelector && (React.createElement(TimeZoneDropdown, { name: strings.timeSelector.timeZone, timeZones: timeZones || [], timeZoneOffsetMinutes: utcOffset, disabled: disabled, setTimeZoneOffsetMinutes: utcOffsetChangeHandler }));\n return (React.createElement(\"div\", { style: Styles.FlexContainerStyle, \"data-testid\": \"time-selector\" },\n hoursSelector,\n minutesSelector,\n secondsSelector,\n timezoneSelector));\n};\nexport default ElxTimeSelector;\n","import dayjs from 'dayjs';\nexport const extractDate = (date, utcOffset) => {\n let dayjsObject = dayjs(date);\n if (utcOffset !== undefined) {\n // Note: dayjsObject.utcOffset returns a new instance\n dayjsObject = dayjsObject.utcOffset(utcOffset);\n }\n // although we could leave the original *time* in, we want to leave the calendar operating only a date\n // (calendar isn't timezone-aware, so no use of passing in time)\n return dayjsObject.startOf('day').toDate();\n};\n","import dayjs from 'dayjs';\nexport const mergeDateTime = (date, time, utcOffset) => {\n let dayjsObject = dayjs(date);\n if (utcOffset !== undefined) {\n // Note: dayjsObject.utcOffset returns a new instance\n dayjsObject = dayjsObject.utcOffset(utcOffset);\n }\n return dayjsObject\n .set('hour', time?.hours || 0)\n .set('minute', time?.minutes || 0)\n .set('second', time?.seconds || 0)\n .toDate();\n};\n","import { getDefaultDate } from './getDefaultDate';\nimport { realToUiDate } from './realToUiDate';\n/**\n * Gets the local date for given date object.\n * @param date Date object\n * @param offset TimeZone Offset\n * @param localTzOffset Local Timezon offset\n * @returns\n */\nexport const getLocalDateTime = (date, offset, localTzOffset) => {\n const dateTime = date || getDefaultDate(offset, localTzOffset);\n return realToUiDate(dateTime, offset, localTzOffset);\n};\n","import dayjs from 'dayjs';\nimport { getTimezoneUtcOffset } from './getTimezoneUtcOffset';\n/**\n * In order to display the date time of another timezone, date controls need to \"simulate\" another date (\"UI date\")\n * This method converts a real date (the one we're loading/saving) to UI date (the one used by controls)\n * @param realDate Real date\n * @param targetTimezoneUtcOffset UTC offset of target timezone\n * @param localTimezoneUtcOffset UTC offset of browser timezone\n */\nexport const realToUiDate = (realDate, targetTimezoneUtcOffset = 0, localTimezoneUtcOffset = getTimezoneUtcOffset(realDate)) => dayjs(realDate)\n .add(targetTimezoneUtcOffset - localTimezoneUtcOffset, 'minute')\n .toDate();\n","import dayjs from 'dayjs';\nimport { uiToRealDate } from './uiToRealDate';\n/**\n * Returns the start of current *local* day\n * (whichever the *target* timezone we have set, we want to be selecting 00:00 as start time in UI)\n * Needs to be converted to a real date since we're converting to UI again\n *\n * @param targetTimezoneUtcOffset UTC offset of target timezone\n * @param localTimezoneUtcOffset UTC offset of browser timezone\n */\nexport const getDefaultDate = (targetTimezoneUtcOffset, localTimezoneUtcOffset) => {\n const localDateStart = dayjs().startOf('day').toDate();\n return uiToRealDate(localDateStart, targetTimezoneUtcOffset, localTimezoneUtcOffset);\n};\n","import { mergeDateTime } from './mergeDateTime';\nimport { uiToRealDate } from './uiToRealDate';\n/**\n * Gets the UTC equivalent of the date passed\n * @param date Input Date\n * @param time Time selection\n * @param utcOffset UTC Offset\n * @param localTimezoneUtcOffset Local timezone UTC offset\n * @returns\n */\nexport const getUTCDate = (date, time, utcOffset, localTimezoneUtcOffset) => {\n const dateTime = mergeDateTime(date, time);\n return uiToRealDate(dateTime, utcOffset, localTimezoneUtcOffset);\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { css, useTheme } from '@fluentui/react';\nimport ElxCalendar from '../Calendar/ElxCalendar';\nimport ElxTimeSelector from '../TimeSelector/ElxTimeSelector';\nimport { getClassNames } from './DateTimeSelector.styles';\nimport { extractDate } from './utils/extractDate';\nimport { extractTime } from './utils/extractTime';\nimport { mergeDateTime } from './utils/mergeDateTime';\nimport { DefaultDateTimeSelectorSettings } from './constants';\nimport { uiToRealDate } from './utils/uiToRealDate';\nimport { FnEmpty } from '../../common';\nimport { getLocalDateTime } from './utils/getLocalDateTime';\nimport { getUTCDate } from './utils/getUTCDate';\n/**\n * ElxDateTimeSelector component\n * @param props\n */\nconst ElxDateTimeSelector = ({ calendarSettings, timeSelectorSettings, value, utcOffset = 0, localTimezoneUtcOffset, className, disabled, minDate, maxDate, ariaLabel, hideTimeSelector, onChange = FnEmpty, }) => {\n /**\n * Merging with defaults\n * */\n calendarSettings = { ...DefaultDateTimeSelectorSettings.calendarSettings, ...calendarSettings };\n timeSelectorSettings = { ...DefaultDateTimeSelectorSettings.timeSelectorSettings, ...timeSelectorSettings };\n const { showHours, showMinutes, showSeconds } = timeSelectorSettings;\n const [date, setDate] = useState(undefined);\n const [time, setTime] = useState(undefined);\n const [localMinDate, setLocalMinDate] = useState(undefined);\n const [localMaxDate, setLocalMaxDate] = useState(undefined);\n const theme = useTheme();\n const styles = getClassNames(theme);\n /**\n * Updates current state whenever any of the following props update:\n * from, to\n */\n useEffect(() => {\n setDate(extractDate(getLocalDateTime(value, utcOffset, localTimezoneUtcOffset)));\n setTime(extractTime(getLocalDateTime(value, utcOffset, localTimezoneUtcOffset)));\n }, [value, utcOffset, localTimezoneUtcOffset]);\n useEffect(() => {\n if (minDate) {\n setLocalMinDate(extractDate(getLocalDateTime(minDate, utcOffset, localTimezoneUtcOffset)));\n }\n }, [minDate, utcOffset, localTimezoneUtcOffset]);\n useEffect(() => {\n if (maxDate) {\n setLocalMaxDate(extractDate(getLocalDateTime(maxDate, utcOffset, localTimezoneUtcOffset)));\n }\n }, [maxDate, utcOffset, localTimezoneUtcOffset]);\n const dateHandler = useCallback((selectedDate, selectedDateRange) => {\n setDate(selectedDate);\n const utcDateTime = getUTCDate(selectedDate, time, utcOffset, localTimezoneUtcOffset);\n const dateRangeSelected = [];\n selectedDateRange?.forEach((date) => {\n dateRangeSelected.push(getUTCDate(date, time, utcOffset, localTimezoneUtcOffset));\n });\n onChange(utcDateTime, dateRangeSelected);\n }, [time, utcOffset, localTimezoneUtcOffset, onChange]);\n const timeHandler = useCallback((t) => {\n setTime(t);\n const dateTime = mergeDateTime(date, t);\n const utcDateTime = uiToRealDate(dateTime, utcOffset, localTimezoneUtcOffset);\n onChange(utcDateTime);\n }, [date, utcOffset, localTimezoneUtcOffset, onChange]);\n return (React.createElement(\"div\", { className: css(styles.root, className), \"data-testid\": \"datetime-selector\" },\n React.createElement(ElxCalendar, Object.assign({}, calendarSettings, { minDate: localMinDate, maxDate: localMaxDate, value: date, disabled: disabled, onChange: dateHandler, ariaLabel: ariaLabel })),\n !hideTimeSelector && (React.createElement(ElxTimeSelector, Object.assign({}, timeSelectorSettings, { hours: showHours ? time?.hours : 0, minutes: showMinutes ? time?.minutes : 0, seconds: showSeconds ? time?.seconds : 0, disabled: disabled, onChange: timeHandler })))));\n};\nexport default ElxDateTimeSelector;\n","import { mergeStyleSets } from '@fluentui/react';\nimport { px2rem, getElxTheme } from '@elixir/styling';\nexport const getClassNames = (theme) => {\n const elxTheme = getElxTheme(theme);\n return mergeStyleSets({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: 'fit-content',\n selectors: {\n '.ms-TextField-wrapper': {\n margin: elxTheme.constants.datePicker.margin,\n },\n },\n },\n calendar: {\n marginLeft: px2rem(-12),\n },\n });\n};\n","import dayjs from 'dayjs';\nexport const extractTime = (date, utcOffset) => {\n if (!date) {\n return undefined;\n }\n let dayjsObject = dayjs(date);\n if (utcOffset !== undefined) {\n // Note: dayjsObject.utcOffset returns a new instance\n dayjsObject = dayjsObject.utcOffset(utcOffset);\n }\n return {\n hours: dayjsObject.hour(),\n minutes: dayjsObject.minute(),\n seconds: dayjsObject.second(),\n // Note: we're not passing the offset to TimeSelector - we're just respecting its signature\n // DateTimeSelector is not supposed to use the TimeSelector timezones dropdown in any way\n utcOffset: 0,\n };\n};\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { DateRangeType, css } from '@fluentui/react';\nimport { getClassNames } from './AbsoluteTimeRangeSelector.styles';\nimport { getDefaultDateFrom } from './utils/getDefaultDateFrom';\nimport { getDefaultDateTo } from './utils/getDefaultDateTo';\nimport { DefaultAbsoluteTimeRangeSelectorSettings } from './constants';\nimport { FnEmpty } from '../../common';\nimport { useLocalization } from '../../Localization/useLocalization';\nimport { ElxDateTimeSelector } from '../DateTimeSelector';\nimport { DefaultInnerCalendarProps } from '../Calendar/constants';\nconst styles = getClassNames();\nconst ElxAbsoluteTimeRangeSelector = ({ from, to, dateTimeSelectorSettings, disabled = false, className, utcOffset = 0, localTimezoneUtcOffset, onChange = FnEmpty, }) => {\n // Merging with defaults\n dateTimeSelectorSettings = { ...DefaultAbsoluteTimeRangeSelectorSettings.dateTimeSelectorSettings, ...dateTimeSelectorSettings };\n const { dateRangeType, maxDate } = dateTimeSelectorSettings?.calendarSettings?.innerCalendarProps || DefaultInnerCalendarProps;\n const strings = useLocalization();\n const [dateFrom, setDateFrom] = useState(undefined);\n const [dateTo, setDateTo] = useState(undefined);\n //Updates current state whenever any of the following props update: from,to\n useEffect(() => {\n const fromDate = from || getDefaultDateFrom(maxDate, utcOffset, localTimezoneUtcOffset);\n const toDate = to || getDefaultDateTo(maxDate);\n setDateFrom(fromDate);\n setDateTo(toDate);\n }, [from, to, utcOffset, localTimezoneUtcOffset, maxDate]);\n /**\n * Important: the onChange passed from the outside is a dependency of all of the four handlers, so it shouldn't be recreated upon each render. Recreating it upon each render might lead to performance degradations!\n * The outer code should normally use the *useCallback* hook (or *setState* directly) to prevent this.\n */\n const dateFromHandler = useCallback((date, selectedDateRangeArray) => {\n if (selectedDateRangeArray && selectedDateRangeArray.length > 1) {\n setDateFrom(selectedDateRangeArray[0]);\n setDateTo(selectedDateRangeArray[selectedDateRangeArray.length - 1]);\n onChange({\n from: selectedDateRangeArray[0],\n to: selectedDateRangeArray[selectedDateRangeArray.length - 1],\n });\n }\n else {\n setDateFrom(date);\n onChange({\n from: date,\n to: dateTo,\n });\n }\n }, [dateTo, onChange]);\n const dateToHandler = useCallback((date) => {\n setDateTo(date);\n onChange({\n from: dateFrom,\n to: date,\n });\n }, [dateFrom, onChange]);\n const isSingleDatePicker = [DateRangeType.Month, DateRangeType.Week, DateRangeType.WorkWeek].indexOf(dateRangeType || DateRangeType.Day) >= 0;\n const fromDateLabel = isSingleDatePicker ? strings.absoluteTimeRangeSelector.select : strings.absoluteTimeRangeSelector.from;\n const fromDateAriaLabel = isSingleDatePicker\n ? strings.absoluteTimeRangeSelector.selectDateText\n : strings.absoluteTimeRangeSelector.enterFromDateText;\n return (React.createElement(\"div\", { className: css(styles.root, className), \"data-testid\": \"timerange-selector-absolute\" },\n React.createElement(\"div\", { className: styles.column },\n React.createElement(\"div\", { className: styles.label },\n fromDateLabel,\n \":\"),\n React.createElement(ElxDateTimeSelector, Object.assign({}, dateTimeSelectorSettings, { value: dateFrom, maxDate: isSingleDatePicker ? undefined : dateTo, utcOffset: utcOffset, ariaLabel: fromDateAriaLabel, localTimezoneUtcOffset: localTimezoneUtcOffset, disabled: disabled, onChange: dateFromHandler, hideTimeSelector: isSingleDatePicker }))),\n !isSingleDatePicker && (React.createElement(\"div\", { className: styles.column },\n React.createElement(\"div\", { className: styles.label },\n strings.absoluteTimeRangeSelector.to,\n \":\"),\n React.createElement(ElxDateTimeSelector, Object.assign({}, dateTimeSelectorSettings, { value: dateTo, minDate: isSingleDatePicker ? undefined : dateFrom, utcOffset: utcOffset, ariaLabel: strings.absoluteTimeRangeSelector.enterToDateText, localTimezoneUtcOffset: localTimezoneUtcOffset, disabled: disabled, onChange: dateToHandler }))))));\n};\nexport default ElxAbsoluteTimeRangeSelector;\n","import { mergeStyleSets } from '@fluentui/react';\nimport { px2rem } from '@elixir/styling';\nexport const getClassNames = () => mergeStyleSets({\n root: {\n display: 'flex',\n flexDirection: 'row',\n gap: px2rem(12),\n },\n column: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n label: {\n width: '100%',\n paddingLeft: '44px',\n fontWeight: 'bold',\n },\n});\n","import dayjs from 'dayjs';\nimport { uiToRealDate } from '../../DateTimeSelector/utils/uiToRealDate';\n/**\n * Returns the start of current *local* day\n * (whichever the *target* timezone we have set, we want to be selecting 00:00 as start time in UI)\n * Needs to be converted to a real date since we're converting to UI again\n *\n * @param targetTimezoneUtcOffset UTC offset of target timezone\n * @param localTimezoneUtcOffset UTC offset of browser timezone\n */\nexport const getDefaultDateFrom = (date, targetTimezoneUtcOffset, localTimezoneUtcOffset) => {\n const localDateStart = dayjs(date).startOf('day').toDate();\n return uiToRealDate(localDateStart, targetTimezoneUtcOffset, localTimezoneUtcOffset);\n};\n","import dayjs from 'dayjs';\nimport { uiToRealDate } from '../../DateTimeSelector/utils/uiToRealDate';\n/**\n * Returns the end of current *local* day\n * (whichever the *target* timezone we have set, we want to be selecting 23:59 as end time in UI)\n * Needs to be converted to a real date since we're converting to UI again\n *\n * @param targetTimezoneUtcOffset UTC offset of target timezone\n * @param localTimezoneUtcOffset UTC offset of browser timezone\n */\nexport const getDefaultDateTo = (date, targetTimezoneUtcOffset, localTimezoneUtcOffset) => {\n const localDateStart = dayjs(date).endOf('day').toDate();\n return uiToRealDate(localDateStart, targetTimezoneUtcOffset, localTimezoneUtcOffset);\n};\n","import dayjs from 'dayjs';\nconst Minute = 60 * 1000; // in milliseconds\nconst Hour = 60 * Minute;\nconst Day = 24 * Hour;\n/**\n * List of options and at the same time a lookup list for TimeRangePillValuesRenderer\n */\nexport const DefaultOptions = [\n {\n value: String(Minute),\n label: 'Last 1 minute',\n },\n {\n value: String(5 * Minute),\n label: 'Last 5 minutes',\n },\n {\n value: String(15 * Minute),\n label: 'Last 15 minutes',\n },\n {\n value: String(30 * Minute),\n label: 'Last 30 minutes',\n },\n {\n value: String(Hour),\n label: 'Last hour',\n },\n {\n value: String(4 * Hour),\n label: 'Last 4 hours',\n },\n {\n value: String(12 * Hour),\n label: 'Last 12 hours',\n },\n {\n value: String(24 * Hour),\n label: 'Last 24 hours',\n },\n {\n value: String(48 * Hour),\n label: 'Last 48 hours',\n },\n {\n value: String(3 * Day),\n label: 'Last 3 days',\n },\n {\n value: String(7 * Day),\n label: 'Last 7 days',\n },\n {\n value: String(30 * Day),\n label: 'Last 30 days',\n },\n];\n/**\n * Default converter\n *\n * With this converter, the developer is expected to provide selection values that are *numbers* and coorespond to milliseconds in the past\n *\n * Note: I decided to provide this as a default because Elixir is already dependent on *dayjs*, and because it's a tiny library\n * However, it's worth to note that we don't essentially need to depend on dayjs at all\n * The default converter could simply return today's date for both the *from* and *to* (without any additional calculation)\n * We could even make the dates optional and return undefined(s)\n */\nexport const DefaultOptionToTimeRangeConverter = (selection) => {\n /**\n * Important: This check should throw at development time and indicate that the argument is not a number\n * We had the app mysteriously freezing if strings like \"1h\" are being passed (because the invalid \"from\" date was being returned, breaking the *absolute* time range selector when switched to it)\n * */\n const milliseconds = Number(selection);\n if (isNaN(milliseconds)) {\n throw new Error('Current selection cannot be converted to number. Please define custom optionToTimeRangeConverter.');\n }\n const now = dayjs();\n const from = now.subtract(milliseconds, 'ms').toDate();\n const to = now.toDate();\n return {\n from,\n to,\n };\n};\nexport const DefaultRelativeTimeRangeSelectorSettings = {\n options: DefaultOptions,\n optionToTimeRangeConverter: DefaultOptionToTimeRangeConverter,\n};\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport React, { useCallback, useMemo } from 'react';\nimport { ChoiceGroup, css, Icon, Label } from '@fluentui/react';\nimport { DefaultRelativeTimeRangeSelectorSettings } from './constants';\nimport { getClassNames } from './RelativeTimeRangeSelector.styles';\nimport { FnEmpty } from '../../common';\nconst dropdownStyles = {\n root: { padding: 16 },\n};\nconst styles = getClassNames();\n/// eslint-disable-next-line max-lines-per-function\nconst ElxRelativeTimeRangeSelector = ({ name, options = DefaultRelativeTimeRangeSelectorSettings.options || [], optionToTimeRangeConverter = DefaultRelativeTimeRangeSelectorSettings.optionToTimeRangeConverter, selected, disabled = false, onChange = FnEmpty, className, }) => {\n const choiceGroupOptions = useMemo(() => options?.map(({ value, label }) => ({ key: String(value), text: label || '' })) || [], [options]);\n const stringToValueMap = useMemo(() => options.reduce((accum, option) => {\n accum.set(String(option.value), option.value);\n return accum;\n }, new Map()), [options]);\n /**\n * Triggered by selection change\n * Note: apart from the two dates, we're also sending the ID to outer world\n * The reason for this is possible state management of the selection from the outside\n * Normally the *from* and *to* dates are being used to query the API etc., while the *selection* could be persisted in the URL etc.\n */\n const onSelectionChange = useCallback((_ev, option) => {\n const selection = stringToValueMap.get(option.key);\n const argument = {\n selection,\n ...optionToTimeRangeConverter(selection),\n };\n onChange(argument);\n }, [stringToValueMap, optionToTimeRangeConverter, onChange]);\n if (choiceGroupOptions.length === 0) {\n return (React.createElement(Label, { className: styles.emptyLabel },\n React.createElement(Icon, { iconName: \"Info\" }),\n \"\\u00A0No relative options available.\"));\n }\n return (React.createElement(\"div\", null,\n React.createElement(ChoiceGroup, { name: name, defaultSelectedKey: String(selected), options: choiceGroupOptions, onChange: onSelectionChange, styles: dropdownStyles, disabled: disabled, className: css(className, styles.root), \"data-testid\": \"timerange-selector-relative\" })));\n};\nexport default ElxRelativeTimeRangeSelector;\n","import { mergeStyleSets } from '@fluentui/react';\nexport const getClassNames = () => mergeStyleSets({\n root: {\n minWidth: '250px',\n // TODO if max-height is 280px, the ChoiceGroup is buggy (see TimeRange dropdown).\n // Clicking the bottom items scrolls to the top, and items are not selected, but what's weird - it doen't happen to all the dropdowns.\n // It looks it depends on item sizes, dialog width, height etc.\n maxHeight: '350px',\n overflowY: 'auto',\n selectors: {\n '.ms-ChoiceFieldGroup': {\n paddingTop: 0,\n paddingBottom: 0,\n marginBottom: '2px',\n },\n },\n },\n emptyLabel: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 1px',\n },\n});\n","import { DefaultRelativeTimeRangeSelectorSettings } from '../RelativeTimeRangeSelector/constants';\nimport { DefaultAbsoluteTimeRangeSelectorSettings } from '../AbsoluteTimeRangeSelector/constants';\nexport const DefaultTimeRangeSelectorSettings = {\n relativeSettings: DefaultRelativeTimeRangeSelectorSettings,\n absoluteSettings: DefaultAbsoluteTimeRangeSelectorSettings,\n showRelative: true,\n showAbsolute: true,\n};\n","import React, { useCallback, useMemo } from 'react';\nimport { Pivot, PivotItem } from '@fluentui/react';\nimport { useLinkedState } from '../../common/hooks';\nimport { ElxAbsoluteTimeRangeSelector } from '../AbsoluteTimeRangeSelector';\nimport ElxRelativeTimeRangeSelector from '../RelativeTimeRangeSelector/ElxRelativeTimeRangeSelector';\nimport { getClassNames } from './TimeRangeSelector.styles';\nimport { DefaultTimeRangeSelectorSettings } from './constants';\nimport { FnEmpty } from '../../common';\nimport { useLocalization } from '../../Localization/useLocalization';\nconst styles = getClassNames();\n// eslint-disable-next-line max-lines-per-function\nconst ElxTimeRangeSelector = ({ mode: propMode = 'absolute', relativeSettings, absoluteSettings, from: propFrom, to: propTo, selected: propRelativeSelection, showRelative = true, showAbsolute = true, disabled, className, utcOffset = 0, localTimezoneUtcOffset, onChange = FnEmpty, }) => {\n /**\n * Merging with defaults\n * */\n relativeSettings = { ...DefaultTimeRangeSelectorSettings.relativeSettings, ...relativeSettings };\n absoluteSettings = { ...DefaultTimeRangeSelectorSettings.absoluteSettings, ...absoluteSettings };\n const strings = useLocalization();\n // these pieces of state are linked to props\n const [mode, setMode] = useLinkedState(propMode);\n const [selected, setSelected] = useLinkedState(propRelativeSelection);\n const [from, setFrom] = useLinkedState(propFrom);\n const [to, setTo] = useLinkedState(propTo);\n const handleTabChange = useCallback((item) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const newMode = item.props.itemKey;\n setMode(newMode);\n }, [setMode]);\n const headerButtonProps = useMemo(() => disabled\n ? {\n disabled,\n style: {\n color: 'grey',\n },\n }\n : {}, [disabled]);\n const onRelativeTimeChange = useCallback((value) => {\n const { selection, from, to } = value;\n setSelected(selection);\n setFrom(from);\n setTo(to);\n onChange({\n from,\n to,\n mode: 'relative',\n selected: selection,\n });\n }, [setFrom, setSelected, setTo, onChange]);\n const onAbsoluteTimeChange = useCallback(({ from, to }) => {\n setFrom(from);\n setTo(to);\n setSelected(undefined);\n onChange({\n from,\n to,\n mode: 'absolute',\n selected: selected,\n });\n }, [setFrom, setTo, setSelected, onChange, selected]);\n const relativeSelector = (React.createElement(ElxRelativeTimeRangeSelector, Object.assign({}, relativeSettings, { selected: selected, onChange: onRelativeTimeChange, disabled: disabled })));\n const absoluteSelector = (React.createElement(ElxAbsoluteTimeRangeSelector, Object.assign({}, absoluteSettings, { from: from, to: to, utcOffset: utcOffset, localTimezoneUtcOffset: localTimezoneUtcOffset, onChange: onAbsoluteTimeChange, disabled: disabled })));\n const showTabs = showRelative && showAbsolute;\n if (showTabs) {\n return (React.createElement(Pivot, { \"aria-label\": strings.timeRangeSelector.ariaLabel, defaultSelectedKey: \"relative\", selectedKey: mode, onLinkClick: handleTabChange, className: className, \"data-testid\": \"timerange-selector\" },\n React.createElement(PivotItem, { headerText: strings.timeRangeSelector.relativeTime, itemKey: \"relative\", headerButtonProps: headerButtonProps, className: styles.pivotItem }, relativeSelector),\n React.createElement(PivotItem, { headerText: strings.timeRangeSelector.absoluteTime, itemKey: \"absolute\", headerButtonProps: headerButtonProps, className: styles.pivotItem }, absoluteSelector)));\n }\n if (showRelative) {\n return relativeSelector;\n }\n if (showAbsolute) {\n return absoluteSelector;\n }\n throw new Error('Both the relative and absolute controls are hidden');\n};\nexport default ElxTimeRangeSelector;\n","import { mergeStyleSets } from '@fluentui/react';\nimport { px2rem } from '@elixir/styling';\nexport const getClassNames = () => mergeStyleSets({\n pivotItem: {\n marginTop: px2rem(24),\n },\n});\n","import React, { useCallback, useMemo } from 'react';\nimport ElxTimeRangeSelector from '../../TimeRangeSelector/ElxTimeRangeSelector';\nimport { getClassNames } from './TimeRangeEditor.styles';\nimport { filterToTimeRange } from './filterToTimeRange';\nimport { timeRangeToFilter } from './timeRangeToFilter';\nconst classNames = getClassNames();\n/**\n * Custom filter editor, wrapping the ElxTimeRangeSelector\n */\nconst TimeRangeEditor = ({ items, selected, onChange, settings, styles /*, onValidate*/ }) => {\n // whenever the inputs change, we're recalculating selector props\n const props = useMemo(() => filterToTimeRange(items, selected), [items, selected]);\n // relative options\n const options = props.options;\n // process settings\n const timeRangeEditorSettings = settings;\n const utcOffset = timeRangeEditorSettings?.utcOffset;\n const optionToTimeRangeConverter = timeRangeEditorSettings?.optionToTimeRangeConverter;\n const dateTimeSelectorSettings = timeRangeEditorSettings?.dateTimeSelectorSettings;\n /**\n * Build relativeSettings of ElxTimeRangeSelector\n * Note:\n * - *options* are being passed in as *items*\n * - *optionToTimeRangeConverter* is being passed in via *settings* object\n */\n const relativeSettings = useMemo(() => ({\n options,\n optionToTimeRangeConverter,\n }), [options, optionToTimeRangeConverter]);\n /**\n * Build absoluteSettings of ElxTimeRangeSelector\n */\n const absoluteSettings = useMemo(() => ({\n dateTimeSelectorSettings,\n }), [dateTimeSelectorSettings]);\n const onTimeRangeChange = useCallback((value) => onChange(timeRangeToFilter(value)), [onChange]);\n return (React.createElement(\"div\", { className: classNames.root, style: styles, \"data-testid\": \"filter-editor-timerange\" },\n React.createElement(ElxTimeRangeSelector, Object.assign({}, settings, { mode: props.mode, selected: props.selection, from: props.from, to: props.to, utcOffset: utcOffset, relativeSettings: relativeSettings, absoluteSettings: absoluteSettings, onChange: onTimeRangeChange }))));\n};\nexport default TimeRangeEditor;\n","import { mergeStyleSets } from '@fluentui/react';\nimport { px2rem } from '@elixir/styling';\nexport const getClassNames = () => mergeStyleSets({\n root: {\n marginBottom: px2rem(24),\n },\n});\n","/**\n * Converts filter values to TimeRangeSelector input\n * Note: we differentiate between relative and absolute mode by number of values in the array:\n *\n * - 1 value: relative mode (stringified option value)\n * - 2 values: absolute mode (two ISO stringified dates)\n */\nexport const filterToTimeRange = (items, selected = []) => {\n const mode = selected.length === 2 ? 'absolute' : 'relative';\n const options = items.map((item) => ({\n value: item.value,\n label: item.label || '',\n }));\n // although RelativeOptionValue accepts string, number and boolean, with filters we're using only strings\n let selection = undefined;\n let from = undefined;\n let to = undefined;\n if (mode === 'absolute') {\n from = new Date(selected[0]);\n to = new Date(selected[1]);\n }\n else {\n selection = selected[0];\n }\n return {\n mode,\n options,\n from,\n to,\n selection,\n };\n};\n","/**\n * Converts the output of TimeRangeSelector to filter values\n * Note: we differentiate between relative and absolute mode by number of values in the array:\n *\n * - 1 value: relative mode (stringified option value)\n * - 2 values: absolute mode (two ISO stringified dates)\n */\nexport const timeRangeToFilter = (value) => {\n const { mode, from, to, selected } = value;\n if (mode === 'absolute') {\n return [from.toISOString(), to.toISOString()];\n }\n return [String(selected)];\n};\n","import React from 'react';\nimport dayjs from 'dayjs';\nimport { FilterOptionMode, FilterOptionPillMode } from '../../Filter/FilterProps';\nimport TimeRangeEditor from './editor/TimeRangeEditor';\nconst Minute = 60 * 1000; // in milliseconds\nconst Hour = 60 * Minute;\nconst Day = 24 * Hour;\nconst FilterPillDateTimeFormat = 'MM/DD/YY HH:mm';\n/**\n * List of options and at the same time a lookup list for TimeRangePillValuesRenderer\n */\nconst DefaultRelativeOptions = [\n {\n value: String(Minute),\n label: 'Last 1 minute',\n },\n {\n value: String(5 * Minute),\n label: 'Last 5 minutes',\n },\n {\n value: String(15 * Minute),\n label: 'Last 15 minutes',\n },\n {\n value: String(30 * Minute),\n label: 'Last 30 minutes',\n },\n {\n value: String(Hour),\n label: 'Last hour',\n },\n {\n value: String(4 * Hour),\n label: 'Last 4 hours',\n },\n {\n value: String(12 * Hour),\n label: 'Last 12 hours',\n },\n {\n value: String(24 * Hour),\n label: 'Last 24 hours',\n },\n {\n value: String(48 * Hour),\n label: 'Last 48 hours',\n },\n {\n value: String(3 * Day),\n label: 'Last 3 days',\n },\n {\n value: String(7 * Day),\n label: 'Last 7 days',\n },\n {\n value: String(30 * Day),\n label: 'Last 30 days',\n },\n];\n/**\n * Pill renderer that differentiates between relative and absolute mode and prints out the corresponding label\n */\nconst DefaultTimeRangePillRenderer = (props) => {\n const { valueToLabelMap, values = [] } = props;\n const isAbsoluteMode = values?.length === 2;\n const firstValue = values?.[0];\n const secondValue = values?.[1];\n if (isAbsoluteMode) {\n const from = dayjs(firstValue).format(FilterPillDateTimeFormat);\n const to = dayjs(secondValue).format(FilterPillDateTimeFormat);\n return (React.createElement(React.Fragment, null,\n from,\n \" - \",\n to));\n }\n // since we're using a static pill mode, the label is in the map\n return React.createElement(React.Fragment, null, valueToLabelMap?.get(firstValue) || '---');\n};\n/**\n * Default time range filter option\n *\n * Search is disabled and filter pill is non-removable\n */\nexport const DefaultTimeRangeOption = {\n mode: FilterOptionMode.Custom,\n pillMode: FilterOptionPillMode.Static,\n field: 'TimeRange',\n label: 'Time',\n search: false,\n removable: true,\n customEditor: TimeRangeEditor,\n pillRenderer: DefaultTimeRangePillRenderer,\n values: DefaultRelativeOptions,\n};\n/**\n * Builds a time range filter option\n * This option uses a custom filter (TimeRangeFilterEditor)s\n * Search is disabled and filter pill is non-removable\n */\nexport const buildTimeRangeFilterOption = (overrides) => ({ ...DefaultTimeRangeOption, ...overrides });\n","import React from 'react';\nimport { Callout, classNamesFunction, css, DirectionalHint, FocusTrapZone, Label, useTheme, Calendar } from '@fluentui/react';\nimport dayjs from 'dayjs';\nimport { useId } from '../common/hooks';\nimport { ElxPrimaryButton, ElxSecondaryButton } from '../Button/Variations';\nimport { ElxInputBase, getInputLabelId } from '../InputBase';\nimport { ElxTextField } from '../TextField';\nimport { CalendarStrings, DateTimePickerStrings } from './ElxDateTimePicker.constants';\nimport { calendarStyles } from './ElxDateTimePicker.styles';\nimport { ElxDateTimePickerDisplayMode, } from './ElxDateTimePicker.types';\nimport { DateTimeUtils } from './ElxDateTimePicker.utilities';\nimport { ElxTimeSelector } from '../DateTimeControls';\nconst getClassNames = classNamesFunction();\n/**\n * ElxDateTimePicker component\n * @param props\n */\n// eslint-disable-next-line max-lines-per-function\nexport const ElxDateTimePickerBase = (props) => {\n const { disabled, readOnly, timeZones, defaultValue, value, onChange, displayMode, className, onSelectDateTime } = props;\n const theme = useTheme();\n const classNames = getClassNames(props.styles, { theme: theme });\n const generatedId = useId(classNames.root);\n const id = props.id || generatedId;\n const inputWrapperRef = React.useRef(null);\n const [internalDateTimeText, setinternalDateTimeText] = React.useState(defaultValue);\n const [dateTimeText, setDateTimeText] = 'value' in props ? [value, onChange] : [internalDateTimeText, setinternalDateTimeText];\n const [showCallout, setShowCallout] = React.useState(false);\n const [textFieldDisabled, setTextFieldDisabled] = React.useState(false);\n const [textFieldIsValid, setTextFieldIsValid] = React.useState(true);\n const [dateTimeValue, setDateTimeValue] = React.useState();\n const [dateTimeLabel, setDateTimeLabel] = React.useState();\n const [dateValue, setDateValue] = React.useState(new Date());\n const [hour, setHour] = React.useState(0);\n const [minute, setMinute] = React.useState(0);\n const [second, setSecond] = React.useState(0);\n const [timeZoneOffsetMinutes, setTimeZoneOffsetMinutes] = React.useState(0);\n const previousDateTimeText = React.useRef(defaultValue);\n React.useEffect(() => {\n const d = DateTimeUtils.fromString(dateTimeText);\n if (d.isValid()) {\n if (displayMode === ElxDateTimePickerDisplayMode.DateOnly) {\n setDateValue(DateTimeUtils.toDate(d));\n }\n else {\n setDateTimeValue(d);\n setDateValue(DateTimeUtils.toUtcDate(d));\n setHour(d.hour());\n setMinute(d.minute());\n setSecond(d.second());\n setTimeZoneOffsetMinutes(0);\n }\n }\n setTextFieldIsValid(d.isValid());\n if (onSelectDateTime && dateTimeText !== previousDateTimeText.current) {\n onSelectDateTime(dateTimeText);\n }\n previousDateTimeText.current = dateTimeText || '';\n }, [showCallout, dateTimeText, onSelectDateTime, previousDateTimeText]);\n React.useEffect(() => {\n if (displayMode !== ElxDateTimePickerDisplayMode.DateOnly) {\n setDateTimeLabel(DateTimeUtils.toDateTimeString(dateTimeValue));\n }\n }, [dateTimeValue, displayMode, setDateTimeLabel]);\n React.useEffect(() => {\n dateValue\n ? setDateTimeValue(DateTimeUtils.fromDateTime(dateValue, hour, minute, second, timeZoneOffsetMinutes))\n : setDateTimeValue(dayjs());\n }, [dateValue, hour, minute, second, timeZoneOffsetMinutes]);\n const onCalendarIconTrigger = () => {\n if (disabled || readOnly || textFieldDisabled || !textFieldIsValid) {\n return;\n }\n setTextFieldDisabled(!showCallout);\n setShowCallout(!showCallout);\n };\n const fieldDisabled = disabled || textFieldDisabled;\n const renderTextField = () => {\n return (React.createElement(\"div\", { ref: inputWrapperRef, className: classNames.textFieldContainer },\n React.createElement(ElxTextField, { styles: { root: { width: '100%' } }, disabled: fieldDisabled, readOnly: readOnly, value: dateTimeText, placeholder: displayMode === ElxDateTimePickerDisplayMode.DateOnly ? DateTimePickerStrings.selectDate : DateTimePickerStrings.selectDateTime, ariaLabel: props['aria-label'], \"aria-labelledby\": props['aria-labelledby'] ?? getInputLabelId(id), iconProps: {\n role: 'button',\n iconName: 'Calendar',\n className: classNames.calendarIcon,\n title: DateTimePickerStrings.tooltop,\n tabIndex: fieldDisabled ? -1 : 0,\n 'aria-hidden': false,\n 'aria-haspopup': true,\n 'aria-expanded': showCallout,\n 'aria-disabled': fieldDisabled,\n styles: {\n root: disabled || textFieldDisabled\n ? {\n color: theme.semanticColors.disabledBodyText,\n ':hover': {\n cursor: 'default',\n },\n }\n : undefined,\n },\n onClick: onCalendarIconTrigger,\n onKeyDown: (ev) => {\n if (ev.key === 'Enter') {\n onCalendarIconTrigger();\n }\n },\n }, onGetErrorMessage: (value) => (DateTimeUtils.fromString(value).isValid() ? '' : DateTimePickerStrings.errorMessage), onChange: (event, newValue) => {\n if (setDateTimeText) {\n setDateTimeText(newValue || '');\n }\n setTextFieldIsValid(DateTimeUtils.fromString(newValue).isValid());\n }, onKeyDown: (ev) => {\n if (ev.key === 'Enter') {\n onCalendarIconTrigger();\n }\n } })));\n };\n const setTime = (value) => {\n setHour(value.hours);\n setMinute(value.minutes);\n setSecond(value.seconds);\n setTimeZoneOffsetMinutes(value.utcOffset);\n };\n const renderTimePicker = () => {\n const settings = props.timeSelectorSettings ?? { showHours: true, showMinutes: true, showSeconds: true, showTimezone: true };\n return (React.createElement(\"div\", { className: classNames.columnFlexContainer },\n React.createElement(\"div\", { className: classNames.flexPaddingContainer },\n React.createElement(ElxTimeSelector, { timeZones: timeZones, onChange: setTime, showHours: settings.showHours, showMinutes: settings.showMinutes, showSeconds: settings.showSeconds, showTimezoneSelector: settings.showTimezone })),\n React.createElement(\"div\", { className: classNames.blockContainer },\n React.createElement(Label, null,\n DateTimePickerStrings.selectedTime,\n \": \",\n React.createElement(\"span\", { style: { whiteSpace: 'nowrap' } }, dateTimeLabel))),\n React.createElement(\"div\", { className: classNames.footerContainer },\n React.createElement(ElxSecondaryButton, { className: classNames.rightSpacing, text: DateTimePickerStrings.cancel, ariaLabel: DateTimePickerStrings.cancel, onClick: () => {\n setDateTimeValue(DateTimeUtils.fromString(dateTimeText));\n onDismissCallout();\n } }),\n React.createElement(ElxPrimaryButton, { text: DateTimePickerStrings.apply, ariaLabel: DateTimePickerStrings.apply, onClick: () => {\n if (setDateTimeText) {\n setDateTimeText(dateTimeLabel || '');\n }\n onDismissCallout();\n } }))));\n };\n const renderSideBySide = () => {\n return (React.createElement(\"div\", { className: classNames.horizontalContainer },\n React.createElement(Calendar, { strings: CalendarStrings, isMonthPickerVisible: false, value: dateValue, onSelectDate: (date) => setDateValue(date), styles: calendarStyles }),\n React.createElement(\"div\", { className: classNames.verticalDivider }),\n renderTimePicker()));\n };\n const renderStacked = () => {\n return (React.createElement(\"div\", { className: classNames.verticalContainer },\n React.createElement(Calendar, { strings: CalendarStrings, isMonthPickerVisible: false, value: dateValue, onSelectDate: (date) => setDateValue(date), styles: calendarStyles }),\n React.createElement(\"div\", { className: classNames.horizontalDivider }),\n renderTimePicker()));\n };\n const renderDateOnly = () => {\n return (React.createElement(\"div\", { className: classNames.dateContainer },\n React.createElement(Calendar, { strings: CalendarStrings, isMonthPickerVisible: false, value: dateValue, onSelectDate: (date) => {\n const label = DateTimeUtils.toDateString(date);\n setDateValue(date);\n if (setDateTimeText) {\n setDateTimeText(label);\n }\n onDismissCallout();\n }, styles: calendarStyles })));\n };\n const renderCallout = () => {\n return (React.createElement(Callout, { className: classNames.calloutRoot, target: inputWrapperRef.current, gapSpace: 0, isBeakVisible: false, setInitialFocus: true, directionalHint: DirectionalHint.bottomLeftEdge, onDismiss: () => onDismissCallout() },\n React.createElement(FocusTrapZone, null,\n !displayMode && renderSideBySide(),\n displayMode === ElxDateTimePickerDisplayMode.Stacked && renderStacked(),\n displayMode === ElxDateTimePickerDisplayMode.DateOnly && renderDateOnly())));\n };\n const onDismissCallout = () => {\n setTextFieldDisabled(false);\n setShowCallout(false);\n };\n return (React.createElement(\"div\", { className: css(classNames.root, className) },\n React.createElement(ElxInputBase, Object.assign({ id: id, readOnlyText: dateTimeText }, props, { styles: props.wrapperStyles }),\n renderTextField(),\n showCallout && renderCallout())));\n};\n","import { styled } from '@fluentui/react';\nimport { ElxDateTimePickerBase } from './ElxDateTimePicker.base';\nimport { getDateTimePickerStyles } from './ElxDateTimePicker.styles';\nexport const ElxDateTimePicker = styled(ElxDateTimePickerBase, getDateTimePickerStyles, undefined, {\n scope: 'ElxDateTimePicker',\n});\n","export const FormConstants = {\n textBoxMaxLength: 255,\n multiLineTextBoxMaxRows: 8,\n};\nexport const AplControlTypes = {\n TextBlock: 'textblock',\n TextBox: 'textbox',\n NumericTextBox: 'numerictextbox',\n DropDown: 'dropdown',\n MultiSelectDropDown: 'multiselectdropdown',\n DateTimePicker: 'datetimepicker',\n MultiLineTextBox: 'multilinetextbox',\n InfoBlock: 'infoblock',\n RadioButtonGroup: 'radiobuttongroup',\n};\n","export const textStyles = { root: { maxWidth: 500 } };\nexport const dropdownStyles = {\n dropdown: { maxWidth: 500 },\n};\n","export const controlVisible = (visibility) => {\n if (visibility == null || visibility == undefined || visibility.toLowerCase() === 'true') {\n return true;\n }\n return visibility !== 'false';\n};\nexport const updateControlVisibility = (controlMap, formElement) => {\n const visibility = (formElement === null || formElement === void 0 ? void 0 : formElement.visibility) ? formElement.visibility : '';\n if (!visibility) {\n return;\n }\n const visibilityProperties = setOutputArrays(visibility);\n if (!visibilityProperties.parent || visibilityProperties.parent.length == 0) {\n return;\n }\n const controlVisible = recalculateVisible(visibilityProperties, controlMap);\n return controlVisible;\n};\nexport const getVisibilityDependentParents = (visibility) => {\n if (visibility) {\n const visibilityProperties = setOutputArrays(visibility);\n if ((visibilityProperties === null || visibilityProperties === void 0 ? void 0 : visibilityProperties.parent) && visibilityProperties.parent.length > 0) {\n return visibilityProperties.parent;\n }\n }\n return [];\n};\n/**\n * Determine the visibility of a control when the parent changes value\n * @param controls array, control, container\n */\nexport function recalculateVisible(controlOutputArrays, controlMap) {\n const parentValues = [];\n for (const parentId of controlOutputArrays.parent) {\n const parentCon = controlMap.get(parentId);\n if (!parentCon || parentCon.currentValue === undefined) {\n return false;\n }\n const value = parentCon.currentValue;\n if (value) {\n // multiselect dropdown values\n if (Array.isArray(value)) {\n let items = '';\n value.forEach((item) => {\n items += item.selectedValue + ';';\n });\n parentValues.push(items);\n }\n else if (typeof value == 'string') {\n parentValues.push(value);\n }\n else if (typeof value == 'number') {\n parentValues.push(value.toString());\n }\n else if (!(value instanceof Date)) {\n parentValues.push(value.selectedValue);\n }\n }\n else {\n return false;\n }\n }\n return getVisibility(parentValues, controlOutputArrays);\n}\n/**\n * Calculate the visibility of control using the outputArrays\n * @param parentValues current values of the parent controls\n * @param outputArrays values derived from visibility property of control\n */\nfunction getVisibility(parentValues, outputArrays) {\n let isVisible = true;\n const { values, equality, operators } = outputArrays;\n parentValues.forEach((parentVal, index) => {\n let parentSubValues = [];\n if (parentVal.indexOf(';') > -1) {\n parentSubValues = parentVal.split(';');\n }\n if (equality[index] === '==') {\n if (index - 1 >= 0 && operators.length >= index) {\n if (operators[index - 1] === '&&') {\n if (parentSubValues.length > 0) {\n const valueExists = parentSubValues.some((subValue) => {\n return subValue == values[index];\n });\n isVisible = isVisible ? isVisible && valueExists : valueExists;\n }\n else {\n isVisible = isVisible ? isVisible && parentVal == values[index] : parentVal == values[index];\n }\n }\n else if (operators[index - 1] === '||') {\n if (parentSubValues.length > 0) {\n const valueExists = parentSubValues.some((subValue) => {\n return subValue == values[index];\n });\n isVisible = isVisible ? isVisible || valueExists : valueExists;\n }\n else {\n isVisible = isVisible ? isVisible || parentVal == values[index] : parentVal == values[index];\n }\n }\n }\n else {\n if (parentSubValues.length > 0) {\n const valueExists = parentSubValues.some((subValue) => {\n return subValue == values[index];\n });\n isVisible = valueExists;\n }\n else {\n isVisible = parentVal == values[index];\n }\n }\n }\n else {\n // equality is !=\n if (index - 1 >= 0 && operators.length >= index) {\n if (operators[index - 1] === '&&') {\n if (parentSubValues.length > 0) {\n const valueDoesNotExist = parentSubValues.every((subValue) => {\n return subValue != values[index];\n });\n isVisible = isVisible ? isVisible && valueDoesNotExist : valueDoesNotExist;\n }\n else {\n isVisible = isVisible ? isVisible && parentVal != values[index] : parentVal != values[index];\n }\n }\n else if (operators[index - 1] === '||') {\n if (parentSubValues.length > 0) {\n const valueDoesNotExist = parentSubValues.every((subValue) => {\n return subValue != values[index];\n });\n isVisible = isVisible ? isVisible || valueDoesNotExist : valueDoesNotExist;\n }\n else {\n isVisible = isVisible ? isVisible || parentVal != values[index] : parentVal != values[index];\n }\n }\n }\n else {\n if (parentSubValues.length > 0) {\n const valueDoesNotExist = parentSubValues.every((subValue) => {\n return subValue != values[index];\n });\n isVisible = valueDoesNotExist;\n }\n else {\n isVisible = parentVal != values[index];\n }\n }\n }\n });\n return isVisible;\n}\n/**\n * Setup the operators(&&, ||), parent(ids of parent), values(expected value of parent control), equality(==, !=) arrays derived from visibility property of a control\n * @param visbility expression of control\n */\nfunction setOutputArrays(visibility) {\n const outputArrays = {\n parent: [],\n values: [],\n operators: [],\n equality: [],\n };\n if (visibility) {\n // store the &&, || in the order they appear\n (visibility.match(/\\&\\&|\\|\\|/g) || []).forEach((op) => {\n outputArrays.operators.push(op);\n });\n const expression = visibility.split(/\\&\\&|\\|\\|/);\n for (const exp of expression) {\n if (exp.indexOf('==') > -1) {\n const operand = exp.split(/\\=\\=/);\n outputArrays.parent.push(operand[0].trim()); // ids\n outputArrays.values.push(operand[1].trim()); // values\n outputArrays.equality.push('==');\n }\n else if (exp.indexOf('!=') > -1) {\n const operand = exp.split(/\\!\\=/);\n outputArrays.parent.push(operand[0].trim()); // ids\n outputArrays.values.push(operand[1].trim()); // values\n outputArrays.equality.push('!=');\n }\n }\n }\n return outputArrays;\n}\n","import React from 'react';\nimport { DirectionalHint } from '@fluentui/react';\nimport { IconButton } from '@fluentui/react/lib/Button';\nimport { Label } from '@fluentui/react/lib/Label';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { TooltipHost } from '@fluentui/react/lib/Tooltip';\nimport { AplMarkdown } from '../../Markdown';\nexport const InfoBalloonLabel = (label, infoBalloonText, isRequired) => {\n isRequired = isRequired !== null && isRequired !== void 0 ? isRequired : false;\n if (!infoBalloonText) {\n return React.createElement(Label, { required: isRequired }, label);\n }\n const onRenderToolTipContent = () => {\n return React.createElement(AplMarkdown, { markdown: infoBalloonText, allowDangerousHtml: true });\n };\n const tooltipProps = {\n onRenderContent: onRenderToolTipContent,\n calloutProps: {\n beakWidth: 10,\n },\n };\n return (React.createElement(Stack, { horizontal: true, verticalAlign: \"end\" },\n React.createElement(Label, { required: isRequired }, label),\n React.createElement(TooltipHost, { tooltipProps: tooltipProps, directionalHint: DirectionalHint.topLeftEdge, styles: { root: { display: 'inline-block' } } },\n React.createElement(IconButton, { iconProps: { iconName: 'Info' }, \"data-testid\": infoBalloonText, ariaLabel: infoBalloonText, styles: { root: { marginBottom: -3 } } }))));\n};\n","import SimpleReactValidator from 'simple-react-validator';\nconst simpleReactValidator = new SimpleReactValidator();\n/**\n * Strictly greater than custom (value: string | number) => IFormElementValidation\n * @param validationValue\n * @param required\n * @param message\n */\nexport function createGreaterThanValidation(required = false, message, validationValue = -Infinity) {\n const validationFunction = (value) => {\n let validations = `numeric`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value > validationValue,\n message: resultValidation && value > validationValue ? '' : message,\n };\n };\n return validationFunction;\n}\n/**\n * Strictly less than custom (value: string | number) => IFormElementValidation\n * @param maxValue\n * @param required\n * @param message\n */\nexport function createLessThanValidation(required = false, message, maxValue = Infinity) {\n const validationFunction = (value) => {\n let validations = `numeric`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value < maxValue,\n message: resultValidation && value < maxValue ? '' : message,\n };\n };\n return validationFunction;\n}\n/**\n * Email (value: string | number) => IFormElementValidation\n * @param required\n * @param message\n */\nexport function createEmailValidation(required = false, message) {\n const validationEmail = (value) => {\n let validations = `email`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationEmail;\n}\n/**\n * (value: string | number) => IFormElementValidation is a regular expression (value: string | number) => IFormElementValidation.\n * @param required\n * @param message\n */\nexport function regExMatchValidation(required = false, message, validationValue) {\n const validationRegEx = (value) => {\n let validations = `string|regex:${validationValue}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationRegEx;\n}\n/**\n * Validator that checks if the value does not match a regular expression.\n * @param required\n * @param message\n */\nexport function notRegExMatchValidation(required = false, message, regex) {\n const validationNoRegEx = (value) => {\n let validations = `string|not_regex:${regex}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationNoRegEx;\n}\n/**\n * Constructs a validator that checks that the value contains at least one case insensitive match of a search string.\n * @param required\n * @param message\n */\nexport function containsValidation(required = false, message, neededString) {\n const validationContains = (value) => {\n let validations = `string`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value.includes(neededString),\n message: resultValidation && value.includes(neededString) ? '' : message,\n };\n };\n return validationContains;\n}\n/**\n * Constructs a validator that checks that the value does not contain a case insensitive match of a search string.\n * @param required\n * @param message\n */\nexport function notContainsValidation(required = false, message, notContainsString) {\n const validationNotContains = (value) => {\n let validations = `string`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && !value.includes(notContainsString),\n message: resultValidation && !value.includes(notContainsString) ? '' : message,\n };\n };\n return validationNotContains;\n}\n/**\n * Constructs a validator that checks that the value contains at least one character from a character set.\n * @param required\n * @param message\n */\nexport function containsCharactersValidation(required = false, message, charsContained) {\n const validationContainsChars = (value) => {\n const reg = `[${charsContained}]`;\n let validations = `string|regex:${reg}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationContainsChars;\n}\n/**\n * Constructs a validator that checks that the value does not contain any characters from a character set.\n * @param required\n * @param message\n */\nexport function notContainsCharactersValidation(required = false, message, charsNotContained) {\n const validationNotContainsChars = (value) => {\n const reg = `[${charsNotContained}]`;\n let validations = `string|not_regex:${reg}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationNotContainsChars;\n}\n/**\n * Constructs a validator that checks that the value has at least one digit from 0 to 9.\n * @param required\n * @param message\n */\nexport function hasDigitValidation(required = false, message) {\n const validationHasDigit = (value) => {\n const reg = '[0-9]';\n let validations = `regex:${reg}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationHasDigit;\n}\n/**\n * Constructs a validator that checks that the value has at least one upper or lower case letter from A to Z or a to z.\n * (Not Unicode)\n * @param required\n * @param message\n */\nexport function hasLetterValidation(required = false, message) {\n const validationHasLetter = (value) => {\n const reg = '[A-Za-z]';\n let validations = `regex:${reg}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationHasLetter;\n}\n/**\n * Constructs a validator that checks that the value has at least one upper case letter from A to Z.\n * (Not Unicode)\n * @param required\n * @param message\n */\nexport function hasUpperCaseLetterValidation(required = false, message) {\n const validationHasUpperCaseLetter = (value) => {\n const reg = '[A-Z]';\n let validations = `regex:${reg}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationHasUpperCaseLetter;\n}\n/**\n * Constructs a validator that checks that the value has at least one lower case letter from a to z.\n * (Not Unicode)\n * @param required\n * @param message\n */\nexport function hasLowerCaseLetterValidation(required = false, message) {\n const validationHasLowerCaseLetter = (value) => {\n const reg = '[a-z]';\n let validations = `regex:${reg}`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationHasLowerCaseLetter;\n}\n/**\n * Constructs a validator that checks that the value contains at least one punctuation character from:\n * ! @ # $ % ^ & * ( ) _ + - = { } | [ ] \\ : \" ; ' < > , . ? / ~ `\n * @param required\n * @param message\n */\nexport function hasPunctuationValidation(required = false, message) {\n const validationHasPunctuation = (value) => {\n const reg = new RegExp('[!@#$%^&*()_+-={}|\\\\:\";\\'<>,.?/~`]');\n let validations = `string`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value.match(reg) !== null,\n message: resultValidation && value.match(reg) !== null ? '' : message,\n };\n };\n return validationHasPunctuation;\n}\n/**\n * Constructs a base comparison validator that compares the control value to a provided value.\n * @param required\n * @param message\n */\nexport function equalsValidation(required = false, message, compareValue) {\n const validationEqual = (value) => {\n let validations = `string`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value === compareValue,\n message: resultValidation && value === compareValue ? '' : message,\n };\n };\n return validationEqual;\n}\n/**\n * Constructs a validator that checks that the value length is at least min.\n * @param required\n * @param message\n */\nexport function minLengthValidation(required = false, message, minLength) {\n const validationMinLength = (value) => {\n const reg = new RegExp(`^\\\\s*-?[0-9]{${minLength},}\\\\s*$`);\n let validations = `numeric`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value.toString().match(reg) !== null,\n message: resultValidation && value.toString().match(reg) !== null ? '' : message,\n };\n };\n return validationMinLength;\n}\n/**\n * Constructs a validator that checks that the value length is less than or equal to the max.\n * @param required\n * @param message\n */\nexport function maxLengthValidation(required = false, message, maxLength) {\n const validationMaxLength = (value) => {\n const reg = new RegExp(`^\\\\s*-?[0-9]{0,${maxLength}}\\\\s*$`);\n let validations = `numeric`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value.toString().match(reg) !== null,\n message: resultValidation && value.toString().match(reg) !== null ? '' : message,\n };\n };\n return validationMaxLength;\n}\n/**\n * Constructs a validator that checks whether the value is greater than or equal to the specified minimum number.\n * @param required\n * @param message\n */\nexport function minValueValidation(required = false, message, minValue) {\n const validationMinValue = (value) => {\n let validations = `numeric`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value >= minValue,\n message: resultValidation && value >= minValue ? '' : message,\n };\n };\n return validationMinValue;\n}\n/**\n * Constructs a validator that checks whether the value is less than or equal to the specified maximum number.\n * @param required\n * @param message\n */\nexport function maxValueValidation(required = false, message, maxValue) {\n const validationMaxValue = (value) => {\n let validations = `numeric`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value <= maxValue,\n message: resultValidation && value <= maxValue ? '' : message,\n };\n };\n return validationMaxValue;\n}\n/**\n * Constructs a validator that uses toLowerCase() to compare two values.\n * @param required\n * @param message\n */\nexport function caseInsensitiveComparisonValidation(required = false, message, compareString) {\n const validationCaseInsensitiveComparison = (value) => {\n let validations = `string`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value.toLowerCase() === compareString.toLowerCase(),\n message: resultValidation && value.toLowerCase() === compareString.toLowerCase() ? '' : message,\n };\n };\n return validationCaseInsensitiveComparison;\n}\n/**\n * Constructs a validator that uses toLocaleLowerCase() to compare two values.\n * @param required\n * @param message\n */\nexport function localeAwareCaseInsensitiveComparisonValidation(required = false, message, compareString) {\n const validationLocaleAwareCaseInsensitiveComparison = (value) => {\n let validations = `string`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation && value.toLocaleLowerCase() === compareString.toLowerCase(),\n message: resultValidation && value.toLocaleLowerCase() === compareString.toLowerCase() ? '' : message,\n };\n };\n return validationLocaleAwareCaseInsensitiveComparison;\n}\n/**\n * Contructs a validator that validates an absolute http/https URI.\n * @param required\n * @param message\n */\nexport function uriValidation(required = false, message) {\n const validationUri = (value) => {\n let validations = `url`;\n validations = required ? validations + '|required' : validations;\n const resultValidation = simpleReactValidator.check(value, validations);\n return {\n valid: resultValidation,\n message: resultValidation ? '' : message,\n };\n };\n return validationUri;\n}\n","import * as validationHelper from './FormElementsValidationsHelper';\n/**\n * Helper function to set up validations for each control\n */\nexport function handleControlValidation(formElement, controlMap) {\n var _a, _b;\n if (formElement.validations && formElement.validations.length > 0) {\n for (const controlValidation of formElement.validations) {\n if (controlValidation === null || controlValidation === undefined) {\n continue;\n }\n let validationType = '';\n if (controlValidation.type !== null && controlValidation.type !== undefined) {\n validationType = controlValidation.type.toLowerCase();\n }\n else {\n continue;\n }\n let valueProvided = isValueProvided(controlValidation.value);\n if (!valueProvided && controlValidation.controlId) {\n const controlForValidationValue = controlMap.get(controlValidation.controlId);\n (_b = (_a = controlForValidationValue === null || controlForValidationValue === void 0 ? void 0 : controlForValidationValue.formElement) === null || _a === void 0 ? void 0 : _a.validations) === null || _b === void 0 ? void 0 : _b.forEach((validationElement) => {\n var _a;\n if (validationElement.type == controlValidation.type) {\n controlValidation.value = validationElement.value;\n controlValidation.text = (_a = controlValidation.text) !== null && _a !== void 0 ? _a : validationElement.text;\n valueProvided = isValueProvided(controlValidation.value);\n }\n });\n }\n // User gave a \"value\" or the validation doesn't require any input.\n if ((valueProvided && formElement.required) || !formElement.required) {\n const validation = createValidation(validationType, controlValidation.text ? controlValidation.text : '', formElement.required, controlValidation.value);\n controlValidation.onValidation = validation;\n }\n }\n }\n return formElement;\n}\nfunction isValueProvided(value) {\n return value !== null && value !== undefined;\n}\nconst validationCreationHandlersMap = {\n regexmatch: validationHelper.regExMatchValidation,\n notregexmatch: validationHelper.notRegExMatchValidation,\n contains: validationHelper.containsValidation,\n notcontains: validationHelper.notContainsValidation,\n containscharacters: validationHelper.containsCharactersValidation,\n notcontainscharacters: validationHelper.notContainsCharactersValidation,\n hasdigit: validationHelper.hasDigitValidation,\n hasletter: validationHelper.hasLetterValidation,\n hasuppercaseletter: validationHelper.hasUpperCaseLetterValidation,\n haslowercaseletter: validationHelper.hasLowerCaseLetterValidation,\n haspunctuation: validationHelper.hasPunctuationValidation,\n equals: validationHelper.equalsValidation,\n minlength: validationHelper.minLengthValidation,\n maxlength: validationHelper.maxLengthValidation,\n minvalue: validationHelper.minValueValidation,\n maxvalue: validationHelper.maxValueValidation,\n caseinsensitivecomparison: validationHelper.caseInsensitiveComparisonValidation,\n uri: validationHelper.uriValidation,\n greaterthan: validationHelper.createGreaterThanValidation,\n lessthan: validationHelper.createLessThanValidation,\n email: validationHelper.createEmailValidation,\n localeawarecaseinsensitivecomparison: validationHelper.localeAwareCaseInsensitiveComparisonValidation,\n};\n/**\n * Responsible for generation of scoping questions validations\n */\nfunction createValidation(type, message, required = false, value) {\n const validationMethod = validationCreationHandlersMap[type.toLowerCase()];\n return validationMethod(required, message, value);\n}\n","import React from 'react';\nconst initialState = {\n status: 'idle',\n message: null,\n searchCriteria: {},\n};\nconst AplScopingQuestionsWidgetContext = React.createContext({ state: initialState, dispatch: () => null });\nconst scopingQuestionsWidgetReducer = (state, action) => {\n switch (action.type) {\n case 'ScopingQuestionsStarted':\n return Object.assign(Object.assign({}, state), { status: 'loading' });\n case 'ScopingQuestionsFailed':\n return Object.assign(Object.assign({}, state), { status: 'failed' });\n case 'ScopingQuestionsSuccess':\n const { payload } = action;\n return Object.assign(Object.assign({}, state), { status: 'completed', data: payload });\n case 'InsightsTriggered':\n return Object.assign(Object.assign({}, initialState), { status: 'loadingInsights', searchCriteria: action.searchCriteria });\n case 'InsightsTriggeredSuccessful':\n return Object.assign(Object.assign({}, state), { status: 'completedInsights', searchCriteria: action.searchCriteria });\n case 'InsightsTriggeredFailed':\n return Object.assign(Object.assign({}, state), { status: 'completedInsights', message: 'Failed to trigger insights' });\n case 'ResetState':\n return Object.assign({}, initialState);\n }\n};\n// eslint-disable-next-line react/prop-types\nconst AplScopingQuestionsWidgetProvider = ({ children }) => {\n const [state, dispatch] = React.useReducer(scopingQuestionsWidgetReducer, initialState);\n return (React.createElement(AplScopingQuestionsWidgetContext.Provider, { value: { state, dispatch } }, children));\n};\nexport { AplScopingQuestionsWidgetProvider, AplScopingQuestionsWidgetContext };\n","import React, { useCallback } from 'react';\nimport { ResponsiveMode } from '@fluentui/react';\nimport { Dropdown } from '@fluentui/react/lib/Dropdown';\nimport { ChoiceGroup } from '@fluentui/react/lib/ChoiceGroup';\nimport { ElxDateTimePicker, ElxDateTimePickerDisplayMode } from '@elixir/components/lib/DateTimePicker';\nimport { TextField, MaskedTextField } from '@fluentui/react/lib/TextField';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { FormConstants, AplControlTypes } from './Constants/AplScopingQuestionsConstants';\nimport { textStyles, dropdownStyles } from './AplScopingQuestionsWidget.styles';\nimport { AplComponentType, useAplLog, useTelemetrySink, } from '../Telemetry';\nimport { controlVisible, updateControlVisibility, getVisibilityDependentParents, } from './Helpers/FormElementVisibilityHelper';\nimport { InfoBalloonLabel } from './Helpers/FormElementsInfoBalloonHelper';\nimport { handleControlValidation } from './Helpers/FormElementValidator';\nimport { AplScopingQuestionsWidgetContext } from './AplScopingQuestionsWidgetContext';\nconst renderScopingQuestions = (scopingQuestionsData, controlMap, context, onValueChangeHandler, logTelemetry) => {\n if (!scopingQuestionsData.formElements || scopingQuestionsData.formElements.length == 0) {\n return React.createElement(\"div\", null);\n }\n return generateFormControls(scopingQuestionsData.formElements, controlMap, context, onValueChangeHandler, logTelemetry);\n};\nconst generateFormControls = (formElements, controlMap, context, onValueChangeHandler, logTelemetry) => {\n const controls = [];\n formElements.forEach((formElement) => {\n const controlVisibility = updateControlVisibility(controlMap, formElement);\n if (controlVisibility != undefined) {\n const controlDetails = controlMap.get(formElement.id);\n if (controlDetails) {\n controlDetails.visibility = controlVisibility;\n }\n }\n const control = createControl(formElement, context, controlMap, onValueChangeHandler, logTelemetry);\n controls.push(control);\n });\n return React.createElement(\"div\", null, controls);\n};\nconst CreateTextBox = (props) => {\n var _a, _b, _c, _d;\n //infoBalloonText\n const controlId = props.formElement.id;\n const itemId = controlId + '_' + AplControlTypes.TextBox;\n const [errorMessage, setErrorMessage] = React.useState('');\n const controlDetails = props.controls.get(controlId);\n const { state } = React.useContext(AplScopingQuestionsWidgetContext);\n additionalLogData.itemId = itemId;\n additionalLogData.articleId = (_a = state.data) === null || _a === void 0 ? void 0 : _a.id;\n props.logTelemetry('TextBoxPresented', Object.assign(Object.assign({}, props.context), additionalLogData), 'impression');\n let watermarkHintText = '';\n let infoBalloonHintText = '';\n if (props.options.multiLine && props.formElement.hints && props.formElement.hints.length > 0) {\n props.formElement.hints.forEach((hint) => {\n watermarkHintText = watermarkHintText.concat(`${hint.text}\\n`);\n infoBalloonHintText = infoBalloonHintText.concat(`${hint.text}
`);\n });\n }\n const watermarkText = (_b = props.formElement.watermarkText) !== null && _b !== void 0 ? _b : watermarkHintText;\n const infoBalloonText = (_c = props.formElement.infoBalloonText) !== null && _c !== void 0 ? _c : infoBalloonHintText;\n const onChangeHandler = (event, newValue) => {\n var _a;\n let isValid = true;\n (_a = props.formElement.validations) === null || _a === void 0 ? void 0 : _a.forEach((validation) => {\n if (validation.onValidation) {\n const resultValidations = validation.onValidation(newValue);\n isValid = isValid && resultValidations.valid;\n if (!isValid) {\n setErrorMessage(errorMessage + resultValidations.message);\n props.onChangeValue(controlId, '');\n }\n }\n });\n if (isValid) {\n additionalLogData.itemValue = newValue;\n props.logTelemetry('TextBoxValueEntered', Object.assign(Object.assign({}, props.context), additionalLogData), 'interaction');\n props.onChangeValue(controlId, newValue);\n setErrorMessage('');\n }\n };\n let maxLength = FormConstants.textBoxMaxLength;\n if (props.formElement.maxLength && props.formElement.maxLength > 0) {\n maxLength = props.formElement.maxLength;\n }\n else if (props.options.multiLine) {\n maxLength = undefined;\n }\n return (React.createElement(React.Fragment, null, controlDetails && controlDetails.visibility && (React.createElement(TextField, { key: itemId, label: props.formElement.displayLabel, errorMessage: errorMessage, placeholder: watermarkText, ariaLabel: props.formElement.displayLabel, required: props.formElement.required, defaultValue: (controlDetails === null || controlDetails === void 0 ? void 0 : controlDetails.initialValue) ? controlDetails.initialValue : '', onChange: onChangeHandler, styles: textStyles, onRenderLabel: infoBalloonText\n ? () => InfoBalloonLabel(props.formElement.displayLabel, infoBalloonText, props.formElement.required)\n : undefined, maxLength: maxLength, multiline: props.options.multiLine, rows: (_d = props.formElement.numberOfLines) !== null && _d !== void 0 ? _d : FormConstants.multiLineTextBoxMaxRows, resizable: false }))));\n};\nconst getMaskforNumericTextBox = (maxLength) => {\n let mask = '';\n for (let i = 0; i < maxLength; i++) {\n mask += '9';\n }\n return mask;\n};\nconst CreateNumericTextBox = (props) => {\n var _a;\n //infoBalloonText\n const controlId = props.formElement.id;\n const itemId = controlId + '_' + AplControlTypes.TextBox;\n const [errorMessage, setErrorMessage] = React.useState('');\n const controlDetails = props.controls.get(controlId);\n const { state } = React.useContext(AplScopingQuestionsWidgetContext);\n additionalLogData.itemId = itemId;\n additionalLogData.articleId = (_a = state.data) === null || _a === void 0 ? void 0 : _a.id;\n props.logTelemetry('TextBoxPresented', Object.assign(Object.assign({}, props.context), additionalLogData), 'impression');\n const onChangeHandler = (event, newValue) => {\n var _a;\n let isValid = true;\n (_a = props.formElement.validations) === null || _a === void 0 ? void 0 : _a.forEach((validation) => {\n if (validation.onValidation) {\n const resultValidations = validation.onValidation(newValue);\n isValid = isValid && resultValidations.valid;\n if (!isValid) {\n setErrorMessage(errorMessage + resultValidations.message);\n props.onChangeValue(controlId, '');\n }\n }\n });\n if (isValid) {\n additionalLogData.itemValue = newValue;\n props.logTelemetry('TextBoxValueEntered', Object.assign(Object.assign({}, props.context), additionalLogData), 'interaction');\n props.onChangeValue(controlId, newValue);\n setErrorMessage('');\n }\n };\n const maxLength = props.formElement.maxLength && props.formElement.maxLength > 0\n ? props.formElement.maxLength\n : FormConstants.textBoxMaxLength;\n return (React.createElement(React.Fragment, null, controlDetails && controlDetails.visibility && (React.createElement(MaskedTextField, { key: itemId, mask: getMaskforNumericTextBox(maxLength), maskChar: \"\", errorMessage: errorMessage, label: props.formElement.displayLabel, placeholder: props.formElement.watermarkText, ariaLabel: props.formElement.displayLabel, required: props.formElement.required, defaultValue: (controlDetails === null || controlDetails === void 0 ? void 0 : controlDetails.initialValue) ? controlDetails.initialValue : '', onChange: onChangeHandler, styles: textStyles, onRenderLabel: props.formElement.infoBalloonText\n ? () => InfoBalloonLabel(props.formElement.displayLabel, props.formElement.infoBalloonText, props.formElement.required)\n : undefined, maxLength: maxLength }))));\n};\nfunction CreateDropdown(props) {\n var _a, _b, _c, _d;\n const multiSelect = ((_a = props.options) === null || _a === void 0 ? void 0 : _a.multiSelect) ? true : false;\n const controlId = props.formElement.id;\n const dropdownOptions = [];\n const controlDetails = props.controls.get(controlId);\n if (controlDetails) {\n const formElement = controlDetails.formElement;\n if ((formElement === null || formElement === void 0 ? void 0 : formElement.dropdownOptions) && (formElement === null || formElement === void 0 ? void 0 : formElement.dropdownOptions.length) > 0) {\n (_b = formElement === null || formElement === void 0 ? void 0 : formElement.dropdownOptions) === null || _b === void 0 ? void 0 : _b.forEach((option) => {\n dropdownOptions.push({\n key: option.value,\n text: option.text,\n });\n });\n }\n }\n //For infoBalloonText, we might need to use Tooltip or custom label\n const itemId = controlId + '_' + (multiSelect ? AplControlTypes.MultiSelectDropDown : AplControlTypes.DropDown);\n const { state } = React.useContext(AplScopingQuestionsWidgetContext);\n additionalLogData.itemId = itemId;\n additionalLogData.articleId = (_c = state.data) === null || _c === void 0 ? void 0 : _c.id;\n props.logTelemetry('DropDownPresented', Object.assign(Object.assign({}, props.context), additionalLogData), 'impression');\n const onChangeHandler = (event, newValue) => {\n additionalLogData.itemValue = newValue.key;\n props.logTelemetry('DropDownValueSelected', Object.assign(Object.assign({}, props.context), additionalLogData), 'interaction');\n props.onChangeValue(props.formElement.id, newValue.key);\n };\n //Implement dynamicDropdownOptions\n return (React.createElement(React.Fragment, null, controlDetails && controlDetails.visibility && (React.createElement(Dropdown, { key: itemId, placeholder: props.formElement.watermarkText, label: props.formElement.displayLabel, errorMessage: (_d = controlDetails.errorMessage) !== null && _d !== void 0 ? _d : '', ariaLabel: props.formElement.infoBalloonText ? props.formElement.infoBalloonText : props.formElement.displayLabel, options: dropdownOptions, styles: dropdownStyles, required: props.formElement.required, selectedKey: controlDetails.currentValue, responsiveMode: ResponsiveMode.large, onChange: onChangeHandler, multiSelect: multiSelect, onRenderLabel: props.formElement.infoBalloonText\n ? () => InfoBalloonLabel(props.formElement.displayLabel, props.formElement.infoBalloonText, props.formElement.required)\n : undefined }))));\n}\nfunction CreateRadioButton(props) {\n var _a, _b;\n const controlId = props.formElement.id;\n const options = [];\n const controlDetails = props.controls.get(controlId);\n if (controlDetails) {\n const formElement = controlDetails.formElement;\n if ((formElement === null || formElement === void 0 ? void 0 : formElement.radioButtonOptions) && (formElement === null || formElement === void 0 ? void 0 : formElement.radioButtonOptions.length) > 0) {\n (_a = formElement === null || formElement === void 0 ? void 0 : formElement.radioButtonOptions) === null || _a === void 0 ? void 0 : _a.forEach((option) => {\n options.push({\n key: option.value,\n text: option.text,\n });\n });\n }\n }\n //For infoBalloonText, we might need to use Tooltip or custom label\n const itemId = controlId + '_' + AplControlTypes.RadioButtonGroup;\n const { state } = React.useContext(AplScopingQuestionsWidgetContext);\n additionalLogData.itemId = itemId;\n additionalLogData.articleId = (_b = state.data) === null || _b === void 0 ? void 0 : _b.id;\n props.logTelemetry('RadioButtonGroupPresented', Object.assign(Object.assign({}, props.context), additionalLogData), 'impression');\n const onChangeHandler = (_, newValue) => {\n additionalLogData.itemValue = newValue.key;\n props.logTelemetry('RadioButtonValueSelected', Object.assign(Object.assign({}, props.context), additionalLogData), 'interaction');\n props.onChangeValue(controlId, newValue.key);\n };\n return (React.createElement(React.Fragment, null, controlDetails && controlDetails.visibility && (React.createElement(ChoiceGroup, { key: itemId, label: props.formElement.displayLabel, options: options, required: props.formElement.required, onChange: onChangeHandler }))));\n}\nfunction CreateDateTimePicker(props) {\n var _a;\n const controlId = props.formElement.id;\n const controlDetails = props.controls.get(controlId);\n const watermarkText = '';\n //For infoBalloonText, we might need to use Tooltip or custom label\n const itemId = controlId + '_' + AplControlTypes.DateTimePicker;\n const [dateTime, setDateTime] = React.useState(watermarkText);\n const { state } = React.useContext(AplScopingQuestionsWidgetContext);\n additionalLogData.itemId = itemId;\n additionalLogData.articleId = (_a = state.data) === null || _a === void 0 ? void 0 : _a.id;\n props.logTelemetry('DateTimePickerPresented', Object.assign(Object.assign({}, props.context), additionalLogData), 'impression');\n const onSelectDateTimeHandler = React.useCallback((newDateTime) => {\n setDateTime(newDateTime);\n additionalLogData.itemValue = newDateTime;\n props.logTelemetry('DateTimePickerValueSelected', Object.assign(Object.assign({}, props.context), additionalLogData), 'interaction');\n props.onChangeValue(controlId, newDateTime);\n }, [props.logTelemetry, props.onChangeValue, setDateTime]);\n return (React.createElement(React.Fragment, null, controlDetails && controlDetails.visibility && (React.createElement(ElxDateTimePicker, { label: props.formElement.displayLabel, id: props.formElement.id, timeZones: [{ utcOffsetMinutes: 0, symbol: 'UTC' }], defaultValue: dateTime, displayMode: ElxDateTimePickerDisplayMode.Stacked, onSelectDateTime: onSelectDateTimeHandler }))));\n}\n//Placeholder to update additional logging data\nconst additionalLogData = {\n isScopingQuestion: true,\n itemValue: '',\n itemId: '',\n articleId: '',\n};\nfunction createControl(formElement, context, controls, onChangeValue, logTelemetry) {\n const options = {\n multiSelect: AplControlTypes.MultiSelectDropDown === formElement.controlType.toLowerCase(),\n multiLine: AplControlTypes.MultiLineTextBox === formElement.controlType.toLowerCase(),\n };\n return (React.createElement(\"div\", { key: formElement.id, style: { marginBottom: '20px' } },\n formElement.controlType.toLowerCase() === AplControlTypes.DropDown ||\n formElement.controlType.toLowerCase() === AplControlTypes.MultiSelectDropDown ? (React.createElement(CreateDropdown, { formElement: formElement, options: options, context: context, controls: controls, onChangeValue: onChangeValue, logTelemetry: logTelemetry })) : null,\n formElement.controlType.toLowerCase() === AplControlTypes.TextBox ||\n formElement.controlType.toLowerCase() === AplControlTypes.MultiLineTextBox ? (React.createElement(CreateTextBox, { formElement: formElement, options: options, context: context, controls: controls, onChangeValue: onChangeValue, logTelemetry: logTelemetry })) : null,\n formElement.controlType.toLowerCase() === AplControlTypes.NumericTextBox ? (React.createElement(CreateNumericTextBox, { formElement: formElement, options: options, context: context, controls: controls, onChangeValue: onChangeValue, logTelemetry: logTelemetry })) : null,\n formElement.controlType.toLowerCase() === AplControlTypes.RadioButtonGroup ? (React.createElement(CreateRadioButton, { formElement: formElement, options: options, context: context, controls: controls, onChangeValue: onChangeValue, logTelemetry: logTelemetry })) : null,\n formElement.controlType.toLowerCase() === AplControlTypes.DateTimePicker ? (React.createElement(CreateDateTimePicker, { formElement: formElement, options: options, context: context, controls: controls, onChangeValue: onChangeValue, logTelemetry: logTelemetry })) : null));\n}\nconst AplScopingQuestionsFormElementsInternal = ({ scopingQuestionsProvider, context, data, onSetScopingQuestionsParameters, }) => {\n const [controlMap, setControlMap] = React.useState(new Map());\n const [dependencyMap, setDependencyMap] = React.useState(new Map());\n const [visibilityMap, setVisibilityMap] = React.useState(new Map());\n const log = useAplLog();\n const sink = useTelemetrySink();\n const fetchDynamicDropDownData = useCallback((formElement, context, parentValue) => {\n return scopingQuestionsProvider.getDynamicDropdownData(formElement, context, parentValue);\n }, []);\n const fetchDynamicTextBlockData = useCallback((formElement, context, parentValue) => {\n return scopingQuestionsProvider.getDynamicTextBlockData(formElement, context, parentValue);\n }, []);\n const fillDropdownData = (formElement, originalControlMap, data) => {\n const updatedControlMap = cloneDeep(originalControlMap);\n const curMap = updatedControlMap.get(formElement.id);\n if (curMap) {\n if (data.length > 0) {\n updatedControlMap.set(formElement.id, Object.assign(Object.assign({}, curMap), { formElement: Object.assign(Object.assign({}, formElement), { dropdownOptions: data }) }));\n }\n else {\n updatedControlMap.set(formElement.id, Object.assign(Object.assign({}, curMap), { visibility: controlVisible(formElement.visibility), currentValue: undefined, formElement: Object.assign(Object.assign({}, formElement), { dropdownOptions: [] }) }));\n }\n setControlMap(updatedControlMap);\n onSetScopingQuestionsParameters(updatedControlMap);\n }\n };\n const updateDynamicDropDown = (formElement, updatedControlMap, context, parentValue) => {\n fillDropdownData(formElement, updatedControlMap, []);\n fetchDynamicDropDownData(formElement, context, parentValue).then((dynamicData) => {\n fillDropdownData(formElement, updatedControlMap, dynamicData);\n });\n };\n const updateDynamicTextBlockData = (formElement, data) => {\n const updatedControlMap = cloneDeep(controlMap);\n const curMap = controlMap.get(formElement.id);\n if (curMap) {\n if (data) {\n updatedControlMap.set(formElement.id, Object.assign(Object.assign({}, curMap), { currentValue: data }));\n }\n else {\n updatedControlMap.set(formElement.id, Object.assign(Object.assign({}, curMap), { visibility: controlVisible(formElement.visibility), currentValue: undefined }));\n }\n setControlMap(updatedControlMap);\n onSetScopingQuestionsParameters(updatedControlMap);\n }\n };\n const updateDynamicTextBlock = (formElement, context, parentValue) => {\n updateDynamicTextBlockData(formElement, '');\n fetchDynamicTextBlockData(formElement, context, parentValue).then((dynamicData) => {\n updateDynamicTextBlockData(formElement, dynamicData);\n });\n };\n React.useEffect(() => {\n if (data && data.formElements.length > 0) {\n const dependencyMap = new Map();\n const visMap = new Map();\n data.formElements.forEach((formElement) => {\n var _a;\n formElement = handleControlValidation(formElement, controlMap);\n setControlMap(controlMap.set(formElement.id, {\n formElement: formElement,\n visibility: controlVisible(formElement.visibility),\n }));\n onSetScopingQuestionsParameters(controlMap);\n if (formElement.dynamicDropdownOptions && !formElement.dynamicDropdownOptions.dependsOn) {\n updateDynamicDropDown(formElement, controlMap, context);\n }\n if (formElement.dynamicTextBlockOptions && !formElement.dynamicTextBlockOptions.dependsOn) {\n updateDynamicTextBlock(formElement, context);\n }\n //Update visibilityMap\n const visParents = getVisibilityDependentParents(formElement === null || formElement === void 0 ? void 0 : formElement.visibility);\n if (visParents && visParents.length > 0) {\n visParents.forEach((visParentId) => {\n if (visMap[visParentId]) {\n visMap[visParentId] = [...visMap[visParentId], formElement.id];\n }\n else {\n visMap[visParentId] = [formElement.id];\n }\n });\n setVisibilityMap(visMap);\n }\n //Update dependencyMap\n const parentElementId = (_a = formElement === null || formElement === void 0 ? void 0 : formElement.dynamicDropdownOptions) === null || _a === void 0 ? void 0 : _a.dependsOn;\n if (parentElementId && parentElementId !== '') {\n if (dependencyMap[parentElementId]) {\n dependencyMap[parentElementId] = [...dependencyMap[parentElementId], formElement.id];\n }\n else {\n dependencyMap[parentElementId] = [formElement.id];\n }\n }\n else {\n dependencyMap[formElement.id] = [];\n }\n });\n setDependencyMap(dependencyMap);\n }\n }, [data]);\n const onValueChangeHandler = (parentControlId, parentControlValue) => {\n const updatedControlMap = cloneDeep(controlMap);\n const parentMap = updatedControlMap.get(parentControlId);\n if (parentMap) {\n //Update parent control value\n updatedControlMap.set(parentControlId, Object.assign(Object.assign({}, parentMap), { currentValue: parentControlValue }));\n //Update visibility of dependent component\n const visibilityDependents = visibilityMap[parentControlId];\n if (visibilityDependents && visibilityDependents.length > 0) {\n visibilityDependents.forEach((childElementId) => {\n const originalChildMap = updatedControlMap.get(childElementId);\n if (originalChildMap) {\n const visibleState = updateControlVisibility(updatedControlMap, originalChildMap.formElement);\n if (visibleState != undefined) {\n updatedControlMap.set(originalChildMap.formElement.id, Object.assign(Object.assign({}, originalChildMap), { visibility: visibleState }));\n }\n }\n });\n }\n setControlMap(updatedControlMap);\n onSetScopingQuestionsParameters(updatedControlMap);\n }\n //Update Dynamic dropdowns\n const dependentElements = dependencyMap[parentControlId];\n if (dependentElements && dependentElements.length > 0) {\n dependentElements.forEach((childElementId) => {\n const originalChildMap = updatedControlMap.get(childElementId);\n if (originalChildMap) {\n updateDynamicDropDown(originalChildMap.formElement, updatedControlMap, context, parentControlValue);\n }\n });\n }\n };\n const logTelemetry = (action, data, eventType) => {\n if (sink) {\n sink.push(Object.assign(Object.assign({}, log), { action: action, data: data, eventType: eventType, component: AplComponentType.ScopingQuestions, area: 'ScopingQuestionsWidget' }));\n }\n };\n return React.createElement(React.Fragment, null, data && renderScopingQuestions(data, controlMap, context, onValueChangeHandler, logTelemetry));\n};\nexport const AplScopingQuestionsFormElements = (props) => {\n return React.createElement(AplScopingQuestionsFormElementsInternal, Object.assign({}, props));\n};\n","import React from 'react';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { Link } from '@fluentui/react/lib/Link';\nimport { useSupportContext } from '../Contexts/AplContext';\nexport function AplInternalLinkList(props) {\n const { items } = props;\n return (items === null || items === void 0 ? void 0 : items.length) ? React.createElement(Stack, { tokens: { childrenGap: '5px' } }, items.map(InternalLink)) : null;\n}\nfunction InternalLink(props) {\n const { text, url } = props;\n const supportContext = useSupportContext();\n let computedUrl = url;\n if (url) {\n if (isInternalLink(url)) {\n computedUrl = addSrIdToLink(url, supportContext === null || supportContext === void 0 ? void 0 : supportContext.srId);\n }\n return (React.createElement(Link, { href: computedUrl, target: \"_blank\" }, text || 'link'));\n }\n else {\n return null;\n }\n}\nfunction isInternalLink(url) {\n return !/^([\\w\\d]+:|)\\/\\//.test(url);\n}\nfunction addSrIdToLink(url, srId) {\n const containsSrIdRegex = /[\\?&]srid=/i;\n const urlHelper = document.createElement('a');\n urlHelper.href = url;\n if (!containsSrIdRegex.test(urlHelper.search) && srId) {\n urlHelper.search += (urlHelper.search.length > 0 ? '&' : '?') + 'srId=' + srId;\n }\n return urlHelper.href;\n}\n","import React from 'react';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { Link } from '@fluentui/react/lib/Link';\nimport { FontWeights } from '@fluentui/react/lib/Styling';\nimport { PrimaryButton } from '@fluentui/react/lib/Button';\nimport { AplMarkdown } from '../Markdown';\nimport { AplCustomerReadyContent } from '../CustomerReadyContent';\nimport { AplImpactedResourcesLinks } from '../ImpactedResources/AplImpactedResourceLinks';\nimport { AplScopingQuestionsFormElements } from '../ScopingQuestions/AplScopingQuestionsFormElements';\nimport { AplInternalLinkList } from '../InternalLink';\nexport const renderFields = (fields) => {\n return (React.createElement(Stack, { tokens: { childrenGap: '20px' }, styles: { root: { marginBottom: '10px' } } }, fields.map(renderFieldWithLabel)));\n};\nconst renderFieldWithLabel = (props, index) => {\n if (props.fieldType === 'custom') {\n return (React.createElement(Stack, { key: index, tokens: { childrenGap: '5px' } }, props.component));\n }\n const { label } = props;\n return (React.createElement(Stack, { key: index, tokens: { childrenGap: '5px' } },\n React.createElement(Text, { styles: { root: { fontWeight: FontWeights.semibold } } }, label),\n renderField(props)));\n};\nconst renderField = (props) => {\n switch (props.fieldType) {\n case 'text':\n return renderTextField(props);\n case 'links':\n return renderLinks(props);\n case 'markdown':\n return renderMarkdown(props);\n case 'customerreadycontent':\n return renderCustomerReadyContent(props);\n // case 'chart':\n // return renderChart(props);\n case 'internallinks':\n return renderInternalLinks(props);\n case 'impactedresources':\n return renderImpactedResources(props);\n case 'button':\n return renderButton(props);\n case 'dsqForm':\n return renderDSQForm(props);\n case 'custom':\n return renderCustom(props);\n }\n};\nconst renderTextField = (props) => {\n const { text } = props;\n return React.createElement(Text, null, text);\n};\nconst renderLinks = (props) => {\n const { links } = props;\n return (React.createElement(Stack, null, links &&\n links.length &&\n links.map((link, index) => (React.createElement(Link, Object.assign({ key: index }, link, { target: \"_blank\" }), link.text)))));\n};\nconst renderInternalLinks = (props) => {\n return React.createElement(AplInternalLinkList, { items: props.items });\n};\nconst renderMarkdown = (props) => {\n return React.createElement(AplMarkdown, { markdown: props.markdown, allowDangerousHtml: true });\n};\nconst renderCustomerReadyContent = (props) => {\n const { markdown, srId = '', caseTitle = '', customerEmail = '', customerName = '', context, actionHandler } = props;\n return (React.createElement(AplCustomerReadyContent, { markdown: markdown, srId: srId, customerName: customerName, customerEmail: customerEmail, title: caseTitle, allowDangerousHtml: true, context: context, actionHandler: actionHandler }));\n};\n// const renderChart = (props: IAplSolutionCardChart): JSX.Element => {\n// return (\n// \n// );\n// };\nconst renderImpactedResources = (props) => {\n return React.createElement(AplImpactedResourcesLinks, Object.assign({}, props));\n};\nconst renderButton = (props) => {\n return (React.createElement(\"div\", null,\n React.createElement(PrimaryButton, { onClick: props.onClick, text: props.text }),\n ' '));\n};\nconst renderDSQForm = (props) => {\n return (React.createElement(AplScopingQuestionsFormElements, { context: props.context, data: props.data, scopingQuestionsProvider: props.scopingQuestionsProvider, onSetScopingQuestionsParameters: props.onSetScopingQuestionsParameters }));\n};\nconst renderCustom = (props) => {\n return React.createElement(\"div\", null, props.component);\n};\n","export function getMediaQuery(widths) {\n let mediaQuery = '@media only screen';\n if (widths === null || widths === void 0 ? void 0 : widths.min) {\n mediaQuery = `${mediaQuery} and (min-width: ${widths.min}px)`;\n }\n if (widths === null || widths === void 0 ? void 0 : widths.max) {\n mediaQuery = `${mediaQuery} and (max-width: ${widths.max}px)`;\n }\n return mediaQuery;\n}\n","import React from 'react';\nimport { mergeStyleSets, ScreenWidthMinLarge } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nimport { MaxWidgetWidth } from '../../Styling/Variables';\nimport { getMediaQuery } from '../../Styling/MediaQueries';\nimport { useImportanceLevelBorder } from '../AplSolutionCard.styles';\nconst headerClassNames = {\n root: 'apl-solutionCardHeader',\n collapser: 'apl-solutionCardHeader-collapser',\n buttonContainer: 'apl-solutionCardHeader-container',\n sectionContainer: 'apl-solutionCardHeader-sectionContainer',\n actionContainer: 'apl-solutionCardHeader-actionContainer',\n};\nconst headerButtonItemsGap = '16px';\nconst topBorderGutter = '16px';\nconst headerHeight = '56px';\nfunction useHeaderStyles({ collapserSectionProps }) {\n const theme = useTheme();\n const { importanceLevel } = collapserSectionProps || {};\n const border = useImportanceLevelBorder(importanceLevel);\n const styles = {\n root: [\n headerClassNames.root,\n {\n display: 'flex',\n maxWidth: MaxWidgetWidth,\n flexWrap: 'wrap',\n selectors: {\n [getMediaQuery({ min: ScreenWidthMinLarge })]: {\n maxHeight: headerHeight,\n },\n },\n },\n border,\n ],\n sectionContainer: {\n display: 'flex',\n },\n separator: {\n margin: '12px 0',\n minWidth: 0,\n width: '1px',\n backgroundColor: 'transparent',\n selectors: {\n [getMediaQuery({ min: ScreenWidthMinLarge })]: {\n backgroundColor: theme.palette.neutralLight,\n },\n },\n },\n };\n return React.useMemo(() => mergeStyleSets(styles), [theme, collapserSectionProps]);\n}\nexport const useHeaderSectionStyle = (hasAction) => {\n const theme = useTheme();\n return {\n [getMediaQuery({ max: ScreenWidthMinLarge })]: Object.assign(Object.assign({ padding: '10px 0', borderTop: `1px solid ${theme.palette.neutralLight}` }, (hasAction ? { borderBottom: `1px solid ${theme.palette.neutralLight}` } : null)), { marginLeft: `calc((${headerButtonItemsGap} * 3) + (${theme.fonts.medium.fontSize} * 3) - ${topBorderGutter})` }),\n };\n};\nexport { useHeaderStyles, headerButtonItemsGap, headerHeight, topBorderGutter };\n","import { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { headerButtonItemsGap, topBorderGutter } from '../SolutionCardHeader/AplSolutionCardHeader.styles';\nimport { useImportanceLevelBorder } from '../AplSolutionCard.styles';\nconst classNames = {\n root: 'apl-solutionCardContent',\n contentWrapper: 'apl-solutionCardContent-wrapper',\n contentFeedback: 'apl-solutionCardContent-contentFeedback',\n fieldSetArea: 'apl-solutioCardContent-fieldSetArea',\n footerActions: 'apl-solutionCardContent-footerActions',\n relevancyFeedback: 'apl-solutionCardContent-relevancyFeedback',\n footer: 'apl-solutionCardContent-footer',\n fieldSetAreaNoHeader: 'apl-solutioCardContent-fieldSetAreaNoHeader',\n};\nexport const useClassNames = (props, theme) => {\n const { importanceLevel, noHeader } = props;\n const border = useImportanceLevelBorder(importanceLevel);\n return mergeStyleSets({\n root: [classNames.root, { display: 'flex', flexFlow: 'column nowrap' }, border],\n contentWrapper: [\n classNames.contentWrapper,\n {\n display: 'flex',\n flexFlow: 'column nowrap',\n borderTop: `${noHeader ? 0 : 1}px solid ${theme.palette.neutralLighter}`,\n margin: `0 ${topBorderGutter}`,\n },\n ],\n fieldSetArea: [\n classNames.fieldSetArea,\n {\n marginTop: '0 16px',\n paddingLeft: `calc((${headerButtonItemsGap} * 3) + (${theme.fonts.medium.fontSize} * 2) - ${topBorderGutter})`,\n },\n ],\n fieldSetAreaNoHeader: [\n classNames.fieldSetAreaNoHeader,\n {\n paddingTop: '16px',\n // Padding bottom is 6px to account for 10px margin-bottom coming from\n // solution card. This will result in 16px of space on the top and the bottom.\n paddingBottom: '6px',\n },\n ],\n contentFeedback: [classNames.contentFeedback, { alignSelf: 'flex-end' }],\n relevancyFeedback: [\n classNames.relevancyFeedback,\n {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: theme.palette.neutralLighterAlt,\n padding: '16px 20px',\n marginTop: '40px',\n },\n ],\n footerActions: {\n display: 'flex',\n flexDirection: 'row',\n padding: '10px 20px',\n selectors: {\n '> *': {\n marginRight: '5px',\n },\n },\n },\n footer: [classNames.footer],\n }, props.styles);\n};\n","import React from 'react';\nimport { DefaultButton } from '@fluentui/react/lib/Button';\nimport { Separator } from '@fluentui/react/lib/Separator';\nimport { useTheme } from '@fluentui/react';\nimport { AplRelevancyFeedback } from '../../Feedback/RelevancyFeedback';\nimport { AplContentFeedback } from '../../Feedback/ContentFeedback';\nimport ApolloI18n from '../../ApolloComponentsI18n';\nimport { renderFields } from '../AplSolutionCardContentRenderer';\nimport { useClassNames } from './AplSolutionCardContent.styles';\nimport { AplLog } from '../../Telemetry/AplLog';\nfunction AplSolutionCardContent(props) {\n const { onContentFeedback, footerActions, fields, onRelevancyFeedback, logProps, footer, noHeader, useDefaultFeedbackLabel = true, } = props;\n const theme = useTheme();\n const classNames = useClassNames(props, theme);\n return (React.createElement(AplLog, Object.assign({}, logProps),\n React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.contentWrapper },\n onContentFeedback && (React.createElement(\"div\", { className: classNames.contentFeedback },\n React.createElement(AplContentFeedback, { onContentFeedback: onContentFeedback, useDefaultLabel: useDefaultFeedbackLabel }))),\n fields && (React.createElement(\"div\", { className: noHeader ? classNames.fieldSetAreaNoHeader : classNames.fieldSetArea }, renderFields(fields)))),\n footerActions && footerActions.length ? (React.createElement(React.Fragment, null,\n React.createElement(Separator, null),\n React.createElement(\"div\", { className: classNames.footerActions }, footerActions.map((action, index) => (React.createElement(DefaultButton, Object.assign({ key: 'footerActions_' + index }, action))))))) : null,\n onRelevancyFeedback && (React.createElement(\"div\", { className: classNames.relevancyFeedback },\n React.createElement(AplRelevancyFeedback, { label: ApolloI18n.get('RelevancyFeedbackLabel'), onRelevancyFeedback: onRelevancyFeedback }))),\n footer && React.createElement(\"div\", { className: classNames.footer }, footer))));\n}\nexport { AplSolutionCardContent };\n","import React from 'react';\nimport { mergeStyleSets, ScreenWidthMinLarge } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nimport { getMediaQuery } from '../../../../Styling/MediaQueries';\nimport { useImportanceLevelColor } from '../../../AplSolutionCard.styles';\nconst classNames = {\n root: 'apl-solutionCardHeaderCollapserSection',\n minRoot: 'apl-solutionCardHeaderMinCollapserSection',\n buttonContainer: 'apl-solutionCardHeaderCollapserSection-buttonContainer',\n labelContainer: 'apl-solutionCardHeaderCollapserSection-labelContainer',\n separator: 'apl-solutionCardHeaderCollapserSection-separator',\n solutionIcon: 'apl-solutionCardHeaderCollapserSection-solutionIcon',\n contentFeedback: 'apl-solutionCardHeaderCollapserSection-contentFeedback',\n};\nexport const useClassNames = ({ solutionTypeIconProps, importanceLevel, }) => {\n const theme = useTheme();\n const themeImportanceLevelColor = useImportanceLevelColor(importanceLevel);\n return React.useMemo(() => mergeStyleSets({\n root: [\n classNames.root,\n {\n minWidth: '256px',\n width: '100%',\n maxWidth: '100%',\n border: 0,\n padding: 0,\n maxHeight: '56px',\n selectors: {\n '.ms-Button-flexContainer': {\n alignItems: 'center',\n justifyContent: 'flex-start',\n },\n [getMediaQuery({ min: ScreenWidthMinLarge })]: {\n maxWidth: '256px',\n },\n },\n minHeight: '56px',\n background: theme.palette.white,\n },\n ],\n minRoot: [\n classNames.minRoot,\n {\n minWidth: '60px',\n maxWidth: '100%',\n border: 0,\n padding: 0,\n maxHeight: '56px',\n selectors: {\n '.ms-Button-flexContainer': {\n alignItems: 'center',\n justifyContent: 'flex-start',\n },\n [getMediaQuery({ min: ScreenWidthMinLarge })]: {\n maxWidth: '256px',\n },\n },\n minHeight: '56px',\n },\n ],\n buttonContainer: [\n classNames.buttonContainer,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n selectors: {\n ['> :not(:first-child)']: {\n paddingLeft: '16px',\n },\n },\n paddingLeft: `16px`,\n },\n ],\n labelContainer: [\n classNames.labelContainer,\n {\n display: 'flex',\n flexFlow: 'column wrap',\n alignItems: 'flex-start',\n textAlign: 'left',\n padding: 0,\n },\n ],\n solutionIcon: [\n classNames.solutionIcon,\n {\n color: importanceLevel\n ? themeImportanceLevelColor\n : solutionTypeIconProps\n ? solutionTypeIconProps.color\n : undefined,\n fontSize: '16px',\n },\n ],\n contentFeedback: [classNames.contentFeedback, { alignSelf: 'flex-end' }],\n separator: {\n margin: '8px 0',\n minWidth: 0,\n maxWidth: '1px',\n width: 'calc((100% - 546px))',\n backgroundColor: theme.palette.neutralLight,\n },\n }), [theme]);\n};\n","import React from 'react';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { CompoundButton } from '@fluentui/react/lib/Button';\nimport { Icon } from '@fluentui/react/lib/Icon';\nimport { FontWeights } from '@fluentui/react/lib/Styling';\nimport { useClassNames } from './CollapserSection.styles';\nexport function SolutionCardHeaderCollapserSection(props) {\n const { title, subTitle, solutionTypeIconProps, isCollapsed, toggleCollapse } = props;\n const classNames = useClassNames(props);\n return (React.createElement(CompoundButton, { \"data-testid\": \"solutionCardHeaderButton\", \"aria-expanded\": !isCollapsed, onClick: () => {\n if (toggleCollapse) {\n toggleCollapse(!isCollapsed);\n }\n }, className: title ? classNames.root : classNames.minRoot, title: `${isCollapsed ? 'Expand' : 'Collapse'} ${title}` },\n React.createElement(\"div\", { className: classNames.buttonContainer },\n React.createElement(Icon, { iconName: isCollapsed ? 'ChevronRight' : 'ChevronDown' }),\n solutionTypeIconProps && React.createElement(Icon, Object.assign({}, solutionTypeIconProps, { className: classNames.solutionIcon })),\n React.createElement(\"div\", { className: classNames.labelContainer },\n React.createElement(Text, { styles: { root: { fontWeight: FontWeights.semibold, textAlign: 'left' } } }, title),\n subTitle && React.createElement(Text, { styles: { root: { textAlign: 'left' } } }, subTitle)))));\n}\n","import { FontWeights, mergeStyleSets, ScreenWidthMinLarge } from '@fluentui/react/lib/Styling';\nimport { getMediaQuery } from '../../../../Styling/MediaQueries';\nimport { useHeaderSectionStyle } from '../../AplSolutionCardHeader.styles';\nconst classNames = {\n root: 'apl-solutionCardHeaderTitleSection',\n headerText: 'apl-solutionCardHeaderTitleSection-headerText',\n};\nexport const useClassNames = ({ styles, hasAction, }) => {\n const headerSection = useHeaderSectionStyle(hasAction);\n return mergeStyleSets({\n root: [\n classNames.root,\n {\n display: 'flex',\n margin: '0 20px',\n flexFlow: 'column nowrap',\n justifyContent: 'center',\n maxWidth: 'calc(100% - 110px)',\n flexGrow: 1,\n selectors: Object.assign({ [getMediaQuery({ min: ScreenWidthMinLarge })]: {\n maxWidth: !hasAction ? 'calc(100% - 300px)' : 'calc(100% - 410px)',\n } }, headerSection),\n },\n ],\n headerText: [\n classNames.headerText,\n {\n display: 'block',\n whiteSpace: 'noWrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontWeight: FontWeights.semibold,\n },\n ],\n }, styles);\n};\n","import React from 'react';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { Link } from '@fluentui/react/lib/Link';\nimport { useClassNames } from './TitleSection.styles';\nfunction SolutionCardHeaderTitleSection(props) {\n const { title, subTitle } = props;\n const classNames = useClassNames(props);\n let Title;\n if (title.href) {\n Title = (React.createElement(Link, { href: title.href, target: \"_blank\", onClick: title.onTitleSectionLinkClick }, title.text));\n }\n else {\n Title = title.text;\n }\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(Text, { className: classNames.headerText }, Title),\n subTitle && (React.createElement(Text, { block: true, nowrap: true }, subTitle))));\n}\nexport { SolutionCardHeaderTitleSection };\n","import React from 'react';\nimport { DefaultButton, IconButton } from '@fluentui/react/lib/Button';\nimport { OverflowSet } from '@fluentui/react/lib/OverflowSet';\nimport { ScreenWidthMinLarge } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nimport { getMediaQuery } from '../../../../Styling/MediaQueries';\nimport { headerButtonItemsGap, topBorderGutter } from '../../AplSolutionCardHeader.styles';\nfunction SolutionCardHeaderActionSection({ items }) {\n const overflowItems = items.map((item, index) => ({\n key: `aplsolutioncardheaderaction_${item.text}_${index}`,\n text: item.text,\n onClick: item.onClick,\n }));\n const onRenderItem = (item) => {\n return React.createElement(DefaultButton, { role: \"menuitem\", text: item.text, onClick: item.onClick });\n };\n const theme = useTheme();\n return (React.createElement(OverflowSet, { role: \"menubar\", onRenderOverflowButton: (items) => (React.createElement(IconButton, { role: \"menuitem\", title: \"card options\", menuIconProps: { iconName: 'More' }, menuProps: { items: items } })), items: (overflowItems === null || overflowItems === void 0 ? void 0 : overflowItems.length) ? [overflowItems[0]] : [], overflowItems: (overflowItems === null || overflowItems === void 0 ? void 0 : overflowItems.length) ? overflowItems.slice(1) : [], onRenderItem: onRenderItem, styles: {\n root: {\n alignItems: 'center',\n selectors: {\n [getMediaQuery({ max: ScreenWidthMinLarge })]: {\n padding: '10px 0',\n paddingLeft: `calc((${headerButtonItemsGap} * 3) + (${theme.fonts.medium.fontSize} * 3) - ${topBorderGutter})`,\n },\n },\n },\n } }));\n}\nexport { SolutionCardHeaderActionSection };\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { useHeaderStyles } from './AplSolutionCardHeader.styles';\nimport { SolutionCardHeaderCollapserSection } from './Sections/CollapserSection/CollapserSection';\nimport { SolutionCardHeaderTitleSection } from './Sections/TitleSection/TitleSection';\nimport { SolutionCardHeaderActionSection } from './Sections/ActionSection/SolutionCardActionSection';\nfunction AplSolutionCardHeader(props) {\n const { collapserSectionProps, actionSectionProps, titleSectionProps, onSolutionCardLoaded, hideSubtitleOnExpand, groupHeaderProps, } = props;\n React.useEffect(() => {\n if (onSolutionCardLoaded) {\n onSolutionCardLoaded();\n }\n }, []);\n const headerClassNames = useHeaderStyles(props);\n return (React.createElement(\"div\", { className: headerClassNames.root, \"aria-setsize\": groupHeaderProps === null || groupHeaderProps === void 0 ? void 0 : groupHeaderProps.ariaSetSize, \"aria-posinset\": groupHeaderProps === null || groupHeaderProps === void 0 ? void 0 : groupHeaderProps.ariaPosInSet, \"data-is-focusable\": true },\n collapserSectionProps && renderCollapserSection(collapserSectionProps),\n collapserSectionProps && collapserSectionProps.title && React.createElement(\"div\", { className: headerClassNames.separator }),\n titleSectionProps &&\n renderTitleSection(Object.assign(Object.assign({}, titleSectionProps), { hasAction: !!actionSectionProps }), !(collapserSectionProps === null || collapserSectionProps === void 0 ? void 0 : collapserSectionProps.isCollapsed), hideSubtitleOnExpand),\n actionSectionProps && renderActionsSection(actionSectionProps)));\n}\nfunction renderCollapserSection(collapserSectionProps) {\n return React.createElement(SolutionCardHeaderCollapserSection, Object.assign({}, collapserSectionProps));\n}\nfunction renderTitleSection(titleSectionProps, isExpanded, hideSubtitleOnExpand) {\n const hideSubtitle = hideSubtitleOnExpand && isExpanded;\n if (!hideSubtitle) {\n return React.createElement(SolutionCardHeaderTitleSection, Object.assign({}, titleSectionProps));\n }\n else {\n // subTitle is extracted out to exclude from the props sent to the `SolutionCardHeaderTitleSection` component\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { subTitle } = titleSectionProps, otherTitleSectionProps = __rest(titleSectionProps, [\"subTitle\"]);\n return React.createElement(SolutionCardHeaderTitleSection, Object.assign({}, otherTitleSectionProps));\n }\n}\nfunction renderActionsSection(actionSectionProps) {\n return React.createElement(SolutionCardHeaderActionSection, Object.assign({}, actionSectionProps));\n}\nexport { AplSolutionCardHeader };\n","export var AplDiagnosticExecutionSummaryStatus;\n(function (AplDiagnosticExecutionSummaryStatus) {\n AplDiagnosticExecutionSummaryStatus[AplDiagnosticExecutionSummaryStatus[\"Running\"] = 0] = \"Running\";\n AplDiagnosticExecutionSummaryStatus[AplDiagnosticExecutionSummaryStatus[\"Succeeded\"] = 1] = \"Succeeded\";\n AplDiagnosticExecutionSummaryStatus[AplDiagnosticExecutionSummaryStatus[\"Failed\"] = 2] = \"Failed\";\n})(AplDiagnosticExecutionSummaryStatus || (AplDiagnosticExecutionSummaryStatus = {}));\n","import React from 'react';\nimport { useClassNames } from './AplSolutionCardItem.styles';\nimport { AplSolutionCardContent } from '../SolutionCardContent/AplSolutionCardContent';\nimport { AplSolutionCardHeader } from '../SolutionCardHeader/AplSolutionCardHeader';\nimport { useSolutionCardContext, useSolutionCardOpen } from '../SolutionCardContext';\nimport { useId } from '../../Utils/useId';\n/**\n * Component to render each item for a solution type following the ASEP design patterns.\n * @param props {IAplSolutionCardItemProps}\n * @returns {React.ReactElement}\n */\nexport function AplSolutionCardItem(props) {\n var _a;\n const classNames = useClassNames(props);\n const { toggleCollapse, isCollapsed } = useSolutionCardItem(props);\n return (React.createElement(\"div\", { role: \"listitem\", className: classNames.root },\n React.createElement(AplSolutionCardHeader, Object.assign({}, props.headerProps, { collapserSectionProps: Object.assign(Object.assign({}, (_a = props === null || props === void 0 ? void 0 : props.headerProps) === null || _a === void 0 ? void 0 : _a.collapserSectionProps), { toggleCollapse,\n isCollapsed, importanceLevel: props.importanceLevel }), onSolutionCardLoaded: () => {\n props.eventsFunnel && props.eventsFunnel('loaded', props);\n } })),\n !isCollapsed && React.createElement(AplSolutionCardContent, Object.assign({}, props.contentProps, { importanceLevel: props.importanceLevel }))));\n}\nfunction useSolutionCardItem(props) {\n const { defaultOpened, eventsFunnel, isOpened, onToggle } = props;\n const expandedId = useId();\n const isExpanded = useSolutionCardOpen(expandedId, defaultOpened === true);\n const { setItemClosed, setItemOpen } = useSolutionCardContext();\n const toggleCollapse = React.useCallback((collapsed) => {\n if (collapsed) {\n setItemClosed(expandedId);\n onToggle === null || onToggle === void 0 ? void 0 : onToggle(true);\n }\n else {\n onToggle === null || onToggle === void 0 ? void 0 : onToggle(false);\n eventsFunnel === null || eventsFunnel === void 0 ? void 0 : eventsFunnel('opened', props);\n setItemOpen(expandedId);\n }\n }, [expandedId, eventsFunnel]);\n return {\n // isOpened makes the component a controlled component which discards the state maintained within it.\n isCollapsed: isOpened === undefined ? !isExpanded : !isOpened,\n toggleCollapse,\n };\n}\n","import React from 'react';\nimport { SolutionCardContextProvider } from './SolutionCardContext';\nimport { AplSolutionCardItem } from './SolutionCardItem/AplSolutionCardItem';\n/**\n * Solution Card component which adheres to the ASEP design patterns for cards.\n * @param props {AplSolutionCardProps}\n * @returns {React.ReactElement}\n */\nexport function AplSolutionCard(props) {\n const { items, eventsFunnel } = props;\n return (React.createElement(SolutionCardContextProvider, null,\n React.createElement(\"div\", { role: \"list\" }, items === null || items === void 0 ? void 0 : items.map((item, index) => (React.createElement(AplSolutionCardItem, Object.assign({ key: index }, item, { eventsFunnel: eventsFunnel })))))));\n}\n","import { useEffect, useRef } from 'react';\nfunction makeCancellable(promise) {\n let isCancelled = false;\n const wrappedPromise = new Promise((resolve, reject) => {\n promise\n .then((val) => (isCancelled ? reject({ isCancelled }) : resolve(val)))\n .catch((error) => (isCancelled ? reject({ isCancelled }) : reject(error)));\n });\n return {\n promise: wrappedPromise,\n cancel() {\n isCancelled = true;\n },\n };\n}\n/**\n * Utility to create cancellable promises which are cancelled or rejected if the component is unmounted\n * use the function cancellablePromise to wrap the promise and check for isCancelled flag in rejection and avoid mutating the state\n * Needs more work to generalize it further\n */\nfunction useCancellablePromise(deps = []) {\n const promises = useRef([]);\n useEffect(() => {\n promises.current = promises.current || [];\n return () => {\n promises.current.forEach((p) => p.cancel());\n promises.current = [];\n };\n }, deps);\n function cancellablePromise(p) {\n const cPromise = makeCancellable(p);\n promises.current.push(cPromise);\n return cPromise.promise;\n }\n return { cancellablePromise };\n}\nexport { useCancellablePromise };\n","import React from 'react';\nimport { useId } from '../../Utils/useId';\n/**\n * PIE Design system's empty illustration\n */\nfunction EmptyIllustrationSvg() {\n const paint0 = useId('paint0_');\n const paint1 = useId('paint1_');\n const paint2 = useId('paint2_');\n const paint3 = useId('paint3_');\n const paint4 = useId('paint4_');\n const paint5 = useId('paint5_');\n const paint6 = useId('paint6_');\n const paint7 = useId('paint7_');\n const paint8 = useId('paint8_');\n const paint9 = useId('paint9_');\n return (React.createElement(\"svg\", { width: \"121\", height: \"99\", viewBox: \"0 0 121 99\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M60.9401 94.6351L63.1921 92.0193L61.6908 91.272L54.9349 92.393L54.1843 92.0193L52.683 92.7667L59.9833 96.4009L61.4005 95.6441C61.4722 95.6057 61.5319 95.5485 61.5731 95.4786C61.6143 95.4088 61.6355 95.329 61.6343 95.248C61.6331 95.167 61.6096 95.0879 61.5664 95.0192C61.5231 94.9506 61.4618 94.8951 61.389 94.8589L60.9401 94.6351Z\", fill: `url(#${paint0})` }),\n React.createElement(\"path\", { d: \"M60.6669 95.1798L60.227 95.6556C60.214 95.6486 60.2025 95.6412 60.1895 95.6347L55.2562 93.1788C54.8906 93.022 54.4966 92.9412 54.0985 92.9412C53.7003 92.9412 53.3064 93.022 52.9407 93.1788L48.008 95.6347C47.9944 95.6412 47.9829 95.6486 47.9704 95.6556L47.5305 95.1798V95.7279C47.5305 95.9371 47.6897 96.1459 48.008 96.3043L52.9407 98.7602C53.3064 98.917 53.7003 98.9979 54.0985 98.9979C54.4966 98.9979 54.8906 98.917 55.2562 98.7602L60.1895 96.3043C60.5078 96.1459 60.6669 95.9371 60.6669 95.7279V95.1798Z\", fill: `url(#${paint1})` }),\n React.createElement(\"path\", { d: \"M52.9412 92.1481C53.3068 91.9913 53.7007 91.9104 54.0987 91.9104C54.4968 91.9104 54.8906 91.9913 55.2562 92.1481L60.1895 94.6039C60.826 94.9208 60.826 95.4395 60.1895 95.7564L55.2562 98.2123C54.8906 98.3691 54.4968 98.4499 54.0987 98.4499C53.7007 98.4499 53.3068 98.3691 52.9412 98.2123L48.008 95.7564C47.3714 95.4395 47.3714 94.9208 48.008 94.6039L52.9412 92.1481Z\", fill: \"#FB7F51\" }),\n React.createElement(\"path\", { d: \"M52.5544 90.9002C53.0421 91.1094 53.5676 91.2173 54.0987 91.2173C54.6298 91.2173 55.1553 91.1094 55.6431 90.9002C55.9055 90.7928 56.1183 90.5919 56.2401 90.3367L54.8263 86.4189H53.3701L51.9569 90.3372C52.0786 90.5924 52.2917 90.7932 52.5544 90.9002Z\", fill: `url(#${paint2})` }),\n React.createElement(\"path\", { d: \"M57.6863 94.3461L56.9357 92.2664C56.7504 92.499 56.5126 92.6847 56.2416 92.8085C55.5647 93.0989 54.8353 93.2487 54.0982 93.2487C53.3611 93.2487 52.6318 93.0989 51.9549 92.8085C51.6835 92.6847 51.4454 92.4986 51.2603 92.2654L50.5071 94.353C50.2869 94.9275 50.6212 95.5454 51.508 95.9878C52.3256 96.3384 53.2065 96.5192 54.0967 96.5192C54.9869 96.5192 55.8678 96.3384 56.6855 95.9878C57.5792 95.5434 57.9125 94.9225 57.6863 94.3461Z\", fill: `url(#${paint3})` }),\n React.createElement(\"path\", { d: \"M51.9554 92.8085C52.6323 93.0989 53.3616 93.2487 54.0987 93.2487C54.8358 93.2487 55.5652 93.0989 56.2421 92.8085C56.5131 92.6847 56.7509 92.499 56.9362 92.2664L56.2401 90.3367C56.1183 90.5919 55.9055 90.7928 55.6431 90.9002C55.1553 91.1094 54.6298 91.2173 54.0987 91.2173C53.5676 91.2173 53.0421 91.1094 52.5544 90.9002C52.2916 90.7927 52.0787 90.5914 51.9574 90.3357L51.2613 92.2639C51.4461 92.4976 51.684 92.6842 51.9554 92.8085Z\", fill: \"white\" }),\n React.createElement(\"path\", { d: \"M53.5808 86.1939C53.7442 86.1237 53.9204 86.0874 54.0985 86.0874C54.2765 86.0874 54.4527 86.1237 54.6162 86.1939C54.666 86.2127 54.7108 86.2425 54.7473 86.281C54.7839 86.3196 54.811 86.366 54.8268 86.4166C54.8469 86.5213 54.7768 86.6294 54.6162 86.7091C54.4527 86.7794 54.2765 86.8156 54.0985 86.8156C53.9204 86.8156 53.7442 86.7794 53.5808 86.7091C53.4221 86.6299 53.3521 86.5228 53.3701 86.4191C53.3853 86.3679 53.4123 86.3209 53.4488 86.2819C53.4854 86.2428 53.5306 86.2127 53.5808 86.1939Z\", fill: \"#FB7F51\" }),\n React.createElement(\"path\", { d: \"M13.4116 70.9735L15.6635 68.3577L14.1622 67.6104L7.4064 68.7314L6.65575 68.3577L5.15445 69.1051L12.4548 72.7393L13.872 71.983C13.9436 71.9446 14.0034 71.8873 14.0446 71.8175C14.0859 71.7476 14.1071 71.6678 14.1059 71.5868C14.1048 71.5058 14.0814 71.4266 14.0382 71.3579C13.995 71.2892 13.9337 71.2337 13.861 71.1973L13.4116 70.9735Z\", fill: `url(#${paint4})` }),\n React.createElement(\"path\", { d: \"M13.1363 71.5185L12.6965 71.9939C12.684 71.9869 12.6724 71.9799 12.6589 71.9729L7.72567 69.5176C7.36016 69.3605 6.96626 69.2795 6.56817 69.2795C6.17008 69.2795 5.77619 69.3605 5.41067 69.5176L0.477412 71.9729C0.463901 71.9799 0.452391 71.9869 0.43988 71.9939L0 71.5185V72.0666C0 72.2754 0.159137 72.4842 0.477412 72.6426L5.41067 75.0985C5.77625 75.2553 6.17012 75.3362 6.56817 75.3362C6.96623 75.3362 7.3601 75.2553 7.72567 75.0985L12.6609 72.6446C12.9792 72.4861 13.1383 72.2774 13.1383 72.0686L13.1363 71.5185Z\", fill: `url(#${paint5})` }),\n React.createElement(\"path\", { d: \"M5.41067 68.4862C5.77625 68.3294 6.17012 68.2485 6.56817 68.2485C6.96623 68.2485 7.3601 68.3294 7.72567 68.4862L12.6589 70.9421C13.2955 71.259 13.2955 71.7776 12.6589 72.0945L7.72567 74.5504C7.3601 74.7072 6.96623 74.7881 6.56817 74.7881C6.17012 74.7881 5.77625 74.7072 5.41067 74.5504L0.477412 72.0965C-0.159137 71.7796 -0.159137 71.261 0.477412 70.9441L5.41067 68.4862Z\", fill: \"#FB7F51\" }),\n React.createElement(\"path\", { d: \"M5.02384 67.2391C5.51166 67.4483 6.03725 67.5563 6.56842 67.5563C7.0996 67.5563 7.62519 67.4483 8.11301 67.2391C8.37437 67.1309 8.58619 66.9301 8.70752 66.6756L7.2943 62.7573H5.83954L4.42632 66.6756C4.54799 66.931 4.76108 67.1319 5.02384 67.2391Z\", fill: `url(#${paint6})` }),\n React.createElement(\"path\", { d: \"M10.1558 70.6844L9.40512 68.6047C9.22003 68.8376 8.98217 69.0236 8.71102 69.1473C8.0341 69.4378 7.30477 69.5876 6.56767 69.5876C5.83058 69.5876 5.10124 69.4378 4.42432 69.1473C4.15302 69.0234 3.91501 68.8373 3.72972 68.6042L2.97907 70.6919C2.75938 71.2664 3.09317 71.8842 3.97994 72.3262C4.79751 72.677 5.67841 72.8579 6.56867 72.8579C7.45894 72.8579 8.33984 72.677 9.15741 72.3262C10.0487 71.8822 10.382 71.2609 10.1558 70.6844Z\", fill: `url(#${paint7})` }),\n React.createElement(\"path\", { d: \"M4.42482 69.1474C5.10174 69.4378 5.83108 69.5876 6.56817 69.5876C7.30527 69.5876 8.0346 69.4378 8.71153 69.1474C8.98267 69.0236 9.22053 68.8377 9.40562 68.6048L8.70752 66.6756C8.5857 66.9305 8.37312 67.1313 8.11101 67.2391C7.62319 67.4484 7.0976 67.5563 6.56642 67.5563C6.03525 67.5563 5.50966 67.4484 5.02184 67.2391C4.75909 67.1316 4.54616 66.9303 4.42482 66.6746L3.72872 68.6033C3.91432 68.8369 4.15287 69.0233 4.42482 69.1474Z\", fill: \"white\" }),\n React.createElement(\"path\", { d: \"M6.05023 62.5302C6.21385 62.4602 6.39008 62.4241 6.56818 62.4241C6.74627 62.4241 6.9225 62.4602 7.08612 62.5302C7.13584 62.549 7.1806 62.5788 7.21702 62.6174C7.25343 62.656 7.28055 62.7023 7.2963 62.7529C7.31632 62.8575 7.24626 62.9662 7.08612 63.0459C6.9225 63.1159 6.74627 63.152 6.56818 63.152C6.39008 63.152 6.21385 63.1159 6.05023 63.0459C5.89159 62.9667 5.82153 62.8595 5.83955 62.7554C5.85502 62.7043 5.88206 62.6575 5.91859 62.6184C5.95511 62.5794 6.00015 62.5492 6.05023 62.5302Z\", fill: \"#FB7F51\" }),\n React.createElement(\"path\", { d: \"M45.0514 88.5685L18.8483 75.5239C18.6363 75.4329 18.4078 75.386 18.1769 75.386C17.9461 75.386 17.7176 75.4329 17.5056 75.5239L12.9757 77.7764L11.8948 77.5413V78.5109C11.8948 78.6319 11.9874 78.753 12.172 78.8452L40.8548 93.124C41.0669 93.215 41.2954 93.2619 41.5264 93.2619C41.7573 93.2619 41.9858 93.215 42.1979 93.124L47.5316 90.4688C47.7162 90.3767 47.8088 90.2556 47.8088 90.1345V89.1654L45.0514 88.5685Z\", fill: \"#0078D4\" }),\n React.createElement(\"path\", { d: \"M18.8485 74.5544C18.6364 74.4637 18.408 74.417 18.1772 74.417C17.9464 74.417 17.718 74.4637 17.5059 74.5544L12.1723 77.2101C11.8029 77.3939 11.8029 77.6944 12.1723 77.8782L40.855 92.1576C41.0671 92.2485 41.2957 92.2954 41.5266 92.2954C41.7576 92.2954 41.9861 92.2485 42.1982 92.1576L47.5318 89.5019C47.9011 89.3185 47.9011 89.0176 47.5318 88.8337L18.8485 74.5544Z\", fill: `url(#${paint8})` }),\n React.createElement(\"path\", { d: \"M20.843 78.8728C21.7563 78.4179 21.5301 77.5614 20.3426 76.969C19.155 76.3766 17.4326 76.264 16.5198 76.7199C15.607 77.1758 15.8327 78.0308 17.0202 78.6237C18.2077 79.2166 19.9297 79.3267 20.843 78.8728Z\", fill: \"#0078D4\" }),\n React.createElement(\"path\", { d: \"M44.1747 89.502C44.544 89.3182 44.544 89.0177 44.1747 88.8339L24.321 78.9496C24.109 78.8587 23.8805 78.8118 23.6497 78.8118C23.4188 78.8118 23.1904 78.8587 22.9783 78.9496L21.0001 79.9347C20.6308 80.118 20.6308 80.419 21.0001 80.6028L40.7942 90.4612C41.1636 90.645 41.4723 90.797 41.4803 90.798C41.4883 90.799 41.5279 90.805 41.5279 90.8104C41.5279 90.8159 41.8281 90.6699 42.1995 90.4861L44.1747 89.502Z\", fill: \"#0078D4\" }),\n React.createElement(\"path\", { d: \"M41.1015 68.8306L81.2962 48.5598L121 68.3174L80.8048 88.5881L41.1015 68.8306Z\", fill: `url(#${paint9})` }),\n React.createElement(\"path\", { d: \"M15.4874 11.693L7.48046 7.70703V51.5529C7.54496 52.7357 7.90638 53.8836 8.53165 54.8914C9.15692 55.8992 10.0261 56.7347 11.0596 57.3216L75.9606 89.6306C76.3084 89.8343 76.6985 89.956 77.1009 89.9864C77.5033 90.0168 77.9074 89.9551 78.2821 89.8059C79.0458 89.4532 79.5412 88.6301 79.5412 87.4268V43.5809L15.4874 11.693Z\", fill: \"#EAEAEA\" }),\n React.createElement(\"path\", { d: \"M75.9621 33.8267L15.4874 3.721L14.3364 3.14901L11.0596 1.51775C10.0757 1.02797 9.18193 1.03046 8.53287 1.42856C7.88381 1.82666 7.47896 2.62436 7.47896 3.7205V7.70649L15.4859 11.6925L79.5412 43.5804V39.5944C79.4767 38.4117 79.1152 37.264 78.49 36.2564C77.8647 35.2488 76.9955 34.4134 75.9621 33.8267Z\", fill: \"white\" }),\n React.createElement(\"path\", { d: \"M59.918 31.1966C60.5983 30.6677 60.4434 29.3382 59.5721 28.2271C58.7007 27.1159 57.4428 26.6439 56.7625 27.1728C56.0822 27.7016 56.237 29.0311 57.1084 30.1423C57.9798 31.2534 59.2376 31.7255 59.918 31.1966Z\", fill: \"#949494\" }),\n React.createElement(\"path\", { d: \"M66.7217 34.6993C67.4021 34.1704 67.2472 32.8409 66.3758 31.7298C65.5045 30.6186 64.2466 30.1466 63.5663 30.6755C62.8859 31.2043 63.0408 32.5338 63.9122 33.645C64.7835 34.7561 66.0414 35.2281 66.7217 34.6993Z\", fill: \"#DCDCDC\" }),\n React.createElement(\"path\", { d: \"M73.6478 38.3511C74.3281 37.8223 74.1733 36.4928 73.3019 35.3816C72.4305 34.2705 71.1726 33.7984 70.4923 34.3273C69.812 34.8562 69.9668 36.1857 70.8382 37.2968C71.7096 38.408 72.9675 38.88 73.6478 38.3511Z\", fill: \"#EDEDED\" }),\n React.createElement(\"path\", { d: \"M15.4874 11.693L7.48046 7.70703V51.5529C7.54496 52.7357 7.90638 53.8836 8.53165 54.8914C9.15692 55.8992 10.0261 56.7347 11.0596 57.3216L75.9606 89.6306C76.3084 89.8343 76.6985 89.956 77.1009 89.9864C77.5033 90.0168 77.9074 89.9551 78.2821 89.8059C79.0458 89.4532 79.5412 88.6301 79.5412 87.4268V43.5809L15.4874 11.693Z\", fill: \"#EAEAEA\" }),\n React.createElement(\"path\", { d: \"M79.5427 43.5809V87.4268C79.5427 88.6301 79.0473 89.4532 78.2836 89.806V89.8284L80.8073 88.5927L80.8038 88.5882C81.4744 88.1966 81.8957 87.3969 81.8957 86.2798V42.5007L79.5427 43.5809Z\", fill: \"#DCDCDC\" }),\n React.createElement(\"path\", { d: \"M78.3176 32.6793L73.8913 30.476L13.837 0.581095L13.4151 0.370834C13.0552 0.156057 12.6485 0.0311099 12.2296 0.0066445C11.8107 -0.0178209 11.3922 0.0589211 11.0095 0.230328L10.996 0.219865L8.53387 1.42862C9.18443 1.03002 10.0767 1.03002 11.0606 1.5178L14.3379 3.14907L15.4889 3.72106L75.9621 33.8267C76.9959 34.4133 77.8654 35.2487 78.4909 36.2564C79.1165 37.2641 79.4781 38.412 79.5427 39.595V43.5809L81.8947 42.5002V38.448C81.8306 37.2653 81.4695 36.1175 80.8446 35.1097C80.2197 34.1019 79.3508 33.2663 78.3176 32.6793Z\", fill: \"#EAEAEA\" }),\n React.createElement(\"path\", { d: \"M75.9621 33.8267L15.4874 3.721L14.3364 3.14901L11.0596 1.51775C10.0757 1.02797 9.18193 1.03046 8.53287 1.42856C7.88381 1.82666 7.47896 2.62436 7.47896 3.7205V7.70649L15.4859 11.6925L79.5412 43.5804V39.5944C79.4767 38.4117 79.1152 37.264 78.49 36.2564C77.8647 35.2488 76.9955 34.4134 75.9621 33.8267Z\", fill: \"white\" }),\n React.createElement(\"path\", { d: \"M59.918 31.1966C60.5983 30.6677 60.4434 29.3382 59.5721 28.2271C58.7007 27.1159 57.4428 26.6439 56.7625 27.1728C56.0822 27.7016 56.237 29.0311 57.1084 30.1423C57.9798 31.2534 59.2376 31.7255 59.918 31.1966Z\", fill: \"#949494\" }),\n React.createElement(\"path\", { d: \"M66.7217 34.6993C67.4021 34.1704 67.2472 32.8409 66.3758 31.7298C65.5045 30.6186 64.2466 30.1466 63.5663 30.6755C62.8859 31.2043 63.0408 32.5338 63.9122 33.645C64.7835 34.7561 66.0414 35.2281 66.7217 34.6993Z\", fill: \"#DCDCDC\" }),\n React.createElement(\"path\", { d: \"M73.6478 38.3511C74.3281 37.8223 74.1733 36.4928 73.3019 35.3816C72.4305 34.2705 71.1726 33.7984 70.4923 34.3273C69.812 34.8562 69.9668 36.1857 70.8382 37.2968C71.7096 38.408 72.9675 38.88 73.6478 38.3511Z\", fill: \"#EDEDED\" }),\n React.createElement(\"path\", { d: \"M62.1612 50.8712L21.7037 30.732C21.527 30.6275 21.3281 30.5659 21.123 30.5521C20.918 30.5382 20.7125 30.5725 20.5232 30.6523L19.3902 31.2003L22.8587 34.1435V42.4269C22.8911 43.0183 23.0719 43.5922 23.3848 44.0961C23.6976 44.5999 24.1324 45.0175 24.6493 45.3107L52.1731 59.0126L62.1622 67.4868L63.4223 66.862C63.6031 66.7333 63.7471 66.56 63.8401 66.359C63.9332 66.1581 63.972 65.9365 63.9527 65.716V53.758C63.9207 53.166 63.7399 52.5914 63.4269 52.087C63.1139 51.5826 62.6787 51.1646 62.1612 50.8712Z\", fill: \"#DCDCDC\" }),\n React.createElement(\"path\", { d: \"M20.5377 31.3059C19.5529 30.8157 18.7472 31.3114 18.7472 32.4076V44.3655C18.7795 44.9571 18.9603 45.5311 19.2732 46.035C19.586 46.5389 20.0208 46.9566 20.5377 47.2499L60.9947 67.3906C61.9795 67.8804 62.7852 67.3846 62.7852 66.2885V54.3305C62.7532 53.739 62.5724 53.165 62.2595 52.6611C61.9467 52.1572 61.5118 51.7396 60.9947 51.4466L20.5377 31.3059Z\", fill: \"white\" }),\n React.createElement(\"path\", { d: \"M29.3784 41.2358C27.7139 40.4072 26.3528 41.0863 26.3528 42.742C26.3528 44.3976 27.7139 46.432 29.3774 47.2601C31.0408 48.0882 32.4025 47.4096 32.403 45.7539C32.4035 44.0982 31.0423 42.0638 29.3784 41.2358Z\", fill: \"#DCDCDC\" }),\n React.createElement(\"g\", { opacity: \"0.65\" },\n React.createElement(\"path\", { opacity: \"0.65\", d: \"M39.8819 46.6039C38.2175 45.7753 36.8558 46.4544 36.8558 48.1101C36.8558 49.7658 38.217 51.8006 39.8804 52.6287C41.5439 53.4568 42.9061 52.7782 42.9066 51.1225C42.9071 49.4669 41.5459 47.4335 39.8819 46.6039Z\", fill: \"#DCDCDC\" })),\n React.createElement(\"g\", { opacity: \"0.45\" },\n React.createElement(\"path\", { opacity: \"0.35\", d: \"M50.914 51.9496C49.2495 51.1215 47.8879 51.8002 47.8879 53.4563C47.8879 55.1125 49.249 57.1464 50.913 57.9745C52.5769 58.8026 53.9381 58.1239 53.9386 56.4683C53.9391 54.8126 52.5779 52.7782 50.914 51.9496Z\", fill: \"#DCDCDC\" })),\n React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: paint0, x1: \"53.2009\", y1: \"95.3307\", x2: \"63.3343\", y2: \"92.3803\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#ACACAC\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"white\", stopOpacity: \"0\" })),\n React.createElement(\"linearGradient\", { id: paint1, x1: \"47.5305\", y1: \"95.9705\", x2: \"60.6669\", y2: \"95.9705\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#FB7F51\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#D83B01\" })),\n React.createElement(\"linearGradient\", { id: paint2, x1: \"55.1736\", y1: \"89.7682\", x2: \"51.3093\", y2: \"86.9006\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#D83B01\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#FB7F51\" })),\n React.createElement(\"linearGradient\", { id: paint3, x1: \"857.465\", y1: \"909.11\", x2: \"840.757\", y2: \"870.965\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#D83B01\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#FB7F51\" })),\n React.createElement(\"linearGradient\", { id: paint4, x1: \"124.233\", y1: \"805.373\", x2: \"294.882\", y2: \"704.03\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#ACACAC\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"white\", stopOpacity: \"0\" })),\n React.createElement(\"linearGradient\", { id: paint5, x1: \"0\", y1: \"948.251\", x2: \"344.882\", y2: \"948.251\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#FB7F51\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#D83B01\" })),\n React.createElement(\"linearGradient\", { id: paint6, x1: \"69.813\", y1: \"699.473\", x2: \"34.0753\", y2: \"675.922\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#D83B01\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#FB7F51\" })),\n React.createElement(\"linearGradient\", { id: paint7, x1: \"115.279\", y1: \"683.419\", x2: \"98.5673\", y2: \"645.279\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#D83B01\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#FB7F51\" })),\n React.createElement(\"linearGradient\", { id: paint8, x1: \"11.895\", y1: \"83.356\", x2: \"47.8085\", y2: \"83.356\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#2195DC\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#32B0E7\" })),\n React.createElement(\"linearGradient\", { id: paint9, x1: \"29.9904\", y1: \"89.8083\", x2: \"106.089\", y2: \"57.883\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#949494\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"white\", stopOpacity: \"0\" })))));\n}\nexport { EmptyIllustrationSvg };\n","import React from 'react';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { EmptyIllustrationSvg } from './EmptyIllustrationSvg';\nimport { useStyles } from './EmptyIllustration.styles';\nfunction EmptyIllustration(props) {\n const styles = useStyles();\n return (React.createElement(Stack, { styles: styles, tokens: { childrenGap: '10px' } },\n React.createElement(EmptyIllustrationSvg, null),\n React.createElement(Text, null, props.label)));\n}\nexport { EmptyIllustration };\n","import React from 'react';\nimport { useTheme } from '@fluentui/react';\nimport { depth } from '../../Styling/Mixins';\nimport { MaxWidgetWidth } from '../../Styling/Variables';\nexport function useStyles() {\n const theme = useTheme();\n const { palette } = theme;\n return React.useMemo(() => ({\n root: Object.assign(Object.assign({ backgroundColor: palette.white, maxWidth: MaxWidgetWidth, padding: '20px', alignItems: 'center' }, depth()), { color: palette.neutralDark }),\n }), [theme]);\n}\n","export function depth() {\n return {\n boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.1)',\n };\n}\n","import dayjs from 'dayjs';\nimport dayjsutc from 'dayjs/plugin/utc';\nimport { AdditionalInfoType } from '../Contracts/IInsight';\nimport { InstantAnswerSearchType } from '../Contracts/IInstantAnswersSearchResult';\n// All dates manipulated in UTC format\ndayjs.extend(dayjsutc);\nexport class SolutionCardMapper {\n static toOutage(sie) {\n const content = [];\n let headerTitle = '-';\n let headerService = '-';\n if (sie.Properties) {\n const { Title } = sie.Properties;\n if (Title) {\n headerTitle = Title;\n const links = [];\n links.push({\n text: sie.Properties.Title,\n href: sie.LSIUrl,\n });\n content.push({\n fieldType: 'links',\n label: 'Issue name',\n links: links,\n });\n }\n }\n if (sie.Status) {\n content.push({ fieldType: 'text', label: 'Status', text: sie.Status.Value });\n }\n if (sie.Properties) {\n const { ImpactStartTimeHumanReadable, DurationTimeHumanReadable, Service } = sie.Properties;\n if (ImpactStartTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'Start time',\n text: ImpactStartTimeHumanReadable,\n });\n }\n if (DurationTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'Impact duration',\n text: DurationTimeHumanReadable,\n });\n }\n if (Service) {\n headerService = Service;\n content.push({ fieldType: 'text', label: 'Services impacted', text: Service });\n }\n }\n if (sie.LSIID) {\n const links = [];\n links.push({\n text: sie.LSIID,\n href: sie.LSIUrl,\n });\n content.push({\n fieldType: 'links',\n label: 'IcM ID',\n links: links,\n });\n }\n if (sie.Properties) {\n const { ImpactMitigationTimeHumanReadable, Region, TrackingId, Communication } = sie.Properties;\n if (ImpactMitigationTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'Mitigation time',\n text: ImpactMitigationTimeHumanReadable,\n });\n }\n if (Region) {\n content.push({ fieldType: 'text', label: 'Regions impacted', text: Region });\n }\n if (TrackingId) {\n const links = [];\n links.push({\n text: TrackingId,\n href: sie.TrackingUrl,\n });\n content.push({\n fieldType: 'links',\n label: 'Public tracking ID',\n links: links,\n });\n }\n if (Communication) {\n content.push({\n label: 'Latest customer communication ',\n fieldType: 'customerreadycontent',\n markdown: Communication,\n });\n }\n }\n const importanceLevelMap = ['Critical', 'Warning', 'Informational'];\n let importanceLevel = importanceLevelMap[2];\n const colorMap = ['#A80000', 'D7741D', '#105E7D'];\n if (sie.AlertLevel === 'Critical') {\n importanceLevel = importanceLevelMap[0];\n }\n else if (sie.AlertLevel === 'Warning') {\n importanceLevel == importanceLevelMap[1];\n }\n const cardColor = colorMap[importanceLevelMap.indexOf(importanceLevel)];\n return {\n importanceLevel: importanceLevel,\n contentProps: {\n fields: content,\n },\n headerProps: {\n collapserSectionProps: {\n title: `${importanceLevel} outage`,\n solutionTypeIconProps: { iconName: 'Plug', color: cardColor },\n },\n titleSectionProps: {\n title: { text: headerTitle, href: sie.LSIUrl },\n subTitle: headerService,\n },\n },\n data: sie,\n };\n }\n static toAdvisory(sie) {\n const content = [];\n let headerTitle = '-';\n let headerService = '-';\n if (sie.Properties) {\n const { Title } = sie.Properties;\n if (Title) {\n headerTitle = Title;\n content.push({ fieldType: 'text', label: 'Issue name', text: Title });\n }\n }\n if (sie.Status) {\n content.push({ fieldType: 'text', label: 'Status', text: sie.Status.Value });\n }\n if (sie.Properties) {\n const { ImpactStartTimeHumanReadable, ImpactMitigationTimeHumanReadable, DurationTimeHumanReadable, Service, IncidentType, TrackingId, Communication, } = sie.Properties;\n if (ImpactStartTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'Start time',\n text: ImpactStartTimeHumanReadable,\n });\n }\n if (DurationTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'Duration',\n text: DurationTimeHumanReadable,\n });\n }\n if (Service) {\n headerService = Service;\n content.push({ fieldType: 'text', label: 'Services impacted ', text: Service });\n }\n if (ImpactMitigationTimeHumanReadable) {\n content.push({ fieldType: 'text', label: 'Mitigation time', text: ImpactMitigationTimeHumanReadable });\n }\n if (IncidentType) {\n content.push({ fieldType: 'text', label: 'Type', text: IncidentType });\n }\n if (TrackingId) {\n const links = [];\n links.push({\n text: TrackingId,\n href: sie.TrackingUrl,\n });\n content.push({\n fieldType: 'links',\n label: 'Public tracking ID',\n links: links,\n });\n }\n if (Communication) {\n content.push({\n label: 'Latest customer communication ',\n fieldType: 'customerreadycontent',\n markdown: Communication,\n });\n }\n }\n const importanceLevelMap = ['Critical', 'Warning', 'Informational'];\n let importanceLevel = importanceLevelMap[2];\n const colorMap = ['#A80000', 'D7741D', '#105E7D'];\n if (sie.AlertLevel == 'Critical') {\n importanceLevel = importanceLevelMap[0];\n }\n else if (sie.AlertLevel == 'Warning') {\n importanceLevel == importanceLevelMap[1];\n }\n const cardColor = colorMap[importanceLevelMap.indexOf(importanceLevel)];\n return {\n importanceLevel: importanceLevel,\n contentProps: {\n fields: content,\n },\n headerProps: {\n collapserSectionProps: {\n title: `${importanceLevel} advisory and maintenence`,\n solutionTypeIconProps: { iconName: 'Repair', color: cardColor },\n },\n titleSectionProps: {\n title: { text: headerTitle },\n subTitle: headerService,\n },\n },\n data: sie,\n };\n }\n static toHealth(health) {\n let titleAndSummary = '-';\n const content = [];\n if (health.Title != null && health.Summary != null) {\n titleAndSummary = health.Title + '-' + health.Summary;\n }\n else if (health.Title == null) {\n titleAndSummary = health.Summary;\n }\n else if (health.Summary == null) {\n titleAndSummary = health.Title;\n }\n content.push({ fieldType: 'text', label: 'Title', text: titleAndSummary });\n if (health.StartTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'Start time',\n text: health.StartTimeHumanReadable,\n });\n }\n if (health.EndTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'End time',\n text: health.EndTimeHumanReadable,\n });\n }\n if (health.DurationTimeHumanReadable) {\n content.push({\n fieldType: 'text',\n label: 'Duration',\n text: health.DurationTimeHumanReadable,\n });\n }\n if (health.PlatformInitiated) {\n const source = health.PlatformInitiated ? 'Platform Initiated' : 'Customer Initiated';\n content.push({ fieldType: 'text', label: 'Source', text: source });\n }\n if (health.RecommendedActions) {\n content.push({ fieldType: 'text', label: 'Recommended Actions', text: health.RecommendedActions.Message });\n }\n else {\n content.push({ fieldType: 'text', label: 'Recommended Actions', text: 'not available' });\n }\n const importanceLevelMap = ['Critical', 'Warning', 'Informational'];\n const colorMap = ['#A80000', 'D7741D', '#105E7D'];\n const importanceLevel = health.PlatformInitiated ? importanceLevelMap[0] : importanceLevelMap[2];\n const cardColor = colorMap[importanceLevelMap.indexOf(importanceLevel)];\n return {\n importanceLevel: importanceLevel,\n contentProps: {\n fields: content,\n },\n headerProps: {\n collapserSectionProps: {\n title: `${importanceLevel} resource health events`,\n solutionTypeIconProps: { iconName: 'HeartBroken', color: cardColor },\n },\n titleSectionProps: {\n title: { text: titleAndSummary || '--' },\n subTitle: health.PlatformInitiated ? 'Platform Initiated' : 'Customer Initiated',\n },\n },\n data: health,\n };\n }\n static fromInsight(insight, deeplinkHelper, context) {\n var _a, _b, _c;\n const content = [];\n if (insight.IssueCategory) {\n content.push({ fieldType: 'text', label: 'Issue category', text: insight.IssueCategory });\n }\n if ((_a = insight.Description) === null || _a === void 0 ? void 0 : _a.Value) {\n content.push({ fieldType: 'markdown', label: 'Description', markdown: insight.Description.Value });\n }\n if (insight.ImpactedResources) {\n const items = [];\n insight.ImpactedResources.forEach((resource) => {\n if (resource && resource.Uri) {\n items.push({ resourceUri: resource.Uri });\n }\n });\n if (items.length) {\n content.push({\n fieldType: 'impactedresources',\n resources: items,\n deeplinkHelper,\n label: 'Impacted Resources',\n });\n }\n }\n if (insight.RecommendedAction) {\n if (insight.RecommendedAction.Text && insight.RecommendedAction.Text.Value) {\n if (insight.RecommendedAction.Text.IsMarkdown) {\n content.push({\n label: 'Recommended action',\n fieldType: 'markdown',\n markdown: insight.RecommendedAction.Text.Value,\n });\n }\n else {\n content.push({\n label: 'Recommended action',\n fieldType: 'text',\n text: insight.RecommendedAction.Text.Value,\n });\n }\n }\n }\n const links = [];\n if (insight.Links && insight.Links.length) {\n for (const link of insight.Links) {\n if (link.AscInternalUri || link.Uri) {\n links.push({ text: link.Text, url: link.AscInternalUri || link.Uri });\n }\n }\n }\n if (links.length) {\n content.push({\n fieldType: 'internallinks',\n label: 'Links',\n items: links,\n });\n }\n if (insight.TimeStamp) {\n const generatedOn = dayjs.utc(insight.TimeStamp);\n if (generatedOn.isValid()) {\n content.push({\n fieldType: 'text',\n label: 'Generated On',\n text: generatedOn.format('MMM DD, YYYY HH:mm:ss') + ' UTC',\n });\n }\n }\n if (insight.AdditionalInformation) {\n for (const additionalInfoItemKey in insight.AdditionalInformation) {\n const additionalInfoItem = insight.AdditionalInformation[additionalInfoItemKey];\n if (additionalInfoItem.Type === AdditionalInfoType.Link &&\n (((_b = additionalInfoItem.Link) === null || _b === void 0 ? void 0 : _b.AscInternalUri) || ((_c = additionalInfoItem.Link) === null || _c === void 0 ? void 0 : _c.Uri))) {\n content.push({\n fieldType: 'links',\n label: additionalInfoItemKey,\n links: [\n {\n text: additionalInfoItem.Link.Text,\n href: additionalInfoItem.Link.AscInternalUri || additionalInfoItem.Link.Uri,\n },\n ],\n });\n }\n else if (additionalInfoItem.Text) {\n content.push({ fieldType: 'text', label: additionalInfoItemKey, text: additionalInfoItem.Text });\n }\n }\n }\n if (insight.CustomerReadyContent && insight.CustomerReadyContent.ArticleContent) {\n content.push({\n label: 'Customer ready content',\n fieldType: 'customerreadycontent',\n markdown: insight.CustomerReadyContent.ArticleContent,\n context: context,\n });\n }\n const importanceLevelMap = ['Critical', 'Warning', 'Informational'];\n const importanceLevel = importanceLevelMap[insight.ImportanceLevel];\n return {\n importanceLevel: importanceLevel,\n contentProps: {\n fields: content,\n },\n headerProps: {\n collapserSectionProps: {\n title: `${importanceLevel} insight`,\n solutionTypeIconProps: { iconName: 'LightBulb' },\n },\n titleSectionProps: {\n title: { text: insight.IssueCategory ? insight.IssueCategory : '' },\n subTitle: insight.Title,\n },\n },\n data: insight,\n };\n }\n static fromInstantAnswers(instantAnswer, onInstantAnswerLinkClick) {\n const content = [];\n let searchType = '';\n let iconName = '';\n let description = '--';\n switch (instantAnswer.SearchType) {\n case InstantAnswerSearchType.Documentation:\n searchType = 'Azure Docs';\n iconName = 'TextDocument';\n if (instantAnswer.SubTitle) {\n description = instantAnswer.SubTitle;\n }\n break;\n case InstantAnswerSearchType.Community:\n searchType = 'Community';\n iconName = 'People';\n if (instantAnswer.Source) {\n description = instantAnswer.Source;\n }\n break;\n case InstantAnswerSearchType.Support:\n searchType = 'Support Cases';\n iconName = 'Package';\n if (instantAnswer.ResultId) {\n description = 'SR #' + instantAnswer.ResultId;\n }\n break;\n case InstantAnswerSearchType.ICM:\n searchType = 'IcM';\n iconName = 'People';\n if (instantAnswer.ResultId) {\n description = 'IcM #' + instantAnswer.ResultId;\n }\n break;\n }\n if (instantAnswer.Content) {\n content.push({ fieldType: 'markdown', label: 'Preview', markdown: instantAnswer.Content });\n }\n return {\n importanceLevel: 'Informational',\n contentProps: {\n fields: content,\n },\n headerProps: {\n collapserSectionProps: {\n title: searchType,\n subTitle: `${instantAnswer.Confidence} confidence`,\n solutionTypeIconProps: { iconName },\n },\n titleSectionProps: {\n title: {\n text: instantAnswer.Title,\n href: instantAnswer.Link,\n onTitleSectionLinkClick: onInstantAnswerLinkClick && (() => onInstantAnswerLinkClick(instantAnswer)),\n },\n subTitle: description,\n },\n },\n data: instantAnswer,\n };\n }\n static fromGuidedTroubleshooterToSummary(troubleshooter, hasInstance) {\n const content = [];\n if (troubleshooter.Summary) {\n content.push({\n fieldType: 'text',\n text: troubleshooter.Summary,\n label: 'Description',\n });\n }\n const state = {\n label: 'State',\n fieldType: 'text',\n text: hasInstance ? 'In Progress' : 'Not Started',\n };\n content.push(state);\n if (troubleshooter.EstimatedTimeToComplete) {\n content.push({\n fieldType: 'text',\n text: troubleshooter.EstimatedTimeToComplete,\n label: 'Estimated time',\n });\n }\n if (troubleshooter.LastTimeUpdated) {\n const updatedOn = dayjs.utc(troubleshooter.LastTimeUpdated);\n if (updatedOn.isValid()) {\n content.push({\n fieldType: 'text',\n text: updatedOn.format('M/D/YYYY h:mm:ss A') + ' UTC',\n label: 'Last updated',\n });\n }\n }\n return {\n importanceLevel: 'Informational',\n contentProps: {\n fields: content,\n },\n headerProps: {\n collapserSectionProps: {\n title: 'Troubleshooter',\n solutionTypeIconProps: { iconName: 'Library' },\n },\n titleSectionProps: {\n title: { text: troubleshooter.SolutionName || '--' },\n subTitle: troubleshooter.Summary,\n },\n },\n data: troubleshooter,\n };\n }\n}\n","import { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { MaxWidgetWidth } from '../../Styling/Variables';\nconst classNames = {\n root: 'apl-widget',\n loader: 'apl-widget-Loader',\n};\nexport function getStyles(props) {\n const styles = {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexFlow: 'column nowrap',\n selectors: {\n '> *': {\n marginBottom: '10px',\n },\n },\n maxWidth: MaxWidgetWidth,\n },\n ],\n loader: [\n classNames.loader,\n {\n top: '50%',\n left: '50%',\n margin: 0,\n },\n ],\n };\n return mergeStyleSets(styles, props.styles);\n}\n","import React from 'react';\nimport { MessageBar, MessageBarType } from '@fluentui/react/lib/MessageBar';\nimport { Spinner, SpinnerSize } from '@fluentui/react/lib/Spinner';\nimport { getStyles } from './AplWidget.styles';\nfunction AplWidget(props) {\n const { messages, children, noItemsView, loader, role, onRenderNoResult } = props;\n const infos = messages.filter((message) => message.messageType === 'info');\n const errors = messages.filter((message) => message.messageType === 'error');\n const errorMessageListComponent = React.createElement(MessageList, { messages: errors.map((error) => error.message), messageType: \"error\" });\n const noItemsViewComponent = noItemsView ? noItemsView : 'No data to show';\n const classNames = getStyles(props);\n return (React.createElement(\"div\", { role: role, className: classNames.root },\n infos && infos.length ? React.createElement(MessageList, { messages: infos.map((info) => info.message), messageType: \"info\" }) : null,\n errors && errors.length\n ? onRenderNoResult\n ? onRenderNoResult({ errorMessages: errors.map((error) => error.message) }, () => errorMessageListComponent)\n : errorMessageListComponent\n : null,\n children ? children : null,\n !loader.isLoading && !children && !(messages === null || messages === void 0 ? void 0 : messages.length)\n ? onRenderNoResult\n ? onRenderNoResult({ errorMessages: undefined }, () => noItemsViewComponent)\n : noItemsViewComponent\n : null,\n React.createElement(\"div\", { className: classNames.loader }, loader && loader.isLoading\n ? loader.loaderView || (React.createElement(Spinner, { label: loader.text || 'Loading...', labelPosition: \"bottom\", size: SpinnerSize.large }))\n : null)));\n}\nfunction MessageList({ messages, messageType, }) {\n return (React.createElement(React.Fragment, null, messages && messages.length ? (React.createElement(MessageBar, { messageBarType: messageType === 'error' ? MessageBarType.error : MessageBarType.info }, messages.map((message, index) => (React.createElement(\"div\", { key: index }, message))))) : null));\n}\nexport { AplWidget };\n","import React from 'react';\nconst initialState = {\n formElementsByName: {},\n};\nfunction FormReducer(state = initialState, action) {\n const formElementsByName = state.formElementsByName;\n switch (action.type) {\n case 'SetFieldValue':\n return {\n formElementsByName: Object.assign(Object.assign({}, formElementsByName), { [action.payload.field]: action.payload.value }),\n };\n }\n}\nexport const AplFormContext = React.createContext({ state: initialState, dispatch: () => null });\nexport function AplFormContextProvider({ children }) {\n const [state, dispatch] = React.useReducer(FormReducer, initialState);\n return React.createElement(AplFormContext.Provider, { value: { state, dispatch } }, children);\n}\n","import React from 'react';\nimport { ChoiceGroup } from '@fluentui/react/lib/ChoiceGroup';\nimport { TextField } from '@fluentui/react/lib/TextField';\nimport { useDebouncedCallback } from '../../Utils/debounce';\nimport { AplFormContext, AplFormContextProvider } from './AplFormContext';\nfunction AplForm(props) {\n return (React.createElement(AplFormContextProvider, null,\n React.createElement(AplFormInternal, Object.assign({}, props))));\n}\n/**\n * Minimal form component implemenytation while GuidedTroubleshooter\n * Can infer only SingleChoice every other form element is rendered as a Text box\n * @param props AplFormProps\n */\nfunction AplFormInternal({ formElements, onChange }) {\n const { state } = React.useContext(AplFormContext);\n React.useEffect(() => {\n const changedFormElements = formElements.map((element) => {\n if (state.formElementsByName[element.name]) {\n element.value = state.formElementsByName[element.name];\n }\n return element;\n });\n const isFormValid = changedFormElements.find((element) => element.required && !element.value);\n onChange(changedFormElements, !isFormValid);\n }, [state]);\n return (React.createElement(\"form\", null, formElements &&\n formElements.length &&\n formElements.map((element, index) => (React.createElement(FormElement, { element: element, key: `aplFormElement_${element.name}_${index}` })))));\n}\nfunction FormElement({ element }) {\n const { state, dispatch } = React.useContext(AplFormContext);\n const currentValue = state.formElementsByName[element.name];\n const [onFormElementChange] = useDebouncedCallback((value) => {\n if (value) {\n dispatch({ type: 'SetFieldValue', payload: { field: element.name, value } });\n }\n }, 500, [element.name]);\n switch (element.formElementType) {\n case 'SingleChoice':\n return (React.createElement(\"div\", null,\n React.createElement(ChoiceGroup, { \"data-testid\": 'TroubleshooterQuestionOptions_' + element.name, name: element.name, label: element.label, options: element.options.map((option) => ({\n key: option.value,\n text: option.text,\n value: option.value,\n })), onChange: (_, option) => { var _a; return onFormElementChange((_a = option === null || option === void 0 ? void 0 : option.value) === null || _a === void 0 ? void 0 : _a.toString()); }, required: element.required, disabled: element.disabled, selectedKey: element.value || currentValue })));\n case 'Text':\n return (React.createElement(\"div\", null,\n React.createElement(TextField, { label: element.label, name: element.name, value: element.value || currentValue, onChange: (_, value) => {\n onFormElementChange(value);\n }, required: element.required, disabled: element.disabled })));\n }\n}\nexport { AplForm };\n","import { useCallback, useEffect, useRef } from 'react';\nexport function useDebouncedCallback(callback, delay, deps) {\n const currentTimeout = useRef();\n const callbackRef = useRef(callback);\n const cancel = useCallback(() => {\n clearTimeout(currentTimeout.current);\n }, []);\n if (callbackRef.current !== callback) {\n callbackRef.current = callback;\n }\n // cancel timeout if unmounted\n useEffect(() => {\n return () => {\n clearTimeout(currentTimeout.current);\n };\n }, []);\n const debouncedCallback = useCallback((...args) => {\n clearTimeout(currentTimeout.current);\n currentTimeout.current = setTimeout(callbackRef.current, delay, ...args);\n }, [delay, ...deps]);\n return [debouncedCallback, cancel];\n}\n","export const TroubleshooterStepType = {\n Content: 'Content',\n Insight: 'Insight',\n};\nexport function isStepCompleted(step) {\n return (step === null || step === void 0 ? void 0 : step.StepExecutionStatus) === 'Succeeded';\n}\nexport function hasQuestionArticle(step) {\n return !!step.QuestionArticleId;\n}\nexport function isLastStep(step) {\n return step.IsLastStep;\n}\nexport function isTroubleshooterFormValid(formElements) {\n // We assume all form elements/questions are required\n const invalidFormElements = formElements.find((ele) => !ele.value);\n return !invalidFormElements;\n}\n","import React from 'react';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { useTheme } from '@fluentui/react';\nimport { AplRelevancyFeedback } from '../Feedback/RelevancyFeedback';\nfunction GuidedTroubleshooterStepFooter({ isLastStep, onFeedback, stepType, }) {\n const theme = useTheme();\n const backgroundColor = theme.palette.neutralLight;\n if (!isLastStep) {\n return null;\n }\n else {\n return (React.createElement(\"div\", { style: {\n display: 'flex',\n justifyContent: stepType === 'insight' ? 'space-between' : 'flex-end',\n padding: '10px',\n backgroundColor,\n } },\n stepType === 'insight' && onFeedback && (React.createElement(AplRelevancyFeedback, { label: 'Did this help resolve the customer problem ?', binary: true, onRelevancyFeedback: onFeedback })),\n React.createElement(Text, null, \"This is the last step of the troubleshooter\")));\n }\n}\nexport { GuidedTroubleshooterStepFooter };\n","import React from 'react';\nimport { LinkType } from '../Contracts';\nimport { AplForm } from '../Elements/Form';\nimport { SolutionCardMapper } from '../Mapper/SolutionCardMapper';\nimport { AplWidget } from '../Elements/BaseWidget';\nimport { useCancellablePromise } from '../Utils/useCancellablePromise';\nimport { AplSolutionCardItem } from '../SolutionCard/SolutionCardItem/AplSolutionCardItem';\nimport { isTroubleshooterFormValid } from './TroubleshooterUtils';\nimport { GuidedTroubleshooterStepFooter } from './GuidedTroubleshooterStepFooter';\nfunction AplGuidedTroubleshooterStep(props) {\n const { stepType, impactedResourceUri, deeplinkHelper, disableActions, stepStartTime } = props;\n const [isStepOpen, setIsStepOpen] = React.useState(false);\n const step = useGuidedTroubleshooterStep(props);\n const { initialize, endAtStep, isLastStep, nextStep, formValid, stepCompleted, insight, isContentLoading, isQuestionsLoading, message, onContentFeedback, onRelevancyFeedback, } = step;\n React.useEffect(() => {\n initialize();\n }, []);\n // NOTE: Making the guided troubleshooter step card as a controlled component since we need to able to collapse and expand based on certain conditions\n const onToggleStep = React.useCallback((collapsedState) => {\n setIsStepOpen(!collapsedState);\n }, []);\n React.useEffect(() => {\n if (isLastStep || !stepCompleted) {\n setIsStepOpen(true);\n }\n else {\n setIsStepOpen(false);\n }\n }, [isLastStep, stepCompleted]);\n const cardItem = getSolutionCard(step, deeplinkHelper, insight, impactedResourceUri);\n return (React.createElement(AplWidget, { role: \"presentation\", loader: { isLoading: isContentLoading || isQuestionsLoading }, messages: message ? [message] : [] },\n React.createElement(AplSolutionCardItem, Object.assign({}, cardItem, { contentProps: Object.assign(Object.assign({}, cardItem === null || cardItem === void 0 ? void 0 : cardItem.contentProps), { footerActions: [\n ...(!stepCompleted && !isLastStep\n ? [\n {\n label: 'Next',\n onClick: nextStep,\n text: 'Next',\n primary: false,\n disabled: (stepType === 'manual' && !formValid) || disableActions,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n 'data-testid': 'TroubleshooterNextButton',\n },\n ]\n : []),\n ...(!stepCompleted\n ? [\n {\n label: 'Issue resolved',\n onClick: endAtStep,\n text: 'Issue resolved',\n primary: false,\n disabled: disableActions,\n },\n ]\n : []),\n ], onContentFeedback: onContentFeedback, footer: (React.createElement(GuidedTroubleshooterStepFooter, { stepType: stepType, isLastStep: isLastStep, onFeedback: onRelevancyFeedback })) }), isOpened: isStepOpen, onToggle: onToggleStep }))));\n}\nfunction getSolutionCard(step, deeplinkHelper, insight, impactedResourceUri) {\n if (step.stepType === 'insight' && insight) {\n const insightWithHtmlContent = Object.assign(Object.assign({}, insight), { CustomerReadyContent: Object.assign(Object.assign({}, insight.CustomerReadyContent), { ArticleContent: step.htmlContent }), \n // patch the impacted resource inside the insight\n ImpactedResources: impactedResourceUri\n ? [{ Uri: impactedResourceUri, Type: LinkType.Resource, AscInternalUri: '' }]\n : undefined });\n return SolutionCardMapper.fromInsight(insightWithHtmlContent, deeplinkHelper);\n }\n else {\n return fromGuidedTroubleShooterStep(step);\n }\n}\nfunction fromGuidedTroubleShooterStep(step) {\n var _a;\n const onFormChangeCallback = (formElements, formValid) => {\n step.setFormElements(formElements);\n step.setFormValid(formValid);\n };\n const content = [];\n if (step.htmlContent) {\n content.push({\n fieldType: 'markdown',\n markdown: step.htmlContent,\n label: '',\n });\n }\n if ((_a = step.formElements) === null || _a === void 0 ? void 0 : _a.length) {\n if (step.stepCompleted) {\n step.formElements.forEach((ele) => {\n ele.disabled = true;\n });\n }\n content.push({\n fieldType: 'custom',\n component: React.createElement(AplForm, { formElements: step.formElements, onChange: onFormChangeCallback }),\n });\n }\n return {\n headerProps: {\n collapserSectionProps: {\n title: 'Manual Step',\n solutionTypeIconProps: { iconName: 'TaskManager' },\n },\n titleSectionProps: {\n title: { text: step.stepTitle || '--' },\n subTitle: step.stepSubtitle.length > 0 ? 'User Response: ' + step.stepSubtitle : '',\n },\n hideSubtitleOnExpand: true,\n },\n contentProps: {\n fields: content,\n },\n };\n}\nfunction useGuidedTroubleshooterStep(props) {\n const { cancellablePromise } = useCancellablePromise();\n const { contentArticleId, questionArticleId, provider, stepType, stepTitle, stepCompleted, isLastStep, stepId, questionId, inlineQuestions, end, resume, onContentFeedback, onRelevancyFeeback, stepStartTime, } = props;\n const [isContentLoading, setIsContentLoading] = React.useState(false);\n const [formValid, setFormValid] = React.useState(false);\n const [isQuestionsLoading, setIsQuestionsLoading] = React.useState(false);\n const [htmlContent, setHtmlContent] = React.useState('');\n const [formElements, setFormElements] = React.useState([]);\n const [localStepCompleted, setLocalStepCompleted] = React.useState(stepCompleted);\n const [localIsLastStep, setLocalIsLastStep] = React.useState(isLastStep);\n // This exists as stepTitle can be overriden by content name or insight title and default from step's title\n const [localStepTitle, setLocalStepTitle] = React.useState(stepTitle);\n const [insight, setInsight] = React.useState();\n const [message, setMessage] = React.useState();\n const localOnContentFeedback = React.useCallback((sentiment) => {\n if (onContentFeedback) {\n if (insight) {\n onContentFeedback(sentiment, { stepType: 'insight', insight });\n }\n else {\n onContentFeedback(sentiment, {\n stepType: 'manual',\n stepContext: { stepId, stepTitle: localStepTitle || stepTitle },\n });\n }\n }\n }, [insight, stepId, localStepTitle, stepTitle, contentArticleId, questionArticleId]);\n const initialize = React.useCallback(() => {\n // check if it has content article id\n if (stepType === 'manual') {\n if (contentArticleId) {\n setIsContentLoading(true);\n // Get the content article for the manual step\n cancellablePromise(provider.getArticle(contentArticleId))\n .then((res) => {\n setHtmlContent(res.htmlContent);\n // if no step title exists set the step title as the name of the htmlContent\n if (!stepTitle) {\n setLocalStepTitle(res.name);\n }\n setIsContentLoading(false);\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({\n message: 'Failed to load content. Please refresh or restart the troubleshooter.',\n messageType: 'error',\n });\n setIsContentLoading(false);\n }\n });\n }\n // Questions for a step can come from questionArticleId or UserInput\n // First check if QuestionArticleId exists\n if (questionArticleId) {\n setIsQuestionsLoading(true);\n // Get the Question Article\n cancellablePromise(provider.getTsgQuestions(questionArticleId))\n .then((questions) => {\n const newFormElements = questions.formElements\n .filter((question) => question.id === questionId)\n .map(tranformTsgQuestionToFormElement)\n .map((element) => {\n return Object.assign(Object.assign({}, element), { disabled: stepCompleted });\n });\n if ((newFormElements === null || newFormElements === void 0 ? void 0 : newFormElements.length) && (inlineQuestions === null || inlineQuestions === void 0 ? void 0 : inlineQuestions.length)) {\n newFormElements[0].value = inlineQuestions[0].responseText;\n }\n setFormElements(newFormElements);\n setIsQuestionsLoading(false);\n setFormValid(isTroubleshooterFormValid(newFormElements));\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({\n message: 'Failed to load TSG questions. Please refresh or restart the troubleshooter.',\n messageType: 'error',\n });\n setIsQuestionsLoading(false);\n }\n });\n // Check for inline questions if QuestionArticleId does not exist\n }\n else if (inlineQuestions && inlineQuestions.length) {\n const newFormElements = inlineQuestions.map((question, index) => {\n return {\n label: question.questionText,\n formElementType: question.questionType,\n options: question.options.map((option) => {\n return {\n text: option,\n value: option,\n };\n }),\n name: question.questionText + index,\n value: question.responseText,\n disabled: props.stepCompleted,\n required: true,\n };\n });\n setFormElements(newFormElements);\n setFormValid(isTroubleshooterFormValid(newFormElements));\n }\n }\n else if (stepType === 'insight') {\n cancellablePromise(provider.getInsightDefinition(contentArticleId))\n .then((insight) => {\n var _a;\n // set insight timestamp as stepStartTime\n insight.TimeStamp = stepStartTime;\n setInsight(insight);\n return (_a = insight === null || insight === void 0 ? void 0 : insight.CustomerReadyContent) === null || _a === void 0 ? void 0 : _a.ArticleId;\n })\n .then((articleId) => {\n return provider.getArticle(articleId);\n })\n .then((article) => {\n setHtmlContent(article.htmlContent);\n // Override the stepTitle with the content name\n if (article.name) {\n setLocalStepTitle(article.name);\n }\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({\n messageType: 'error',\n message: 'Failed to load step. Please refresh or restart the troubleshooter. ',\n });\n }\n });\n }\n }, [contentArticleId, questionArticleId, insight]);\n const nextStep = React.useCallback(() => {\n resume({\n stepId,\n userInput: transformFromFormElementToQuestionInput(formElements),\n stepTitle: localStepTitle || stepTitle,\n userResponse: stepType === 'manual' ? formElements[0].value : 'Continue',\n }, () => {\n setLocalStepCompleted(true);\n if (stepType === 'manual') {\n setFormElements(formElements.map((ele) => {\n return Object.assign(Object.assign({}, ele), { disabled: true });\n }));\n }\n });\n }, [end, formElements, stepId, stepTitle, localStepTitle]);\n const onLocalRelevancyFeeback = React.useCallback((sentiment) => {\n if (stepType === 'insight' && insight) {\n onRelevancyFeeback(sentiment, { stepType: 'insight', insight });\n }\n }, [insight]);\n const onLocalResolveIssueFeeback = React.useCallback(() => {\n onRelevancyFeeback('Yes', {\n stepType: 'manual',\n stepContext: {\n stepId,\n stepTitle: localStepTitle || stepTitle,\n userResponse: 'Issue Resolved',\n },\n });\n }, [stepId, stepTitle, localStepTitle]);\n return {\n initialize,\n htmlContent,\n isInsight: stepType === 'insight',\n stepTitle: localStepTitle,\n stepSubtitle: !(stepType == 'insight') && (formElements === null || formElements === void 0 ? void 0 : formElements.length) && formElements[0].value ? formElements[0].value : '',\n formElements,\n stepCompleted: localStepCompleted,\n endAtStep: () => end(() => {\n setLocalIsLastStep(true);\n setLocalStepCompleted(true);\n onLocalResolveIssueFeeback();\n }),\n isLastStep: localIsLastStep,\n nextStep: nextStep,\n setFormElements,\n setFormValid,\n formValid,\n insight,\n stepType,\n isContentLoading,\n isQuestionsLoading,\n message,\n onContentFeedback: localOnContentFeedback,\n onRelevancyFeedback: onLocalRelevancyFeeback,\n onResolveIssueFeeback: onLocalResolveIssueFeeback,\n stepId,\n };\n}\nfunction tranformTsgQuestionToFormElement(question) {\n const formElement = {\n label: question.displayLabel,\n name: question.id,\n };\n switch (question.controlType) {\n case 'SingleChoice':\n case 'RadioButtonGroup':\n formElement.formElementType = 'SingleChoice';\n formElement.options = question.radioButtonOptions;\n break;\n default:\n formElement.formElementType = 'Text';\n }\n return formElement;\n}\nfunction transformFromFormElementToQuestionInput(formElements) {\n return formElements.map((question) => {\n return {\n UserQuestion: question.label,\n UserQuestionType: question.formElementType,\n UserQuestionOptions: question.options.map((option) => option.value),\n ResponseText: question.value,\n isDisabled: true,\n };\n });\n}\nexport { AplGuidedTroubleshooterStep };\n","import React from 'react';\nimport { AplWidget } from '../Elements/BaseWidget';\nimport { SolutionCardContextProvider } from '../SolutionCard/SolutionCardContext';\nimport { MaxWidgetWidth } from '../Styling/Variables';\nimport { AplGuidedTroubleshooterStep } from './AplGuidedtroubleshooterStep';\nimport { useCancellablePromise } from '../Utils/useCancellablePromise';\nimport { AplContext } from '../Contexts/AplContext';\nconst AplGuidedTroubleshooterWidget = React.forwardRef((props, ref) => {\n var _a, _b;\n // eslint-disable-next-line react/prop-types\n const { impactedResourceUri, deeplinkHelper, srId } = props;\n const { loader, message, instance, initialize, resume, end, restart, onContentFeedback, onRelevancyFeedback } = useGuidedTroubleshooterWidget(props);\n React.useEffect(() => {\n // For some reason TS is not ready yet for forward ref types, it incorrectly infers props of forwardRef components as optional when they are required\n // eslint-disable-next-line react/prop-types\n if (props.searchCriteria) {\n initialize();\n }\n // For some reason TS is not ready yet for forward ref types, it incorrectly infers props of forwardRef components as optional when they are required\n // eslint-disable-next-line react/prop-types\n }, [props.searchCriteria]);\n // expose restart method to the ref handle\n // Scenarios where the troublshooter needs to be accessed outside of the widget can be exposed via the ref\n React.useImperativeHandle(ref, () => ({ restartTroubleshooter: () => restart() }), [loader]);\n return (\n // NOTE: We need to wrap the widget using the SolutionCardContextProvider since the widget uses the AplSolutionCardItem instead of using AplSolutionCard\n React.createElement(SolutionCardContextProvider, null,\n React.createElement(AplContext, { value: { srId } },\n React.createElement(AplWidget, { loader: loader, messages: message ? [message] : [], styles: { root: { maxWidth: MaxWidgetWidth } } },\n React.createElement(\"div\", { role: \"list\" }, (_b = (_a = instance === null || instance === void 0 ? void 0 : instance.TSGInstance) === null || _a === void 0 ? void 0 : _a.TSGSteps) === null || _b === void 0 ? void 0 : _b.map((step, index) => {\n var _a;\n return (React.createElement(AplGuidedTroubleshooterStep, { resume: resume, end: end, isLastStep: step.IsLastStep, stepId: step.StepInstanceId, instanceId: instance.SolutionInstanceId, key: 'troubleshooterStep_' + index + step.StepInstanceId, contentArticleId: step.ContentArticleId, \n // For some reason TS is not ready yet for forward ref types, it incorrectly infers props of forwardRef components as optional when they are required\n // eslint-disable-next-line react/prop-types\n provider: props.provider, stepCompleted: step.StepExecutionStatus !== 'Running', stepTitle: step.StepTitle, stepType: step.StepType === 'Content' ? 'manual' : 'insight', questionArticleId: step.QuestionArticleId, inlineQuestions: (step === null || step === void 0 ? void 0 : step.UserInput) && ((_a = step === null || step === void 0 ? void 0 : step.UserInput) === null || _a === void 0 ? void 0 : _a.length)\n ? [\n {\n questionText: step.UserInput[0].UserQuestion,\n options: step.UserInput[0].UserQuestionOptions,\n questionType: step.UserInput[0].UserQuestionType,\n responseText: step.UserInput[0].ResponseText,\n },\n ]\n : undefined, questionId: step.QuestionId, onContentFeedback: onContentFeedback, onRelevancyFeeback: onRelevancyFeedback, impactedResourceUri: impactedResourceUri, deeplinkHelper: deeplinkHelper, disableActions: loader.isLoading, stepStartTime: step.StepStartTime }));\n }))))));\n});\nAplGuidedTroubleshooterWidget.displayName = 'AplGuidedTroubleshooterWidget';\nfunction useGuidedTroubleshooterWidget({ provider, searchCriteria, instanceId: incomingInstanceId, onContentFeedback, onRelevancyFeedback, }) {\n const { cancellablePromise } = useCancellablePromise();\n const [instanceId, setInstanceId] = React.useState(incomingInstanceId);\n const [loader, setLoader] = React.useState({ isLoading: false });\n const [message, setMessage] = React.useState();\n const [instance, setInstance] = React.useState();\n // Sometimes an instance is returned with no TSGSteps so showing error.\n React.useEffect(() => {\n if (instance && instance.TSGInstance && !instance.TSGInstance.TSGSteps && !loader.isLoading) {\n setMessage({ message: 'Failed to load troubleshooter steps.', messageType: 'error' });\n }\n }, [instance, loader]);\n const onLocalContentFeedback = React.useCallback((sentiment, data) => {\n if (onContentFeedback && instance) {\n onContentFeedback(sentiment, Object.assign(Object.assign({}, data), { troubleshooterInstance: instance }));\n }\n }, [instance]);\n const onLocalRelevancyFeedback = React.useCallback((sentiment, data) => {\n if (onRelevancyFeedback && instance) {\n onRelevancyFeedback(sentiment, Object.assign(Object.assign({}, data), { troubleshooterInstance: instance }));\n }\n }, [instance]);\n const initializeTroubleshooterInstance = React.useCallback(() => {\n ensureInstanceLoaded(setInstance, setInstanceId, setLoader, setMessage, instanceId || '', provider, searchCriteria, cancellablePromise);\n }, [searchCriteria, instanceId]);\n const continueTroubleshooterInstance = React.useCallback((stepContext, onNextComplete) => {\n if (instanceId) {\n setLoader({ isLoading: true });\n cancellablePromise(provider.resume(instanceId, stepContext))\n .then(() => cancellablePromise(provider.getInstance(Object.assign(Object.assign({}, searchCriteria), { instanceId }))))\n .then((instance) => {\n setInstance(instance);\n setLoader({ isLoading: false });\n // remove error message when the troubleshooter instance is loaded\n setMessage(undefined);\n onNextComplete();\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({\n message: 'The next step failed to load. Please refresh or restart the troubleshooter',\n messageType: 'error',\n });\n setLoader({ isLoading: false });\n }\n });\n }\n else {\n setMessage({\n message: 'The next step failed to load. Please refresh or restart the troubleshooter',\n messageType: 'error',\n });\n }\n }, [instanceId, searchCriteria]);\n const restartTroubleshooter = React.useCallback(() => {\n if (loader.isLoading) {\n setMessage({ message: 'Restart is in progress. Please wait 5s to try again', messageType: 'error' });\n }\n else {\n if (instanceId) {\n setLoader({ isLoading: true });\n cancellablePromise(provider.restart(instanceId))\n .then((newInstance) => {\n setInstanceId(newInstance.NewSolutionInstanceId);\n setLoader({ isLoading: false });\n // remove error message when troubleshooter is loaded.\n setMessage(undefined);\n ensureInstanceLoaded(setInstance, setInstanceId, setLoader, setMessage, newInstance.NewSolutionInstanceId, provider, searchCriteria, cancellablePromise, true);\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({ message: 'Failed to restart troubleshooter', messageType: 'error' });\n setLoader({ isLoading: false });\n }\n });\n }\n else {\n setMessage({ message: 'Failed to restart troubleshooter', messageType: 'error' });\n }\n }\n }, [instanceId, loader]);\n const endTroubleshooterInstance = React.useCallback((onEndComplete) => {\n if (instanceId) {\n setLoader({ isLoading: true });\n cancellablePromise(provider.end(Object.assign(Object.assign({}, searchCriteria), { instanceId })))\n .then(() => {\n if (instance) {\n const completedInstance = Object.assign(Object.assign({}, instance), { TSGInstance: Object.assign(Object.assign({}, instance.TSGInstance), { TSGSteps: instance.TSGInstance.TSGSteps.map((step) => {\n return Object.assign(Object.assign({}, step), { StepExecutionStatus: 'Completed' });\n }) }) });\n setInstance(completedInstance);\n }\n setLoader({ isLoading: false });\n onEndComplete();\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({ message: 'Failed to end troubleshooter', messageType: 'error' });\n setLoader({ isLoading: false });\n }\n });\n }\n else {\n setMessage({ message: 'Failed to end troubleshooter', messageType: 'error' });\n }\n }, [searchCriteria, instanceId, instance]);\n return {\n loader,\n message,\n instance,\n initialize: initializeTroubleshooterInstance,\n resume: continueTroubleshooterInstance,\n end: endTroubleshooterInstance,\n restart: restartTroubleshooter,\n onContentFeedback: onContentFeedback ? onLocalContentFeedback : undefined,\n onRelevancyFeedback: onLocalRelevancyFeedback,\n };\n}\n// When the widget first loads, it can have an instanceId or not.\n// If it has instanceId get that instance, else it is a `Run` action. Invoke and get the instance.\nfunction ensureInstanceLoaded(setInstance, setInstanceId, setLoader, setMessage, instanceId, provider, searchCriteria, cancellablePromise, forceInvoke) {\n setMessage(undefined);\n if (instanceId && !forceInvoke) {\n setLoader({ isLoading: true });\n cancellablePromise(provider.getInstance(Object.assign(Object.assign({}, searchCriteria), { instanceId })))\n .then((instance) => {\n setInstance(instance);\n setInstanceId(instance.SolutionInstanceId);\n setLoader({ isLoading: false });\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({ message: 'Failed to retrive the troubleshooter instance', messageType: 'error' });\n setLoader({ isLoading: false });\n }\n });\n }\n else {\n setLoader({ isLoading: true });\n cancellablePromise(provider.invoke(searchCriteria))\n .then((instanceInvokeResult) => {\n setInstanceId(instanceInvokeResult.SolutionInstanceId);\n return provider.getInstance(Object.assign(Object.assign({}, searchCriteria), { instanceId: instanceInvokeResult.SolutionInstanceId }));\n })\n .then((instance) => {\n setInstance(instance);\n setLoader({ isLoading: false });\n })\n .catch((err) => {\n if (!err || !err.isCancelled) {\n setMessage({ message: 'Failed to retrive the troubleshooter instance', messageType: 'error' });\n setLoader({ isLoading: false });\n }\n });\n }\n}\nexport { AplGuidedTroubleshooterWidget };\n","import React from 'react';\nconst initialState = {\n healthEvents: [],\n isHealthEventsLoading: false,\n advisories: [],\n outages: [],\n sieError: '',\n healthError: '',\n isSIELoading: false,\n};\nconst AplHealthWidgetContext = React.createContext({ state: initialState, dispatch: () => null });\nconst insightWidgetReducer = (state, action) => {\n switch (action.type) {\n case 'HealthEventsStarted':\n return Object.assign(Object.assign({}, state), { healthEvents: [], isHealthEventsLoading: true });\n case 'HealthEventsFailed':\n return Object.assign(Object.assign({}, state), { healthEvents: [], healthError: 'Failed to fetch information.', isHealthEventsLoading: false });\n case 'HealthEventSucceeded':\n return Object.assign(Object.assign({}, state), { healthEvents: action.payload, isHealthEventsLoading: false });\n case 'SIEStarted':\n return Object.assign(Object.assign({}, state), { isSIELoading: true, advisories: [], outages: [] });\n case 'SIEFailed':\n return Object.assign(Object.assign({}, state), { sieError: 'Failed to fetch information.', advisories: [], outages: [], isSIELoading: false });\n case 'SIESucceeded':\n const sieEvents = action.payload;\n const sieOutages = sieEvents && sieEvents.length\n ? sieEvents.filter((event) => event.Properties && event.Properties.IncidentType === 'Incident')\n : [];\n const sieAdvisories = sieEvents && sieEvents.length\n ? sieEvents.filter((event) => !event.Properties || (event.Properties && event.Properties.IncidentType !== 'Incident'))\n : [];\n return Object.assign(Object.assign({}, state), { outages: sieOutages, advisories: sieAdvisories, isSIELoading: false });\n }\n};\n// eslint-disable-next-line react/prop-types\nconst AplHealthWidgetProvider = ({ children }) => {\n const [state, dispatch] = React.useReducer(insightWidgetReducer, initialState);\n return React.createElement(AplHealthWidgetContext.Provider, { value: { state, dispatch } }, children);\n};\nexport { AplHealthWidgetProvider, AplHealthWidgetContext };\n","/**\n * Retry interval\n */\nexport const PROVIDER_RETRY_INTERVAL = 5000; // 5 sec\n/**\n * Default configs for the retry provider\n */\nconst defaultMaxRetries = 3;\nconst defaultRetryInterval = PROVIDER_RETRY_INTERVAL;\n/**\n * Retryable provider factory, any async function can be passed to create a retryable async function.\n * A custom `retryOn` hook on the config can be used to manipulate when to retry and when not to\n * By default retries thrice excluding the first attempt without a `retryOn` hook with a 1 second interval\n * @param {() => Promise} fn\n * @param {IAplRetryableProviderConfig} config\n */\nexport function retryableProviderFactory(fn, config) {\n return function () {\n const maxRetries = (config === null || config === void 0 ? void 0 : config.maxRetries) !== undefined && (config === null || config === void 0 ? void 0 : config.maxRetries) !== null ? config.maxRetries : defaultMaxRetries;\n const baseRetryInterval = (config === null || config === void 0 ? void 0 : config.baseRetryInterval) !== undefined && (config === null || config === void 0 ? void 0 : config.baseRetryInterval) !== null\n ? config.baseRetryInterval\n : defaultRetryInterval;\n const onExhuastedRetries = config === null || config === void 0 ? void 0 : config.onExhuastedRetries;\n const retryOn = config === null || config === void 0 ? void 0 : config.retryOn;\n const onPartialResult = config === null || config === void 0 ? void 0 : config.onPartialResult;\n return new Promise((resolve, reject) => {\n function wrappedProvider(attempt) {\n fn()\n .then((response) => {\n if (retryOn && attempt.retries < maxRetries) {\n if (retryOn(attempt, null, response)) {\n if (onPartialResult) {\n onPartialResult(attempt, response);\n }\n retry(attempt);\n }\n else {\n resolve(response);\n }\n }\n else {\n if (onExhuastedRetries) {\n resolve(onExhuastedRetries(response));\n }\n else {\n resolve(response);\n }\n }\n })\n .catch((err) => {\n if (retryOn && attempt.retries < maxRetries) {\n if (retryOn(attempt, err, null)) {\n retry(attempt);\n }\n else {\n reject(err);\n }\n }\n else {\n reject(err);\n }\n });\n }\n wrappedProvider({ baseRetryInterval, maxRetries, retries: 0 });\n function retry(attempt) {\n setTimeout(() => wrappedProvider(Object.assign(Object.assign({}, attempt), { retries: ++attempt.retries })), attempt.baseRetryInterval);\n }\n });\n };\n}\n","export function transformEventToTelemetryEvent(eventType, item) {\n const eventTypeToEventMap = {\n loaded: 'viewed',\n opened: 'opened',\n };\n return {\n action: eventTypeToEventMap[eventType],\n data: item.data,\n eventType: eventType === 'loaded' ? 'impression' : 'interaction',\n };\n}\n","import React from 'react';\nimport { ScreenWidthMinLarge } from '@fluentui/react/lib/Styling';\nimport { useTelemetrySink } from '../Telemetry/AplTelemetrySink';\nimport { useCancellablePromise } from '../Utils/useCancellablePromise';\nimport { ClientType, } from '../Contracts';\nimport { AplInsightWidgetContext } from './Context/AplInsightWidgetContext';\nimport { retryableProviderFactory } from '../Utils/RetryUtils';\nimport { transformEventToTelemetryEvent } from '../SolutionCard/SolutionCardUtils';\nimport { SolutionCardMapper } from '../Mapper/SolutionCardMapper';\nimport { AplComponentType } from '../Telemetry/AplTelemetry.types';\nimport { getMediaQuery } from '../Styling/MediaQueries';\n//Lower number has higher priority\nexport const importanceLevelSortFn = (insight1, insight2) => {\n return insight1.ImportanceLevel - insight2.ImportanceLevel;\n};\n//Higher number has higher priority\nexport const rankSortFn = (insight1, insight2) => {\n var _a, _b;\n return (((_a = insight1.Score) !== null && _a !== void 0 ? _a : 0) - ((_b = insight2.Score) !== null && _b !== void 0 ? _b : 0)) * -1;\n};\nexport const rankThenImportanceFn = (insight1, insight2) => {\n const rank = rankSortFn(insight1, insight2);\n return rank === 0 ? importanceLevelSortFn(insight1, insight2) : rank;\n};\nexport const insightSorter = {\n importance: importanceLevelSortFn,\n rank: rankSortFn,\n rankThenImportance: rankThenImportanceFn,\n};\nexport function useInsightsSearchForReport(props) {\n const insightSearch = useInsightsSearch(props, true, props.fromDSQ, props.symptomId, props.logData);\n const { dispatch } = React.useContext(AplInsightWidgetContext);\n const onClickReRun = React.useCallback((insightProvider) => {\n if (insightProvider.triggerInsights) {\n dispatch({ type: 'InsightsTriggered' });\n dispatch({ type: 'InsightRunStarted' });\n const triggerCriteria = {\n context: props.context,\n symptomId: props.symptomId,\n replacementKey: props.replacementKey,\n };\n insightProvider\n .triggerInsights(triggerCriteria)\n .then((result) => {\n dispatch({ type: 'InsightsTriggeredSuccessful' });\n const count = (insightSearch.runCount ? insightSearch.runCount : 0) + 1;\n insightSearch.startSearch(result, insightProvider, count);\n })\n .catch((err) => {\n if (!(err === null || err === void 0 ? void 0 : err.isCancelled)) {\n dispatch({ type: 'InsightsTriggeredFailed' });\n }\n });\n }\n }, [insightSearch, dispatch]);\n insightSearch.onClickReRun = onClickReRun;\n return insightSearch;\n}\nexport function useInsightsSearch({ onContentFeedback, deeplinkHelper, sortBy = 'importance', searchCriteria, context, timeoutText, actionHandler, }, isApolloReport = false, fromDSQ = false, symptomId, logData) {\n const sink = useTelemetrySink();\n const { cancellablePromise } = useCancellablePromise([searchCriteria]);\n const { state, dispatch } = React.useContext(AplInsightWidgetContext);\n const { insights, message, status, statusDetails, runCount, loadingStartTime } = state;\n const searchInsights = React.useCallback((searchCriteria, provider, runCount) => {\n dispatch({ type: 'InsightSearchStarted' });\n // log loading insights.\n if (isApolloReport) {\n sink.push({\n eventType: 'impression',\n area: 'InsightWidget',\n component: AplComponentType.Insight,\n data: Object.assign(Object.assign({}, logData), { fromDSQInput: fromDSQ, status: 'loading', insight: { SymptomId: symptomId }, runCount }),\n });\n }\n const retryableInsightProvider = retryableProviderFactory(() => cancellablePromise(provider.searchInsights(searchCriteria)), {\n maxRetries: 60,\n retryOn: (_, error, response) => {\n if (!error && response) {\n return response.isPartial && !response.isTimedout;\n }\n else {\n return false;\n }\n },\n onPartialResult: (_, response) => {\n dispatch({\n type: 'InsightSearchSuccess',\n payload: Object.assign(Object.assign({}, response), { sortBy }),\n });\n },\n onExhuastedRetries: (response) => {\n return Object.assign(Object.assign({}, response), { isTimedout: true });\n },\n });\n retryableInsightProvider()\n .then((res) => {\n var _a, _b;\n dispatch({ type: 'InsightSearchSuccess', payload: Object.assign(Object.assign({}, res), { sortBy }) });\n if (res.isTimedout) {\n // timed out\n if (isApolloReport) {\n const solutionWaitTime = state.loadingStartTime ? Date.now() - state.loadingStartTime : undefined;\n sink.push({\n eventType: 'impression',\n area: 'InsightWidget',\n component: AplComponentType.Insight,\n data: Object.assign(Object.assign({}, logData), { fromDSQInput: fromDSQ, status: 'notavailable', reason: 'timedout', insight: { SymptomId: symptomId }, runCount: state.runCount, solutionWaitTime }),\n });\n }\n dispatch({\n type: 'InsightSearchTimeout',\n message: (_b = (_a = res.statusDetails) !== null && _a !== void 0 ? _a : timeoutText) !== null && _b !== void 0 ? _b : '',\n statusDetails: res.statusDetails,\n });\n }\n })\n .catch((err) => {\n if (!(err === null || err === void 0 ? void 0 : err.isCancelled)) {\n if (isApolloReport) {\n const solutionWaitTime = state.loadingStartTime ? Date.now() - state.loadingStartTime : undefined;\n sink.push({\n eventType: 'impression',\n area: 'InsightWidget',\n component: AplComponentType.Insight,\n data: Object.assign(Object.assign({}, logData), { fromDSQInput: fromDSQ, status: 'notavailable', reason: 'failed', insight: { SymptomId: symptomId }, runCount: state.runCount, solutionWaitTime }),\n });\n }\n dispatch({ type: 'InsightSearchFailed' });\n }\n });\n }, [dispatch, sortBy]);\n const setToDefaults = React.useCallback(() => {\n dispatch({ type: 'InsightResetToDefaults' });\n }, [dispatch]);\n const startSearch = React.useCallback((searchCriteria, provider, runCount) => {\n var _a;\n if ((searchCriteria === null || searchCriteria === void 0 ? void 0 : searchCriteria.requestIds) && ((_a = searchCriteria === null || searchCriteria === void 0 ? void 0 : searchCriteria.requestIds) === null || _a === void 0 ? void 0 : _a.length)) {\n searchInsights(searchCriteria, provider, runCount);\n }\n else {\n setToDefaults();\n }\n }, [dispatch]);\n const eventsFunnel = React.useCallback((eventType, item) => {\n const log = transformEventToTelemetryEvent(eventType, item);\n if (log.data) {\n const solutionWaitTime = state.loadingStartTime ? Date.now() - state.loadingStartTime : undefined;\n sink.push(Object.assign(Object.assign({}, log), { data: Object.assign(Object.assign({}, logData), { insight: log.data, status: 'ready', fromDSQInput: fromDSQ, runCount: state.runCount, solutionWaitTime }), area: 'InsightWidget', component: AplComponentType.Insight }));\n }\n }, [sink]);\n return {\n isLoading: status === 'loading',\n isIdle: status === 'idle',\n insights,\n items: insights.map((insight) => transformInsightToCardItem(insight, onContentFeedback, deeplinkHelper, context, isApolloReport, insights.length == 1, actionHandler)),\n message,\n statusDetails,\n startSearch,\n eventsFunnel,\n runCount,\n loadingStartTime,\n };\n}\nfunction transformInsightToCardItem(insight, onContentFeedback, deeplinkHelper, context, isApolloReport = false, isExpanded = false, actionHandler) {\n const item = isApolloReport\n ? fromInsightForReport(insight, deeplinkHelper, context, actionHandler)\n : SolutionCardMapper.fromInsight(insight, deeplinkHelper, context);\n return Object.assign(Object.assign({}, item), { contentProps: Object.assign(Object.assign({}, item.contentProps), { onContentFeedback: onContentFeedback && ((sentiment) => onContentFeedback(insight, sentiment)), logProps: {\n area: 'InsightWidget',\n data: insight,\n } }), defaultOpened: isExpanded && isApolloReport });\n}\nfunction fromInsightForReport(insight, deeplinkHelper, context, actionHandler) {\n var _a;\n const content = [];\n const importanceLevelMap = ['Critical', 'Warning', 'Informational'];\n const importanceLevel = importanceLevelMap[insight.ImportanceLevel];\n const collapserSectionProps = {\n solutionTypeIconProps: {\n iconName: `${importanceLevel == 'Critical' ? 'AlertSolid' : importanceLevel === 'Warning' ? 'WarningSolid' : 'InfoSolid'}`,\n },\n };\n const titleSectionProps = {\n title: { text: insight.Title },\n };\n // Adding an extra check for external and internal client\n // In case we do send the data from backend, the control will also make sure\n // the internal fields are not shown to external customers\n if (!context || !context.clientType || context.clientType != ClientType.External) {\n if (insight.IssueCategory) {\n content.push({ fieldType: 'text', label: 'Issue category', text: insight.IssueCategory });\n }\n if ((_a = insight.Description) === null || _a === void 0 ? void 0 : _a.Value) {\n content.push({ fieldType: 'markdown', label: 'Description', markdown: insight.Description.Value });\n }\n if (insight.ImpactedResources) {\n const items = [];\n insight.ImpactedResources.forEach((resource) => {\n if (resource && resource.Uri) {\n items.push({ resourceUri: resource.Uri });\n }\n });\n if (items.length) {\n content.push({\n fieldType: 'impactedresources',\n resources: items,\n deeplinkHelper,\n label: 'Impacted Resources',\n });\n }\n }\n if (insight.RecommendedAction) {\n if (insight.RecommendedAction.Text && insight.RecommendedAction.Text.Value) {\n if (insight.RecommendedAction.Text.IsMarkdown) {\n content.push({\n label: 'Recommended action',\n fieldType: 'markdown',\n markdown: insight.RecommendedAction.Text.Value,\n });\n }\n else {\n content.push({\n label: 'Recommended action',\n fieldType: 'text',\n text: insight.RecommendedAction.Text.Value,\n });\n }\n }\n }\n const links = [];\n if (insight.Links && insight.Links.length) {\n for (const link of insight.Links) {\n if (link.AscInternalUri || link.Uri) {\n links.push({ text: link.Text, href: link.AscInternalUri || link.Uri });\n }\n }\n }\n if (links.length) {\n content.push({\n fieldType: 'links',\n label: 'Links',\n links,\n });\n }\n }\n if (insight.CustomerReadyContent && insight.CustomerReadyContent.ArticleContent) {\n content.push({\n label: context && context.clientType && context.clientType == ClientType.External ? '' : 'Customer ready content',\n fieldType: 'customerreadycontent',\n markdown: insight.CustomerReadyContent.ArticleContent,\n context: context,\n actionHandler: actionHandler,\n });\n }\n return {\n styles: {\n root: {\n selectors: {\n '.apl-solutionCardHeaderTitleSection-headerText': {\n // allow wrapping of header text.\n whiteSpace: 'unset',\n },\n '.apl-solutionCardHeader': {\n // override maxWidth: '56px' from Collapser Section.\n maxHeight: 'none',\n },\n '.apl-solutionCardHeaderTitleSection': {\n // padding top and bottom of header text.\n padding: '10px 0',\n },\n [getMediaQuery({ min: ScreenWidthMinLarge })]: {\n selectors: {\n '.apl-solutionCardHeaderTitleSection': {\n maxWidth: 'calc(100% - 130px)',\n },\n },\n },\n [getMediaQuery({ max: ScreenWidthMinLarge })]: {\n selectors: {\n '.apl-solutionCardHeaderTitleSection': {\n // Remove border top and left margin on small screens.\n borderTop: `none`,\n marginLeft: `0px`,\n },\n },\n },\n '.apl-solutioCardContent-fieldSetArea': {\n // no padding on the left.\n paddingLeft: '0px',\n },\n },\n },\n },\n importanceLevel: importanceLevel,\n contentProps: {\n fields: content,\n },\n headerProps: {\n collapserSectionProps: collapserSectionProps,\n titleSectionProps: titleSectionProps,\n },\n data: insight,\n };\n}\nexport function emptyExperienceAplReportInsights(noResultText) {\n const content = [];\n content.push({\n fieldType: 'custom',\n component: noResultText,\n });\n return [\n {\n importanceLevel: 'Informational',\n contentProps: {\n fields: content,\n },\n },\n ];\n}\n","import React from 'react';\nimport { insightSorter } from '../InsightUtil';\nconst initialState = {\n status: 'idle',\n message: null,\n insights: [],\n};\nconst AplInsightWidgetContext = React.createContext({ state: initialState, dispatch: () => null });\nconst insightWidgetReducer = (state, action) => {\n switch (action.type) {\n case 'InsightSearchStarted':\n return Object.assign(Object.assign({}, initialState), { runCount: state.runCount ? state.runCount : 1, status: 'loading', loadingStartTime: Date.now() });\n case 'InsightSearchFailed':\n return Object.assign(Object.assign({}, state), { status: 'completed', message: 'Failed to load all insights' });\n case 'InsightSearchSuccess':\n const { payload } = action;\n const status = payload.isPartial ? (payload.isTimedout ? 'completed' : 'loading') : 'completed';\n const insights = [...(payload.insights || [])].sort(insightSorter[payload.sortBy]);\n const statusDetails = payload.statusDetails;\n return Object.assign(Object.assign({}, state), { status,\n insights,\n statusDetails });\n case 'InsightResetToDefaults':\n return Object.assign(Object.assign({}, initialState), { \n // Reset all insight related states and preserve the diagnostic run count.\n runCount: state.runCount });\n // Need to remove this case, removing the message that was previosuly shown for now.\n case 'InsightSearchTimeout':\n return Object.assign(Object.assign({}, state), { statusDetails: action.statusDetails });\n case 'InsightsTriggered':\n return Object.assign(Object.assign({}, initialState), { runCount: state.runCount, status: 'loading' });\n case 'InsightsTriggeredSuccessful':\n return Object.assign(Object.assign({}, state), { status: 'loading' });\n case 'InsightsTriggeredFailed':\n return Object.assign(Object.assign({}, state), { status: 'completed', message: 'Failed to trigger insights' });\n case 'InsightRunStarted': {\n const runCount = (state.runCount ? state.runCount : 0) + 1;\n return Object.assign(Object.assign({}, state), { runCount: runCount });\n }\n }\n};\n// eslint-disable-next-line react/prop-types\nconst AplInsightWidgetProvider = ({ children }) => {\n const [state, dispatch] = React.useReducer(insightWidgetReducer, initialState);\n return React.createElement(AplInsightWidgetContext.Provider, { value: { state, dispatch } }, children);\n};\nexport { AplInsightWidgetProvider, AplInsightWidgetContext };\n","import React from 'react';\nconst initialState = {\n status: 'idle',\n instantAnswersResults: [],\n};\nconst AplInstantAnswersWidgetContext = React.createContext({ state: initialState, dispatch: () => null });\nconst InstantAnswersWidgetReducer = (state, action) => {\n switch (action.type) {\n case 'InstantAnswersRequestStarted':\n return {\n instantAnswersResults: [],\n status: 'loading',\n };\n case 'InstantAnswersRequestSuccess':\n let instantAnswersResults = [...action.payload];\n instantAnswersResults = instantAnswersResults.sort((result1, result2) => result1.UnifiedRank < result2.UnifiedRank ? -1 : 1);\n if (instantAnswersResults.length > 10) {\n instantAnswersResults = instantAnswersResults.slice(0, 10);\n }\n return {\n instantAnswersResults: instantAnswersResults,\n status: 'completed',\n };\n case 'InstantAnswersRequestFailed':\n return {\n instantAnswersResults: [],\n status: 'error',\n };\n case 'InstantAnswersResetToDefaults':\n return initialState;\n }\n};\n// eslint-disable-next-line react/prop-types\nconst AplInstantAnswersWidgetProvider = ({ children }) => {\n const [state, dispatch] = React.useReducer(InstantAnswersWidgetReducer, initialState);\n return (React.createElement(AplInstantAnswersWidgetContext.Provider, { value: { state, dispatch } }, children));\n};\nexport { AplInstantAnswersWidgetProvider, AplInstantAnswersWidgetContext };\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nconst classNames = {\n root: 'apl-instantAnswers-header',\n searchType: 'apl-instantAnswers-search-type',\n title: 'apl-instantAnswers-title',\n};\nexport const useClassNames = () => {\n const theme = useTheme();\n const { fonts } = theme;\n return React.useMemo(() => mergeStyleSets({\n root: [classNames.root, { fontWeight: 'normal' }],\n searchType: [classNames.searchType, fonts.tiny],\n title: [\n classNames.title,\n {\n marginTop: '8px',\n },\n ],\n }), [theme]);\n};\n","import React, { useMemo } from 'react';\nimport { InstantAnswerSearchType } from '../Contracts';\nimport { SolutionCardMapper } from '../Mapper/SolutionCardMapper';\nimport { AplInstantAnswersWidgetContext } from './Context/AplInstantAnswersWidgetContext';\nimport { useCancellablePromise } from '../Utils/useCancellablePromise';\nimport { retryableProviderFactory } from '../Utils/RetryUtils';\nimport { useTelemetrySink } from '../Telemetry';\nimport { transformEventToTelemetryEvent } from '../SolutionCard/SolutionCardUtils';\nimport { AplAction } from '../Elements/Action/AplAction';\nimport { useClassNames } from './AplInstantAnswers.styles';\nexport function useInstantAnswers({ provider, onRelevancyFeedback, onInstantAnswerLinkClick }, isLiteVersion = false) {\n const sink = useTelemetrySink();\n const { cancellablePromise } = useCancellablePromise();\n const { state, dispatch } = React.useContext(AplInstantAnswersWidgetContext);\n const { instantAnswersResults, status } = state;\n const searchForAnswers = React.useCallback((provider, requestId) => {\n dispatch({ type: 'InstantAnswersRequestStarted' });\n const instantAnswersProvider = retryableProviderFactory(() => cancellablePromise(provider.getInstantAnswersResults(requestId)), {\n retryOn: (_, error, response) => {\n if (!error && response) {\n return !response.isTimedOut && response.isPartial;\n }\n else {\n return false;\n }\n },\n onPartialResult: (_, response) => {\n dispatch({ type: 'InstantAnswersRequestSuccess', payload: response.instantAnswers });\n },\n onExhuastedRetries: (response) => {\n return Object.assign(Object.assign({}, response), { isTimedOut: true });\n },\n });\n instantAnswersProvider()\n .then((res) => {\n if (res.isTimedOut) {\n dispatch({ type: 'InstantAnswersRequestFailed' });\n }\n else {\n dispatch({ type: 'InstantAnswersRequestSuccess', payload: res.instantAnswers });\n }\n })\n .catch((err) => {\n if (!(err === null || err === void 0 ? void 0 : err.isCancelled)) {\n dispatch({ type: 'InstantAnswersRequestFailed' });\n }\n });\n }, [dispatch]);\n const startSearch = React.useCallback((requestId) => {\n if (requestId) {\n searchForAnswers(provider, requestId);\n }\n else {\n dispatch({ type: 'InstantAnswersResetToDefaults' });\n }\n }, [provider, dispatch]);\n const eventsFunnel = React.useCallback((eventType, item) => {\n const log = transformEventToTelemetryEvent(eventType, item);\n sink.push(Object.assign(Object.assign({}, log), { area: 'InstantAnswersWidget' }));\n }, [sink]);\n return {\n instantAnswersResults,\n items: useMemo(() => instantAnswersResults.map((answer) => transformInstantAnswerToSolutionCardItem(answer, isLiteVersion, onRelevancyFeedback, onInstantAnswerLinkClick)), [instantAnswersResults]),\n isLoading: status === 'loading',\n message: status === 'error' ? 'Failed to load results' : null,\n startSearch,\n eventsFunnel,\n };\n}\nfunction transformInstantAnswerToSolutionCardItem(answer, isLiteVersion, onRelevancyFeedback, onInstantAnswerLinkClick) {\n const item = isLiteVersion\n ? fromInstantAnswersLite(answer)\n : SolutionCardMapper.fromInstantAnswers(answer, onInstantAnswerLinkClick);\n return Object.assign(Object.assign({}, item), { contentProps: Object.assign(Object.assign({}, item.contentProps), { onRelevancyFeedback: onRelevancyFeedback && ((sentiment) => onRelevancyFeedback(answer, sentiment)), styles: { fieldSetArea: { paddingTop: '40px', paddingBottom: '40px' } }, logProps: {\n area: 'InstantAnswerWidget',\n data: answer,\n } }) });\n}\nfunction fromInstantAnswersLite(instantAnswer) {\n const content = [];\n let searchType = '';\n switch (instantAnswer.SearchType) {\n case InstantAnswerSearchType.Documentation:\n searchType = 'Azure Docs';\n break;\n case InstantAnswerSearchType.Community:\n searchType = 'Community';\n break;\n case InstantAnswerSearchType.Support:\n searchType = 'Support Cases';\n break;\n case InstantAnswerSearchType.ICM:\n searchType = 'IcM';\n break;\n }\n if (instantAnswer.Content) {\n content.push({\n fieldType: 'markdown',\n label: React.createElement(LiteCardTitle, { searchType: searchType, instantAnswer: instantAnswer }),\n markdown: instantAnswer.Content,\n });\n }\n return {\n importanceLevel: undefined,\n contentProps: {\n fields: content,\n },\n headerProps: undefined,\n data: instantAnswer,\n };\n}\nconst LiteCardTitle = (props) => {\n const classNames = useClassNames();\n const { searchType, instantAnswer } = props;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.searchType }, searchType),\n React.createElement(\"div\", { className: classNames.title },\n React.createElement(AplAction, { href: instantAnswer.Link, isExternal: true }, instantAnswer.Title))));\n};\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { MaxWidgetWidth } from '../Styling/Variables';\nconst classNames = {\n root: 'apl-solutionCard-lite',\n cardItem: 'apl-solutionCard-lite-item',\n};\nexport const useClassNames = (theme, { styles }) => {\n return React.useMemo(() => mergeStyleSets({\n root: [\n classNames.root,\n {\n display: 'flex',\n flexFlow: 'column nowrap',\n maxWidth: MaxWidgetWidth,\n },\n ],\n cardItem: [\n classNames.cardItem,\n {\n border: `2px solid ${theme.palette.neutralLight}`,\n marginTop: '10px',\n },\n ],\n }, styles), [theme]);\n};\n","import React from 'react';\nimport { useTheme } from '@fluentui/react';\nimport { AplSolutionCardContent } from '../SolutionCard/SolutionCardContent/AplSolutionCardContent';\nimport { useClassNames } from './AplSolutionCardLite.styles';\nexport const AplSolutionCardLite = (props) => {\n const { items, eventsFunnel } = props;\n const theme = useTheme();\n const className = useClassNames(theme, props);\n return (React.createElement(\"div\", { role: \"list\", className: className.root }, items === null || items === void 0 ? void 0 : items.map((item, index) => (React.createElement(SolutionCardLiteItem, Object.assign({}, item, { key: `solutioncardLiteItem-${index}`, eventsFunnel: eventsFunnel, className: className.cardItem }))))));\n};\nfunction SolutionCardLiteItem(props) {\n React.useEffect(() => {\n var _a;\n (_a = props.eventsFunnel) === null || _a === void 0 ? void 0 : _a.call(props, 'loaded', props);\n }, [props.eventsFunnel]);\n return (React.createElement(\"div\", { role: \"listitem\", className: props.className },\n React.createElement(AplSolutionCardContent, Object.assign({}, props.contentProps, { importanceLevel: props.importanceLevel, noHeader: true }))));\n}\n","import React from 'react';\nimport { AplInstantAnswersWidgetProvider } from '../Context/AplInstantAnswersWidgetContext';\nimport { AplContext } from '../../Contexts/AplContext';\nimport { MaxWidgetWidth } from '../../Styling/Variables';\nimport { AplWidget } from '../../Elements/BaseWidget';\nimport { useInstantAnswers } from '../AplInstantAnswersUtil';\nimport { AplSolutionCardLite } from '../../SolutionCardLite/AplSolutionCardLite';\nconst AplInstantAnswersWidgetLiteInternal = (props) => {\n const { requestId, noInstantAnswerView, onWidgetLoaded } = props;\n const { instantAnswersResults, message, isLoading, items, startSearch, eventsFunnel } = useInstantAnswers(props, true);\n React.useEffect(() => {\n if (onWidgetLoaded) {\n onWidgetLoaded(instantAnswersResults, isLoading);\n }\n }, [items, isLoading]);\n React.useEffect(() => {\n startSearch(requestId);\n }, [requestId]);\n return (React.createElement(AplWidget, { messages: message ? [{ message, messageType: 'error' }] : [], loader: { isLoading, text: 'Fetching solutions...' }, noItemsView: noInstantAnswerView || React.createElement(React.Fragment, null), styles: { root: { maxWidth: MaxWidgetWidth } } }, items.length ? React.createElement(AplSolutionCardLite, { eventsFunnel: eventsFunnel, items: items }) : null));\n};\nexport const AplInstantAnswersLiteWidget = (props) => {\n return (React.createElement(AplInstantAnswersWidgetProvider, null,\n React.createElement(AplContext, { value: props.context },\n React.createElement(AplInstantAnswersWidgetLiteInternal, Object.assign({}, props)))));\n};\n","import React from 'react';\nconst initialState = {\n status: 'idle',\n};\nconst ApolloReportWidgetContext = React.createContext({ state: initialState, dispatch: () => null });\nconst apolloReportWidgetReducer = (state, action) => {\n switch (action.type) {\n case 'Started':\n return Object.assign(Object.assign({}, state), { status: 'loading' });\n case 'Failed':\n return Object.assign(Object.assign({}, state), { status: 'failed', message: action.errorMessage || 'Failed to load top solution' });\n case 'Success':\n const { payload } = action;\n return Object.assign(Object.assign({}, state), { status: 'completed', solution: payload });\n }\n};\n// eslint-disable-next-line react/prop-types\nconst ApolloReportWidgetProvider = ({ children }) => {\n const [state, dispatch] = React.useReducer(apolloReportWidgetReducer, initialState);\n return (React.createElement(ApolloReportWidgetContext.Provider, { value: { state, dispatch } }, children));\n};\nexport { ApolloReportWidgetProvider, ApolloReportWidgetContext };\n","const addDiagnostic = (diagnostics, addDiagnostics) => {\n diagnostics.map((ApolloReport) => {\n if (!!ApolloReport.replacementKey && !!ApolloReport.diagnosticResult) {\n addDiagnostics.push({\n replacementKey: ApolloReport.replacementKey.replace(/\\s/g, ''),\n requestId: ApolloReport.diagnosticResult.requestId,\n // chartMetadata: ApolloReport.chartMetadata,\n });\n }\n });\n};\nexport class ApolloReportConverter {\n static fromApolloReportApi(ApolloReportsFromApi) {\n if (ApolloReportsFromApi == null) {\n throw 'no data from API';\n }\n const ApolloReports = {\n insights: [],\n instantAnswer: [],\n charts: [],\n metrics: [],\n videos: [],\n videoGroups: [],\n };\n //Get insights from the API.\n if (ApolloReportsFromApi.bindings != null) {\n if (ApolloReportsFromApi.bindings.insights != null) {\n ApolloReportsFromApi.bindings.insights.map((ApolloReport) => {\n if (!!ApolloReport.replacementKey &&\n !!ApolloReport.diagnosticResults &&\n !!(ApolloReport.diagnosticResults.length > 0)) {\n ApolloReports.insights.push({\n replacementKey: ApolloReport.replacementKey.replace(/\\s/g, ''),\n requestIds: ApolloReport.diagnosticResults.map((x) => x.requestId),\n additionalInputsReq: ApolloReport.additionalInputsReq,\n executionText: ApolloReport.executionText,\n timeoutText: ApolloReport.timeoutText,\n noResultText: ApolloReport.noResultText,\n symptomId: ApolloReport.symptomId,\n maxInsightCount: ApolloReport.maxInsightCount,\n });\n }\n else if (!!ApolloReport.replacementKey && !!ApolloReport.additionalInputsReq) {\n ApolloReports.insights.push({\n replacementKey: ApolloReport.replacementKey.replace(/\\s/g, ''),\n requestIds: [],\n additionalInputsReq: ApolloReport.additionalInputsReq,\n executionText: ApolloReport.executionText,\n timeoutText: ApolloReport.timeoutText,\n noResultText: ApolloReport.noResultText,\n symptomId: ApolloReport.symptomId,\n maxInsightCount: ApolloReport.maxInsightCount,\n });\n }\n });\n }\n if (ApolloReportsFromApi.bindings.azurekb != null) {\n ApolloReportsFromApi.bindings.azurekb.map((ApolloReport) => {\n if (!!ApolloReport.replacementKey &&\n !!ApolloReport.solutionSearchResult &&\n !!ApolloReport.solutionSearchResult.matches &&\n !!ApolloReport.solutionSearchResult.matches.length) {\n ApolloReports.instantAnswer.push({\n replacementKey: ApolloReport.replacementKey.replace(/\\s/g, ''),\n data: { instantAnswers: ApolloReport.solutionSearchResult.matches, isPartial: false, isTimedOut: false },\n });\n }\n });\n }\n if (ApolloReportsFromApi.bindings.charts != null) {\n addDiagnostic(ApolloReportsFromApi.bindings.charts, ApolloReports.charts);\n }\n if (ApolloReportsFromApi.bindings.metrics != null) {\n ApolloReportsFromApi.bindings.metrics.map((ApolloReport) => {\n if (!!ApolloReport.replacementKey) {\n ApolloReports.metrics.push({\n replacementKey: ApolloReport.replacementKey.replace(/\\s/g, ''),\n metric: Object.assign({}, ApolloReport),\n });\n }\n });\n }\n if (ApolloReportsFromApi.bindings.videos != null) {\n ApolloReportsFromApi.bindings.videos.map((ApolloReport) => {\n if (!!ApolloReport.replacementKey && !!ApolloReport.src && !!ApolloReport.title) {\n ApolloReports.videos.push({\n replacementKey: ApolloReport.replacementKey.replace(/\\s/g, ''),\n video: { src: ApolloReport.src, title: ApolloReport.title },\n });\n }\n });\n }\n if (ApolloReportsFromApi.bindings.videoGroups != null) {\n ApolloReportsFromApi.bindings.videoGroups.map((ApolloReport) => {\n if (!!ApolloReport.replacementKey && !!ApolloReport.videos) {\n ApolloReports.videoGroups.push({\n replacementKey: ApolloReport.replacementKey.replace(/\\s/g, ''),\n videoGroup: ApolloReport.videos,\n });\n }\n });\n }\n }\n return ApolloReports;\n }\n}\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nconst classNames = {\n loader: 'apl-inline-Loader',\n loaderText: 'apl-inline-loader-text',\n};\nexport function useStyles(theme) {\n const styles = {\n loader: [\n classNames.loader,\n {\n border: `1px solid ${theme.palette.neutralLight}`,\n padding: '10px 20px',\n display: 'flex',\n flexDirection: 'right',\n alignItems: 'right',\n margin: '8px 0',\n },\n ],\n loaderText: [\n classNames.loaderText,\n {\n padding: `5px`,\n },\n ],\n };\n return React.useMemo(() => mergeStyleSets(styles), [theme]);\n}\n","import React from 'react';\nimport { Spinner, SpinnerSize } from '@fluentui/react/lib/Spinner';\nimport { useTheme } from '@fluentui/react';\nimport { useStyles } from './InlineLoader.styles';\nexport const inLineLoader = (label) => {\n const theme = useTheme();\n const classNames = useStyles(theme);\n return (React.createElement(\"div\", { className: classNames.loader },\n React.createElement(Spinner, { size: SpinnerSize.small }),\n \" \",\n React.createElement(\"span\", { className: classNames.loaderText }, label)));\n};\n","import { mergeStyleSets } from '@fluentui/react/lib/Styling';\nconst classNames = {\n root: 'apl-reportInsight-widget-result',\n};\nexport const useClassNames = () => {\n const styleSet = {\n root: [classNames.root, { margin: '12px 0px', fontSize: '13px' }],\n };\n return mergeStyleSets(styleSet);\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AplSolutionCard } from '../../SolutionCard';\nimport { AplContext } from '../../Contexts/AplContext';\nimport { AplInsightWidgetProvider } from '../Context/AplInsightWidgetContext';\nimport { MaxWidgetWidth } from '../../Styling/Variables';\nimport { AplWidget } from '../../Elements/BaseWidget';\nimport { emptyExperienceAplReportInsights, useInsightsSearchForReport } from '../InsightUtil';\nimport { AplLink } from '../../Elements/Link/AplLink';\nimport { inLineLoader } from '../../Elements/InlineLoader/InlineLoader';\nimport { AplSolutionCardLite } from '../../SolutionCardLite/AplSolutionCardLite';\nimport { useClassNames } from './AplReportInsightWidget.styles';\nimport { AplComponentType, useTelemetrySink } from '../../Telemetry';\nconst AplReportInsightWidgetInternal = (props) => {\n var _a;\n const { t } = useTranslation();\n const sink = useTelemetrySink();\n const classNames = useClassNames();\n const { provider, searchCriteria, onWidgetLoaded, targetScopingQuestions, executionText, noResultText, fromDSQ, logData, } = props;\n const { insights, message, statusDetails, items, isLoading, startSearch, eventsFunnel, onClickReRun, isIdle, runCount, loadingStartTime, } = useInsightsSearchForReport(props);\n React.useEffect(() => {\n if (onWidgetLoaded) {\n onWidgetLoaded(insights, isLoading);\n }\n }, [insights, isLoading]);\n React.useEffect(() => {\n startSearch(searchCriteria, provider);\n }, [searchCriteria, provider]);\n React.useEffect(() => {\n if (!isIdle && !isLoading && (!items || items.length === 0)) {\n const solutionWaitTime = loadingStartTime ? Date.now() - loadingStartTime : undefined;\n // no insights found.\n sink.push({\n eventType: 'impression',\n area: 'InsightWidget',\n component: AplComponentType.Insight,\n data: Object.assign(Object.assign({}, logData), { fromDSQInput: fromDSQ || false, status: 'notavailable', reason: 'noinsightsgenerated', insight: { SymptomId: props.symptomId }, runCount: runCount, solutionWaitTime }),\n });\n }\n }, [isLoading, items]);\n return (React.createElement(React.Fragment, null,\n !targetScopingQuestions && !isLoading && (React.createElement(\"div\", { className: classNames.root },\n !!(items === null || items === void 0 ? void 0 : items.length) && (React.createElement(\"span\", null,\n t(targetScopingQuestions ? 'InsightFoundBasedOnInput' : 'InsightFound', { count: items.length }),\n \"\\u00A0\")),\n onClickReRun && (React.createElement(AplLink, { onClick: () => {\n onClickReRun(provider);\n sink.push({\n eventType: 'interaction',\n action: 'rerun',\n area: 'InsightWidget',\n component: AplComponentType.Insight,\n data: {\n fromDSQInput: fromDSQ || false,\n insight: { SymptomId: props.symptomId },\n runCount: (runCount ? runCount : 0) + 1,\n },\n });\n } }, t('RerunDiagnostics'))))),\n React.createElement(AplWidget, { loader: { isLoading, loaderView: inLineLoader((_a = statusDetails !== null && statusDetails !== void 0 ? statusDetails : executionText) !== null && _a !== void 0 ? _a : t('RunningAFewChecks')) }, messages: message ? [{ message: message, messageType: 'error' }] : [], noItemsView: React.createElement(AplSolutionCardLite, { styles: {\n root: {\n selectors: {\n '.apl-solutionCard-lite-item': {\n // Remove top and bottom margin since this is a single item.\n margin: '0px',\n },\n },\n },\n }, eventsFunnel: eventsFunnel, items: emptyExperienceAplReportInsights(statusDetails || noResultText || t('DiagnosticsDidNotDetectIssue')) }), styles: { root: { maxWidth: MaxWidgetWidth } } }, (items === null || items === void 0 ? void 0 : items.length) && React.createElement(AplSolutionCard, { eventsFunnel: eventsFunnel, items: items }))));\n};\nexport const AplReportInsightWidget = (props) => {\n return (React.createElement(AplInsightWidgetProvider, null,\n React.createElement(AplContext, { value: props.context },\n React.createElement(AplReportInsightWidgetInternal, Object.assign({}, props)))));\n};\nexport const AplReportInsightWidgetWithoutProvider = (props) => {\n return (React.createElement(AplContext, { value: props.context },\n React.createElement(AplReportInsightWidgetInternal, Object.assign({}, props))));\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useTheme } from '@fluentui/react';\nimport { Icon } from '@fluentui/react/lib/Icon';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { AplContext } from '../Contexts/AplContext';\nimport { AplWidget } from '../Elements/BaseWidget';\nimport { AplReportInsightWidgetWithoutProvider } from '../Insight/Report/AplReportInsightWidget';\nimport { AplSolutionCardLite } from '../SolutionCardLite/AplSolutionCardLite';\nimport { AplLink } from '../Elements/Link/AplLink';\nimport { useTelemetrySink } from '../Telemetry/AplTelemetrySink';\nimport { transformEventToTelemetryEvent } from '../SolutionCard/SolutionCardUtils';\nimport { AplComponentType } from '../Telemetry';\nimport { inLineLoader } from '../Elements/InlineLoader/InlineLoader';\nimport { AplScopingQuestionsWidgetContext, AplScopingQuestionsWidgetProvider, } from './AplScopingQuestionsWidgetContext';\nimport { AplInsightWidgetContext, AplInsightWidgetProvider } from '../Insight/Context/AplInsightWidgetContext';\nconst AplScopingQuestionsWidgetInternal = (props) => {\n var _a, _b;\n const { t } = useTranslation();\n const { context, symptomId, replacementKey } = props;\n // setting the trigger criteria\n const triggerCriteria = {\n context: context,\n symptomId: symptomId,\n replacementKey,\n };\n const { message, items, hideScopingQuestion, eventsFunnel, displayInsights, isLoadingInsights, isLoading } = useScopingQuestions(props, triggerCriteria);\n const insightsNotLoadedExperience = getInsightsNotLoadedExperience(t('DiagnosticsResultWillAppearHere'));\n return (React.createElement(\"div\", null,\n React.createElement(AplWidget, { loader: {\n isLoading: isLoading,\n loaderView: inLineLoader((_a = t('LoadingDiagnostics')) !== null && _a !== void 0 ? _a : t('RunningAFewChecks')),\n }, messages: [], noItemsView: React.createElement(\"div\", null) },\n React.createElement(AplSolutionCardLite, { items: items, eventsFunnel: eventsFunnel })),\n React.createElement(AplWidget, { loader: {\n isLoading: isLoadingInsights,\n loaderView: inLineLoader((_b = t('LoadingDiagnostics')) !== null && _b !== void 0 ? _b : t('RunningAFewChecks')),\n }, messages: message ? [{ message: message, messageType: 'error' }] : [], noItemsView: React.createElement(\"div\", null) }, !message && items.length > 0 && !!!isLoading && !!!isLoadingInsights && (React.createElement(React.Fragment, null,\n !hideScopingQuestion && React.createElement(AplSolutionCardLite, { items: insightsNotLoadedExperience }),\n hideScopingQuestion && displayInsights())))));\n};\nexport const AplScopingQuestionsWidget = (props) => {\n return (React.createElement(AplInsightWidgetProvider, null,\n React.createElement(AplScopingQuestionsWidgetProvider, null,\n React.createElement(AplContext, { value: props.context },\n React.createElement(AplScopingQuestionsWidgetInternal, Object.assign({}, props))))));\n};\nfunction useScopingQuestions(props, triggerCriteria) {\n const { t } = useTranslation();\n const [hideScopingQuestion, sethideScopingQuestion] = React.useState(false);\n const [scopingQuestionParameters, setScopingQuestionsParameters] = React.useState(new Map());\n const [requiredParametersSuccess, setRequiredParametersSuccess] = React.useState(true);\n const { state, dispatch } = React.useContext(AplScopingQuestionsWidgetContext);\n const insightContext = React.useContext(AplInsightWidgetContext);\n const { message, searchCriteria, status, data } = state;\n const { context, scopingQuestionsProvider, logData } = props;\n const sink = useTelemetrySink();\n const logTelemetry = React.useCallback((eventType, articleId, action, runCount) => {\n if (sink) {\n sink.push({\n data: Object.assign(Object.assign({}, logData), { articleId: articleId, runCount: runCount }),\n eventType: eventType,\n component: AplComponentType.ScopingQuestions,\n area: 'ScopingQuestionsWidget',\n action: action,\n });\n }\n }, []);\n React.useEffect(() => {\n fetchData();\n }, [context, scopingQuestionsProvider]);\n const onSubmitScopingQuestions = React.useCallback((insightProvider, triggerCriteria) => {\n if (insightProvider.triggerInsights) {\n dispatch({ type: 'InsightsTriggered', searchCriteria: {} });\n insightProvider\n .triggerInsights(triggerCriteria)\n .then((result) => {\n dispatch({ type: 'InsightsTriggeredSuccessful', searchCriteria: result });\n })\n .catch((err) => {\n if (!(err === null || err === void 0 ? void 0 : err.isCancelled)) {\n dispatch({ type: 'InsightsTriggeredFailed' });\n }\n });\n }\n }, [dispatch]);\n const onClickSubmit = () => {\n var _a;\n let requiredValid = true;\n triggerCriteria.scopingQuestions = scopingQuestionParameters;\n (_a = triggerCriteria.scopingQuestions) === null || _a === void 0 ? void 0 : _a.forEach((value) => {\n if (value === '') {\n requiredValid = false;\n return;\n }\n });\n insightContext.dispatch({ type: 'InsightRunStarted' });\n setRequiredParametersSuccess(requiredValid);\n if (requiredValid) {\n logTelemetry('interaction', data === null || data === void 0 ? void 0 : data.id, 'RunDiagnostics', insightContext.state.runCount || 0 + 1);\n onSubmitScopingQuestions(props.insightsDataProvider, triggerCriteria);\n sethideScopingQuestion(true);\n }\n };\n const onSetScopingQuestionsParameters = (map) => {\n const tempScpoingQuestions = new Map();\n map.forEach((element) => {\n if (element.formElement.required && element.visibility) {\n tempScpoingQuestions.set(element.formElement.id, element.currentValue ? element.currentValue : '');\n }\n });\n setScopingQuestionsParameters(tempScpoingQuestions);\n };\n const onClickReRun = () => {\n setRequiredParametersSuccess(true);\n sethideScopingQuestion(false);\n setScopingQuestionsParameters(new Map());\n dispatch({ type: 'ResetState' });\n fetchData();\n };\n const fetchData = React.useCallback(() => {\n getData(context, scopingQuestionsProvider, logTelemetry, dispatch);\n }, [dispatch]);\n const displayInsights = () => {\n return (React.createElement(AplReportInsightWidgetWithoutProvider, { fromDSQ: true, context: props.context, provider: props.insightsDataProvider, searchCriteria: searchCriteria, targetScopingQuestions: true, executionText: props.executionText, noResultText: props.noResultText, timeoutText: props.timeoutText, replacementKey: props.replacementKey, symptomId: props.symptomId }));\n };\n const eventsFunnel = React.useCallback((eventType, item) => {\n const log = transformEventToTelemetryEvent(eventType, item);\n sink.push(Object.assign({}, log));\n }, [sink]);\n return {\n items: transformScopingQuestionsToSolutionCardItem(props, hideScopingQuestion, status === 'loadingInsights', requiredParametersSuccess, onSetScopingQuestionsParameters, onClickSubmit, onClickReRun, t, data),\n message: message,\n hideScopingQuestion,\n eventsFunnel,\n displayInsights,\n isLoadingInsights: status === 'loadingInsights',\n isLoading: status === 'loading',\n };\n}\nfunction getInsightsNotLoadedExperience(text) {\n const theme = useTheme();\n const items = [\n {\n importanceLevel: undefined,\n contentProps: {\n fields: [\n {\n fieldType: 'custom',\n component: displayIcon(text, theme),\n },\n ],\n },\n headerProps: undefined,\n },\n ];\n return items;\n}\nfunction transformScopingQuestionsToSolutionCardItem(props, hideScopingQuestion, isLoadingInsight, requiredParametersSuccess, onSetScopingQuestionsParameters, onClickSubmit, onClickReRun, t, data) {\n const theme = useTheme();\n const content = [];\n const label = t('ProvideTheFollowingInfo');\n // showing the content when scoping questions are visible\n if (!hideScopingQuestion && data && data.formElements && data.formElements.length > 0) {\n content.push({\n fieldType: 'custom',\n component: displayIcon(label, theme),\n });\n content.push({\n fieldType: 'dsqForm',\n scopingQuestionsProvider: props.scopingQuestionsProvider,\n context: props.context,\n data: data,\n onSetScopingQuestionsParameters: onSetScopingQuestionsParameters,\n });\n content.push({\n fieldType: 'button',\n onClick: onClickSubmit,\n text: t('RunDiagnostics'),\n });\n }\n if (!requiredParametersSuccess) {\n content.push({\n fieldType: 'custom',\n component: requiredParametersError(t('PleaseInputBeforeRunning'), theme),\n });\n }\n // showing the content when diagnostics are running\n if (hideScopingQuestion && isLoadingInsight) {\n content.push({\n fieldType: 'custom',\n component: displayIcon(label, theme, t('ExecutingDiagnosticsBasedOnInput')),\n });\n }\n // showing the content when diagnostics are complete\n if (hideScopingQuestion && !isLoadingInsight) {\n content.push({\n fieldType: 'custom',\n component: displayIcon(label, theme, t('ViewExecutedDiagnosticsBelow'), t('EditAdditionalInfo'), onClickReRun),\n });\n }\n return content.length > 0\n ? [\n {\n importanceLevel: undefined,\n contentProps: {\n fields: content,\n },\n headerProps: undefined,\n },\n ]\n : [];\n}\nconst displayIcon = (label, theme, text, reRunClicksText, onClickReRun) => {\n return (React.createElement(\"div\", null,\n React.createElement(Stack, { horizontal: true, style: { display: 'flex', alignItems: 'center' } },\n React.createElement(Icon, { iconName: \"InfoSolid\", style: { color: theme.palette.themePrimary, paddingRight: '10px' } }),\n React.createElement(\"div\", { style: { fontWeight: 600 } }, label)),\n text && (React.createElement(\"div\", { style: { paddingTop: '5px', paddingLeft: '23px' } },\n React.createElement(\"span\", { style: { float: 'left' } }, text),\n reRunClicksText && onClickReRun && (React.createElement(\"span\", { style: { float: 'right' } },\n React.createElement(AplLink, { onClick: onClickReRun }, reRunClicksText)))))));\n};\nconst requiredParametersError = (text, theme) => {\n return React.createElement(\"div\", null, text && React.createElement(\"span\", { style: { color: theme.palette.red, textDecoration: 'bold' } }, text));\n};\n/**\n * gets the top solution\n * @param solutionId\n * @param provider\n * @param dispatch\n */\nfunction getData(context, provider, logTelemetry, dispatch) {\n dispatch({ type: 'ScopingQuestionsStarted' });\n provider\n .getScopingQuestions(context)\n .then((res) => {\n dispatch({ type: 'ScopingQuestionsSuccess', payload: res });\n logTelemetry('impression', res.id);\n })\n .catch((errorMessage) => {\n dispatch({ type: 'ScopingQuestionsFailed', errorMessage: errorMessage });\n });\n}\n","import { useTheme } from '@fluentui/react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nconst classNames = {\n root: 'apl-video-widget',\n title: 'apl-video-title',\n video: 'apl-video-size',\n};\nexport function useStyles(props) {\n const theme = useTheme();\n const { palette } = theme;\n const styles = {\n root: [\n classNames.root,\n {\n maxWidth: '700px',\n border: `1px solid ${palette.neutralLight}`,\n marginRight: '30px',\n display: 'flex',\n flexFlow: 'column nowrap',\n },\n ],\n title: [\n classNames.title,\n {\n display: 'inline-block',\n padding: '20px 10px 24px 10px',\n },\n ],\n video: [\n classNames.video,\n {\n width: '100%',\n height: '60vw',\n maxWidth: '700px',\n maxHeight: '500px',\n },\n ],\n };\n return mergeStyleSets(styles, props.styles);\n}\n","import React from 'react';\nimport { Text } from '@fluentui/react/lib/Text';\nimport { MaxWidgetWidth } from '../Styling/Variables';\nimport { AplWidget } from '../Elements/BaseWidget';\nimport { AplContext } from '../Contexts';\nimport { useStyles } from './AplVideo.style';\nimport { useTelemetrySink } from '../Telemetry/AplTelemetrySink';\nimport { useId } from '../Utils/useId';\nimport { useAplLog } from '../Telemetry/AplLog';\nimport { AplComponentType } from '../Telemetry/AplTelemetry.types';\nconst AplVideoWidgetInternal = (props) => {\n return (React.createElement(AplWidget, { loader: { isLoading: false }, messages: [], noItemsView: props.video || React.createElement(\"div\", null), styles: { root: { maxWidth: MaxWidgetWidth } } }, props.video ? React.createElement(VideoContent, Object.assign({}, props)) : null));\n};\nexport function VideoContent(props) {\n const classNames = useStyles(props);\n const { video, logData } = props;\n const sink = useTelemetrySink();\n const log = useAplLog();\n const videoId = useId('aplVideo');\n //BUGBUG 10955414: This is a hack below. need to use the correct way to make telemetry call only once\n let IsVideoShown = false;\n let IsVideoPlayed = false;\n const postMessageHandler = React.useCallback((element, event) => {\n const actionLog = {\n component: AplComponentType.Video,\n data: Object.assign(Object.assign({}, logData), { src: video === null || video === void 0 ? void 0 : video.src, title: video === null || video === void 0 ? void 0 : video.title }),\n eventType: 'impression',\n };\n let data = event === null || event === void 0 ? void 0 : event.data;\n if (typeof (event === null || event === void 0 ? void 0 : event.data) === 'string') {\n data = JSON.parse(event === null || event === void 0 ? void 0 : event.data);\n }\n if ((data === null || data === void 0 ? void 0 : data.event) === 'onReady' && event.source == element && !IsVideoShown) {\n actionLog.eventType = 'impression';\n sink.push((log ? Object.assign({ eventType: actionLog.eventType, innerLog: actionLog }, log) : actionLog));\n IsVideoShown = true;\n }\n else if (event.source == element &&\n (data === null || data === void 0 ? void 0 : data.event) === 'infoDelivery' &&\n (data === null || data === void 0 ? void 0 : data.info) &&\n (data === null || data === void 0 ? void 0 : data.info.playerState) &&\n (data === null || data === void 0 ? void 0 : data.info.playerState) === 1 &&\n !IsVideoPlayed) {\n IsVideoPlayed = true;\n actionLog.eventType = 'interaction';\n sink.push((log ? Object.assign({ eventType: actionLog.eventType, innerLog: actionLog }, log) : actionLog));\n }\n }, [IsVideoPlayed, IsVideoShown, sink]);\n const url = React.useMemo(() => ((video === null || video === void 0 ? void 0 : video.src) ? computeVideoUrl(video.src) : null), [video === null || video === void 0 ? void 0 : video.src]);\n React.useEffect(() => {\n let listener;\n setInterval(() => {\n const iframe = document.getElementById(videoId);\n const frameContentWindow = iframe && iframe.contentWindow;\n if (frameContentWindow) {\n listener = window.addEventListener('message', (event) => {\n postMessageHandler(frameContentWindow, event);\n });\n }\n frameContentWindow === null || frameContentWindow === void 0 ? void 0 : frameContentWindow.postMessage(`{\"event\":\"listening\",\"id\": \"\"}`, '*');\n }, 100);\n return () => {\n window.removeEventListener('message', listener);\n };\n }, [videoId]);\n return (React.createElement(\"div\", { className: classNames.root },\n url ? (React.createElement(\"iframe\", { \"data-testid\": \"videoWidgetIFrameTestId\", id: videoId, src: url, title: video === null || video === void 0 ? void 0 : video.title, frameBorder: \"0\", sandbox: \"allow-scripts allow-same-origin allow-popups allow-presentation\", className: classNames.video, allowFullScreen: true })) : null,\n React.createElement(Text, { className: classNames.title }, video === null || video === void 0 ? void 0 : video.title)));\n}\nexport const AplVideoWidget = (props) => {\n return (React.createElement(AplContext, { value: props.context },\n React.createElement(AplVideoWidgetInternal, Object.assign({}, props))));\n};\nconst ytRegex = /[/.]youtube(-nocookie)?\\.com\\/watch\\?v=([^\"<> ]+)$/;\nconst channel9Regex = /[/.](channel9.msdn.com[^\"<>? ]+)(\\?[^\"<> ]+)?$/;\nfunction computeVideoUrl(url) {\n const matchYoutube = ytRegex.exec(url);\n const matchChannel9 = channel9Regex.exec(url);\n if (matchYoutube) {\n const videoId = matchYoutube[2];\n return 'https://www.youtube-nocookie.com/embed/' + videoId + '?enablejsapi=1&rel=0';\n }\n else if (matchChannel9) {\n const uri = matchChannel9[1];\n return 'https://' + uri + '/player?nocookie=true';\n }\n else {\n return null;\n }\n}\n","import { mergeStyleSets } from '@fluentui/react/lib/Styling';\nconst classNames = {\n root: 'apl-videogroup-widget',\n title: 'apl-videogroup-title',\n videoGroup: 'apl-videogroup-size',\n};\nexport function useStyles(props) {\n const styles = {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n marginRight: '30px',\n selectors: {\n '.apl-video-widget': { maxWidth: '320px' },\n },\n },\n ],\n title: [\n classNames.title,\n {\n display: 'inline-block',\n padding: '20px 10px 24px 10px',\n },\n ],\n videoGroup: [\n classNames.videoGroup,\n {\n width: '100%',\n height: '60vw',\n maxWidth: '320px',\n maxHeight: '180px',\n },\n ],\n };\n return mergeStyleSets(styles, props.styles);\n}\n","import React from 'react';\nimport { AplWidget } from '../Elements/BaseWidget';\nimport { AplContext } from '../Contexts';\nimport { useStyles } from './AplVideoGroup.style';\nimport { VideoContent } from '../Video/AplVideoWidget';\nimport { useTelemetrySink } from '../Telemetry/AplTelemetrySink';\nimport { AplComponentType } from '../Telemetry/AplTelemetry.types';\nexport const AplVideoGroupWidget = (props) => {\n const { videoGroup, context, logData } = props;\n const classNames = useStyles(props);\n const sink = useTelemetrySink();\n React.useEffect(() => {\n sink.push({\n eventType: 'impression',\n area: 'VideoGroupWidget',\n component: AplComponentType.VideoGroup,\n data: Object.assign({}, logData),\n });\n }, [logData]);\n return (React.createElement(AplContext, { value: props.context },\n React.createElement(AplWidget, { loader: { isLoading: false }, messages: [], noItemsView: React.createElement(React.Fragment, null) }, props.videoGroup ? (React.createElement(\"div\", { className: classNames.root }, videoGroup === null || videoGroup === void 0 ? void 0 : videoGroup.map((video, index) => (React.createElement(VideoContent, { key: `videoGroup${index}`, video: video, context: context, styles: { root: classNames.root, title: classNames.title, video: classNames.videoGroup }, logData: logData }))))) : null)));\n};\n","export var FilterComparisonOperator;\n(function (FilterComparisonOperator) {\n FilterComparisonOperator[FilterComparisonOperator[\"Equal\"] = 0] = \"Equal\";\n FilterComparisonOperator[FilterComparisonOperator[\"NotEqual\"] = 1] = \"NotEqual\";\n FilterComparisonOperator[FilterComparisonOperator[\"Contains\"] = 2] = \"Contains\";\n FilterComparisonOperator[FilterComparisonOperator[\"StartsWith\"] = 3] = \"StartsWith\";\n})(FilterComparisonOperator || (FilterComparisonOperator = {}));\nexport var MonitorChartV2AggregationType;\n(function (MonitorChartV2AggregationType) {\n /**\n * No aggregation. Invalid value.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"None\"] = 0] = \"None\";\n /**\n * Sum of metric values per bucket.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"Sum\"] = 1] = \"Sum\";\n /**\n * Minimum of metric values per bucket.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"Min\"] = 2] = \"Min\";\n /**\n * Maximum of metric values per bucket.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"Max\"] = 3] = \"Max\";\n /**\n * Average of metric values per bucket.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"Avg\"] = 4] = \"Avg\";\n /**\n * Unique count of metric values per bucket.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"Unique\"] = 5] = \"Unique\";\n /**\n * 90th Percentile of metric values per bucket.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"Percentile\"] = 6] = \"Percentile\";\n /**\n * Count of metric values per bucket.\n */\n MonitorChartV2AggregationType[MonitorChartV2AggregationType[\"Count\"] = 7] = \"Count\";\n})(MonitorChartV2AggregationType || (MonitorChartV2AggregationType = {}));\n","import { FilterComparisonOperator, MonitorChartV2AggregationType } from './MetricBladeUtil.types';\n/**\n * Convert to monitor-chat timespan. The format of the provided timeSpanDuration should be in\n * format of [0-9]*[MHD]. M for minute, H for hour and D for day.\n * The default timespan would be 1 day.\n */\nconst convertToMonitorChartTimespanValue = (timeSpanDuration) => {\n let value = 1 * 24 * 60 * 60 * 1000;\n if (!timeSpanDuration) {\n return value;\n }\n const strPartDuration = timeSpanDuration.substring(timeSpanDuration.length - 1);\n const numPartDuration = timeSpanDuration.substring(0, timeSpanDuration.length - 1);\n switch (strPartDuration.toUpperCase()) {\n case 'M':\n value = 1 * 60 * 1000; //Minute\n break;\n case 'H':\n value = 1 * 60 * 60 * 1000; //Hour\n break;\n case 'D':\n value = 1 * 24 * 60 * 60 * 1000; //Day\n break;\n }\n value = value * parseInt(numPartDuration);\n return value;\n};\nconst convertToMonitorChartAggregationType = (iMetricAggregationType) => {\n if (!iMetricAggregationType) {\n return MonitorChartV2AggregationType.Sum;\n }\n switch (iMetricAggregationType) {\n case 'Sum':\n return MonitorChartV2AggregationType.Sum;\n case 'Avg':\n return MonitorChartV2AggregationType.Avg;\n case 'Count':\n return MonitorChartV2AggregationType.Count;\n case 'Min':\n return MonitorChartV2AggregationType.Min;\n case 'Max':\n return MonitorChartV2AggregationType.Max;\n }\n};\nconst convertToMonitorChartFilters = (filterGroups) => {\n var _a;\n const filters = [];\n if (!filterGroups) {\n return filters;\n }\n (_a = filterGroups.filter) === null || _a === void 0 ? void 0 : _a.forEach((filter) => {\n filters.push({\n key: filter.name,\n operator: convertToMetricOperationType(filter.operator),\n values: filter.values.split(','),\n });\n });\n return filters;\n};\nconst convertToMetricOperationType = (operationType) => {\n switch (operationType.toLowerCase()) {\n case 'startswith':\n return FilterComparisonOperator.StartsWith;\n case 'ne':\n return FilterComparisonOperator.NotEqual;\n case 'eq':\n default:\n return FilterComparisonOperator.Equal;\n }\n};\nexport const convertToMetricBladeParams = (metric, resourceId) => {\n const bladeParams = {};\n bladeParams['ResourceId'] = resourceId;\n // time context\n const timeContext = {\n relative: { duration: convertToMonitorChartTimespanValue(metric.timeSpanDuration) },\n options: {\n // automatic\n grain: 1,\n // default to use local time\n showUTCTime: false,\n },\n };\n bladeParams['TimeContext'] = JSON.stringify(timeContext);\n const monitorChartV2Options = {\n metrics: [\n {\n resourceMetadata: {\n id: resourceId,\n },\n name: metric.name,\n aggregationType: convertToMonitorChartAggregationType(metric.aggregationType),\n },\n ],\n title: metric.title,\n visualization: {\n disablePinning: true,\n },\n filterCollection: convertToMonitorChartFilters(metric.filterGroup),\n };\n bladeParams['Chart'] = JSON.stringify(monitorChartV2Options);\n return bladeParams;\n};\n","export var ProvisioningState;\n(function (ProvisioningState) {\n ProvisioningState[\"Succeeded\"] = \"Succeeded\";\n ProvisioningState[\"Failed\"] = \"Failed\";\n ProvisioningState[\"Canceled\"] = \"Canceled\";\n ProvisioningState[\"Running\"] = \"Running\";\n ProvisioningState[\"Queued\"] = \"Queued\";\n ProvisioningState[\"MissingPrerequisite\"] = \"MissingPrerequisite\";\n})(ProvisioningState || (ProvisioningState = {}));\n// Aligns with https://msazure.visualstudio.com/One/_git/EngSys-TriageResourceProvider?path=/src/Services/ArmGateway/ArmGateway.Sdk/Models/V2020-07-01-preview/Insights/ImportanceLevel.cs\nexport var DiagnosticInsightImportanceLevel;\n(function (DiagnosticInsightImportanceLevel) {\n DiagnosticInsightImportanceLevel[DiagnosticInsightImportanceLevel[\"Critical\"] = 0] = \"Critical\";\n DiagnosticInsightImportanceLevel[DiagnosticInsightImportanceLevel[\"Warning\"] = 1] = \"Warning\";\n DiagnosticInsightImportanceLevel[DiagnosticInsightImportanceLevel[\"Information\"] = 1] = \"Information\";\n})(DiagnosticInsightImportanceLevel || (DiagnosticInsightImportanceLevel = {}));\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ClientType } from '../Contracts/IClients';\nimport { AplAction } from '../Elements/Action/AplAction';\nimport { convertToMetricBladeParams } from './Utils/MetricBladeUtil';\nexport const AplMetricBladeLink = (props) => {\n const { t } = useTranslation();\n const { metric, resourceId, actionHandler, clientType, logData } = props;\n if (clientType != ClientType.External || !resourceId) {\n return React.createElement(React.Fragment, null);\n }\n const metricText = t('MonitorMetricBladeLink');\n const dataBladeName = 'Microsoft_Azure_MonitoringMetrics.Metrics.ReactView';\n return (React.createElement(AplAction, { onClick: () => {\n // invoke actionHandler and let the client handle the click.\n if (actionHandler) {\n actionHandler({\n dataBlade: dataBladeName,\n additionalData: Object.assign(Object.assign({}, convertToMetricBladeParams(metric, resourceId)), { title: metricText, reportId: (logData === null || logData === void 0 ? void 0 : logData.reportId) || '' }),\n });\n }\n }, logData: { 'data-blade': dataBladeName, reportId: (logData === null || logData === void 0 ? void 0 : logData.reportId) || '' } }, [metricText]));\n};\n","import { InstantAnswerConfidenceLevel, InstantAnswerSearchType } from '../Contracts/IInstantAnswersSearchResult';\nexport function convertApolloJSON(apolloItemResponse) {\n const apolloResultProperties = apolloItemResponse === null || apolloItemResponse === void 0 ? void 0 : apolloItemResponse.properties;\n const apolloResultReplacementMap = apolloResultProperties === null || apolloResultProperties === void 0 ? void 0 : apolloResultProperties.replacementMaps;\n const insights = parseInsightContent(apolloResultReplacementMap === null || apolloResultReplacementMap === void 0 ? void 0 : apolloResultReplacementMap.diagnostics);\n const videos = parseVideoContent(apolloResultReplacementMap === null || apolloResultReplacementMap === void 0 ? void 0 : apolloResultReplacementMap.videos);\n const videoGroups = parseVideoGroupContent(apolloResultReplacementMap === null || apolloResultReplacementMap === void 0 ? void 0 : apolloResultReplacementMap.videoGroups);\n const azurekb = parseAzureKBResults(apolloResultReplacementMap === null || apolloResultReplacementMap === void 0 ? void 0 : apolloResultReplacementMap.webResults);\n const metrics = parseMetricsContent(apolloResultReplacementMap === null || apolloResultReplacementMap === void 0 ? void 0 : apolloResultReplacementMap.metricsBasedCharts);\n const sections = parseSectionContent(apolloResultProperties === null || apolloResultProperties === void 0 ? void 0 : apolloResultProperties.sections);\n const apolloReport = {\n id: apolloResultProperties === null || apolloResultProperties === void 0 ? void 0 : apolloResultProperties.solutionId,\n title: apolloResultProperties === null || apolloResultProperties === void 0 ? void 0 : apolloResultProperties.title,\n htmlContent: (apolloResultProperties === null || apolloResultProperties === void 0 ? void 0 : apolloResultProperties.content) ? apolloResultProperties === null || apolloResultProperties === void 0 ? void 0 : apolloResultProperties.content : '',\n bindings: { insights, videos, videoGroups, azurekb, metrics },\n sections,\n };\n return apolloReport;\n}\nexport function parseSectionContent(sections) {\n const apolloSections = [];\n if (!(sections === null || sections === void 0 ? void 0 : sections.length)) {\n return apolloSections;\n }\n sections.forEach((section) => {\n var _a, _b, _c, _d, _e;\n let apolloInsights = [];\n let apolloVideos = [];\n let apolloVideoGroups = [];\n let apolloAzureKB = [];\n let apolloMetrics = [];\n if ((_a = section.replacementMaps) === null || _a === void 0 ? void 0 : _a.diagnostics) {\n apolloInsights = parseInsightContent(section.replacementMaps.diagnostics);\n }\n if ((_b = section.replacementMaps) === null || _b === void 0 ? void 0 : _b.videos) {\n apolloVideos = parseVideoContent(section.replacementMaps.videos);\n }\n if ((_c = section === null || section === void 0 ? void 0 : section.replacementMaps) === null || _c === void 0 ? void 0 : _c.videoGroups) {\n apolloVideoGroups = parseVideoGroupContent(section.replacementMaps.videoGroups);\n }\n if ((_d = section === null || section === void 0 ? void 0 : section.replacementMaps) === null || _d === void 0 ? void 0 : _d.webResults) {\n apolloAzureKB = parseAzureKBResults(section.replacementMaps.webResults);\n }\n if ((_e = section === null || section === void 0 ? void 0 : section.replacementMaps) === null || _e === void 0 ? void 0 : _e.metricsBasedCharts) {\n apolloMetrics = parseMetricsContent(section === null || section === void 0 ? void 0 : section.replacementMaps.metricsBasedCharts);\n }\n apolloSections.push({\n title: section.title,\n htmlContent: section.content || '',\n bindings: {\n insights: apolloInsights,\n videos: apolloVideos,\n videoGroups: apolloVideoGroups,\n azurekb: apolloAzureKB,\n metrics: apolloMetrics,\n },\n });\n });\n return apolloSections;\n}\nexport function parseVideoContent(videos) {\n const apolloVideos = [];\n if (!(videos === null || videos === void 0 ? void 0 : videos.length)) {\n return apolloVideos;\n }\n videos.map((video) => {\n const src = video.src;\n const title = video.title;\n const replacementKey = video.replacementKey;\n apolloVideos.push({\n replacementKey,\n src,\n title,\n });\n });\n return apolloVideos;\n}\nexport function parseVideoGroupContent(videoGroups) {\n const apolloVideoGroups = [];\n if (!(videoGroups === null || videoGroups === void 0 ? void 0 : videoGroups.length)) {\n return apolloVideoGroups;\n }\n videoGroups.forEach((videoGroup) => {\n const replacementKey = videoGroup.replacementKey;\n const apolloVideos = videoGroup.videos.map((video) => {\n return {\n src: video.src,\n title: video.title,\n };\n });\n apolloVideoGroups.push({\n replacementKey,\n videos: apolloVideos,\n });\n });\n return apolloVideoGroups;\n}\nexport function parseMetricsContent(metrics) {\n const apolloMetrics = [];\n if (!(metrics === null || metrics === void 0 ? void 0 : metrics.length)) {\n return apolloMetrics;\n }\n metrics.forEach((metric) => {\n var _a;\n const name = metric.name;\n const title = metric.title;\n const aggregationType = metric.aggregationType ? metric.aggregationType : 'Sum';\n const timeSpanDuration = metric.timeSpanDuration;\n const replacementKey = metric.replacementKey;\n const filterGroup = metric.filterGroup;\n const metricFilterGroup = { filter: [] };\n (_a = filterGroup === null || filterGroup === void 0 ? void 0 : filterGroup.filter) === null || _a === void 0 ? void 0 : _a.forEach((filter) => {\n var _a;\n return (_a = metricFilterGroup.filter) === null || _a === void 0 ? void 0 : _a.push({\n name: filter.name,\n values: filter.values,\n operator: filter.operator,\n });\n });\n apolloMetrics.push({\n replacementKey,\n name,\n title,\n aggregationType,\n timeSpanDuration,\n filterGroup: metricFilterGroup,\n });\n });\n return apolloMetrics;\n}\nexport function parseAzureKBResults(azureKBDataResults) {\n const azureKBData = [];\n if (!(azureKBDataResults === null || azureKBDataResults === void 0 ? void 0 : azureKBDataResults.length)) {\n return azureKBData;\n }\n azureKBDataResults.forEach((azureKBDataResult) => {\n const replacementKey = azureKBDataResult.replacementKey;\n const aplSolutionBindingInstantAnswer = {\n replacementKey,\n solutionSearchResult: {\n matches: !!azureKBDataResult.searchResults\n ? azureKBDataResult.searchResults.map((searchResult) => {\n return {\n ResultId: searchResult.solutionId,\n Content: searchResult.content,\n Title: searchResult.title,\n SubTitle: '',\n Score: 0,\n Confidence: InstantAnswerConfidenceLevel.High,\n OverAllRank: searchResult.rank,\n UnifiedConfidence: InstantAnswerConfidenceLevel.High,\n UnifiedRank: searchResult.rank,\n Link: searchResult.link,\n SearchType: searchResult.resultType === \"Documentation\" /* Documentation */\n ? InstantAnswerSearchType.Documentation\n : InstantAnswerSearchType.Community,\n Source: searchResult.source,\n };\n })\n : [],\n },\n };\n azureKBData.push(aplSolutionBindingInstantAnswer);\n });\n return azureKBData;\n}\nexport function parseInsightContent(insights) {\n const apolloInsights = [];\n if (!(insights === null || insights === void 0 ? void 0 : insights.length)) {\n return apolloInsights;\n }\n insights.forEach((insight) => {\n const symptomId = insight.solutionId;\n const replacementKey = insight.replacementKey;\n const diagnosticResults = [];\n // Dummy request id is used to pass condition check to render insight in the current framework;\n // Apollo Extension is using replacment key to track each of the insight block instead of request ids.\n // https://msazure.visualstudio.com/One/_workitems/edit/15018641/\n diagnosticResults.push({\n symptomId,\n requestId: 'dummy_request_id',\n });\n const additionalInputsReq = insight.status === \"MissingInputs\" /* MissingInputs */;\n apolloInsights.push({\n symptomId,\n replacementKey,\n diagnosticResults,\n additionalInputsReq,\n executionText: insight.status === \"Running\" /* Running */ ? insight.statusDetails : undefined,\n });\n });\n return apolloInsights;\n}\n","// This file was copied from packages/fx/src/components/Filter/util/guid.ts\nexport const generateGuid = () => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n});\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { convertApolloJSON } from './ApolloConversionHelper';\nimport { DiagnosticInsightImportanceLevel } from './ApolloProvider.types';\nimport { generateGuid } from './guid';\n// ApolloDataProvider implements IApolloReportDataProvider and IAplInsightDataProvider given an input RPC client.\n// It is expected that the client code will provide an RPC client implementation will handle all authentication and\n// provide a working fetch function to call the ARM endpoint.\n// IMPORTANT: The client side code must call ApolloDataProvider.cleanup() when ApolloDataProvider is deallocated.\nexport class ApolloDataProvider {\n constructor(aplRpc) {\n this.ARM_API_VERSION = '2020-07-01-preview';\n this.POLLING_INTERVAL_MS = 5000;\n this._apolloContext = {};\n this._cleanup = false;\n this._aplRpc = aplRpc;\n this._resourceName = generateGuid();\n }\n /**\n * This returns the matching insight from the Apollo ARM GetResult API response.\n * Each search criteria maps to one insight block, which in turn maps to one replacement key.\n * ReplacementKey for the insight block is used to identify and return the correct insight block.\n * Therefore, replacement keys must be provided in the search criteria.\n * This function is periodically triggered by the Apollo control. For efficiency, we do not call the GetResult API\n * each time. Rather, the GetResult API is periodically called by a recursive function in triggerApolloReport and\n * cached. searchInsights finds and returns the result from the cache when invoked.\n * @param {IAplInsightSearchCriteria} searchCriteria\n * @returns {Promise}\n */\n searchInsights(searchCriteria) {\n if (!this._cachedApolloItemResponse) {\n // This condition should not happen as triggerApolloReport will store the Apollo item response in the cache\n return new Promise((_resolve, reject) => reject(Error('Cached version of Apollo report not ready yet.')));\n }\n if (!(searchCriteria === null || searchCriteria === void 0 ? void 0 : searchCriteria.replacementKey)) {\n return new Promise((_resolve, reject) => reject(Error('Required parameter (replacement key) to fetch Apollo insight is missing.')));\n }\n return new Promise((resolve, reject) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n try {\n // Search top level replacement map for matching diagnostic\n let diagnostic = (_d = (_c = (_b = (_a = this._cachedApolloItemResponse) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.replacementMaps) === null || _c === void 0 ? void 0 : _c.diagnostics) === null || _d === void 0 ? void 0 : _d.find((diagnostic) => diagnostic.replacementKey === searchCriteria.replacementKey);\n // If diagnostic not found in top level replacement map, search section replacement maps\n if (!diagnostic) {\n (_g = (_f = (_e = this._cachedApolloItemResponse) === null || _e === void 0 ? void 0 : _e.properties) === null || _f === void 0 ? void 0 : _f.sections) === null || _g === void 0 ? void 0 : _g.forEach((section) => {\n var _a, _b;\n const sectionDiagnostic = (_b = (_a = section.replacementMaps) === null || _a === void 0 ? void 0 : _a.diagnostics) === null || _b === void 0 ? void 0 : _b.find((diagnostic) => {\n return (diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.replacementKey) === searchCriteria.replacementKey;\n });\n diagnostic = diagnostic !== null && diagnostic !== void 0 ? diagnostic : sectionDiagnostic;\n });\n }\n // If no diagnostic found in top level replacement map or section replacement maps, reject due to internal error\n if (!diagnostic) {\n reject(Error(`No diagnostic found for input replacement key: ${searchCriteria.replacementKey}. Resource name: ${this._resourceName}`));\n }\n const insights = [];\n (_h = diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.insights) === null || _h === void 0 ? void 0 : _h.forEach((insight) => {\n var _a, _b, _c, _d;\n insights.push({\n Id: (_a = insight.id) !== null && _a !== void 0 ? _a : '',\n Title: (_b = insight.title) !== null && _b !== void 0 ? _b : '',\n SymptomId: diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.solutionId,\n ImportanceLevel: insight.importanceLevel\n ? DiagnosticInsightImportanceLevel[insight.importanceLevel]\n : DiagnosticInsightImportanceLevel.Information,\n CustomerReadyContent: { ArticleId: (_c = insight.id) !== null && _c !== void 0 ? _c : '', ArticleContent: (_d = insight.results) !== null && _d !== void 0 ? _d : '' },\n });\n });\n // If we are missing an expected input, throw an error due to internal bug or diagnostic authoring issue\n if ((diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.status) === \"MissingInputs\" /* MissingInputs */) {\n reject(Error(`Diagnostic is missing required inputs. Replacement key: ${searchCriteria.replacementKey}. Resource name: ${this._resourceName}`));\n }\n resolve({\n isPartial: (diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.status) === \"Running\" /* Running */,\n isTimedout: (diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.status) === \"Timeout\" /* Timeout */,\n statusDetails: diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.statusDetails,\n insights: (diagnostic === null || diagnostic === void 0 ? void 0 : diagnostic.status) === \"Succeeded\" /* Succeeded */ ? insights : [],\n });\n }\n catch (error) {\n reject(`Failed to search for insights via ARM due to ${error}.`);\n }\n });\n }\n /**\n * This calls the Apollo ARM UpdateReport API.\n * triggerInsights is invoked in the following two scenarios:\n * 1. When the user clicks the rerun button which which retriggers the insights\n * 2. When a DSQ is submitted. This also in retriggers the insights with additional parameters provided by the user.\n * In this implementation, the replacement key is used to identify which insight to trigger.\n * This means the replacement keys are needed to be recorded after triggering apollo report,\n * and returned in the search criteria.\n * @param {IAplInsightTriggerCriteria} triggerCriteria\n * @returns {Promise}\n */\n triggerInsights(triggerCriteria) {\n if (Object.keys(this._apolloContext).length === 0) {\n return new Promise((_resolve, reject) => reject(Error('Apollo report must be triggered before triggering insights.')));\n }\n if (!(triggerCriteria === null || triggerCriteria === void 0 ? void 0 : triggerCriteria.replacementKey)) {\n return new Promise((_resolve, reject) => reject(Error('Required parameter (replacement key) to trigger Apollo insights is missing.')));\n }\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n const requestUri = this.constructRequestUriHelper(this._apolloContext, this._resourceName);\n const bodyParameters = this.deriveRequestBodyParameters(this._apolloContext, triggerCriteria.scopingQuestions);\n const rpcParameters = {\n uri: requestUri,\n type: \"PATCH\" /* Patch */,\n content: this.constructRequestBodyHelper(bodyParameters, triggerCriteria.replacementKey),\n };\n yield this._aplRpc\n .fetch(rpcParameters)\n .then((res) => {\n // Update the cache so following searchInsight calls are able to get the latest result\n this._cachedApolloItemResponse = res;\n // Start polling again\n this._timeoutId = setTimeout(() => this.pollSolution(requestUri), this.POLLING_INTERVAL_MS);\n // Replacement key is the only property used in searchInsight function\n resolve({\n // Dummy request id is used to pass condition check to render insight in the current framework\n // https://msazure.visualstudio.com/One/_workitems/edit/15018641/\n requestIds: ['dummy_request_id'],\n replacementKey: triggerCriteria.replacementKey,\n });\n })\n .catch((error) => {\n console.error(`Unable to trigger insights due to error: ${error}`);\n return new Promise((_resolve, reject) => reject(`Unable to trigger insights due to error: ${error}`));\n });\n }\n catch (error) {\n reject(`Failed to trigger insights via ARM due to ${error}`);\n }\n }));\n }\n /**\n * Trigger Apollo Report\n * @param {IAplReportTriggerCriteria} triggerCriteria\n * @param {IAplContext} context\n * @returns {Promise}\n */\n triggerApolloReport(_, context) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n this._apolloContext = context;\n const requestUri = this.constructRequestUriHelper(context, this._resourceName);\n const bodyParameters = this.deriveRequestBodyParameters(context);\n const rpcParameters = {\n uri: requestUri,\n type: \"PUT\" /* Put */,\n content: this.constructRequestBodyHelper(bodyParameters),\n };\n const responseDataObject = yield this._aplRpc.fetch(rpcParameters);\n this._cachedApolloItemResponse = responseDataObject;\n if (responseDataObject.hasOwnProperty('error')) {\n reject('Failed to trigger Apollo report via ARM.');\n }\n // Start polling (begin recursion)\n this._timeoutId = setTimeout(() => this.pollSolution(requestUri), this.POLLING_INTERVAL_MS);\n return resolve(convertApolloJSON(responseDataObject));\n }\n catch (error) {\n reject(`Failed to trigger Apollo report via ARM due to ${error}`);\n }\n }));\n });\n }\n /**\n * Poll the apollo solution periodically until terminated state, or the class instance is cleaned up.\n * @param requestUri requestUri\n */\n pollSolution(requestUri) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n clearTimeout(this._timeoutId);\n // Stop polling if this instance has been cleaned up.\n if (this._cleanup) {\n return resolve();\n }\n // Stop polling if in terminated state\n if (((_a = this._cachedApolloItemResponse) === null || _a === void 0 ? void 0 : _a.properties.provisioningState) === \"Succeeded\" /* Succeeded */ ||\n ((_b = this._cachedApolloItemResponse) === null || _b === void 0 ? void 0 : _b.properties.provisioningState) === \"Failed\" /* Failed */) {\n return resolve();\n }\n const rpcParametersForGet = {\n uri: requestUri,\n type: \"GET\" /* Get */,\n };\n this._cachedApolloItemResponse = yield this._aplRpc.fetch(rpcParametersForGet);\n this._timeoutId = setTimeout(() => this.pollSolution(requestUri), this.POLLING_INTERVAL_MS);\n }\n catch (error) {\n reject(`Failed to poll Apollo report via ARM due to ${error}`);\n }\n }));\n });\n }\n // Must be called when ApolloDataProvider is deallocated\n cleanup() {\n clearTimeout(this._timeoutId);\n this._cleanup = true;\n }\n constructRequestUriHelper(context, resourceName) {\n let uri = this._aplRpc.baseEndpoint.replace(/\\/$/, '');\n if (context.resourceId) {\n uri += context.resourceId;\n }\n else if (context.subscriptionId) {\n uri += `/subscriptions/${context.subscriptionId}`;\n }\n else {\n throw Error(`Missing resource id and subscription id. At least one needs to be provided to invoke apollo`);\n }\n uri += `/providers/Microsoft.Diagnostics/apollo/${resourceName}?api-version=${this.ARM_API_VERSION}`;\n return uri;\n }\n constructRequestBodyHelper(parameters, replacementKey) {\n let triggerCriteria;\n // Replacement key should be passed in as trigger criteria for update operation to run a specific insight/DSQ block.\n // If no replacement key, trigger by solution id or sap id.\n if (replacementKey === null || replacementKey === void 0 ? void 0 : replacementKey.trim()) {\n triggerCriteria = [\n {\n name: \"ReplacementKey\" /* ReplacementKey */,\n value: replacementKey.trim(),\n },\n ];\n }\n else {\n const sapId = parameters[\"SapId\" /* SAP_ID_PARAM */];\n const solutionId = parameters[\"ArticleId\" /* ARTICLE_ID_PARAM */];\n // Apollo service supports both invoke by solution id and by sap id.\n if (solutionId === null || solutionId === void 0 ? void 0 : solutionId.trim()) {\n triggerCriteria = [\n {\n name: \"SolutionId\" /* SolutionId */,\n value: solutionId.trim(),\n },\n ];\n }\n else if (sapId === null || sapId === void 0 ? void 0 : sapId.trim()) {\n triggerCriteria = [\n {\n name: \"SapId\" /* SapId */,\n value: sapId.trim(),\n },\n ];\n }\n else {\n throw Error(`missing trigger criteria - Either sapId or solutionId needs to be provided to invoke apollo`);\n }\n }\n const apolloRequestBody = {\n properties: {\n triggerCriteria,\n parameters,\n },\n };\n return apolloRequestBody;\n }\n /**\n * Helper function to derive parameters contained in apollo request body\n * @param params\n */\n deriveRequestBodyParameters(context, additionalParamters) {\n const parameters = {};\n additionalParamters === null || additionalParamters === void 0 ? void 0 : additionalParamters.forEach((value, key) => (parameters[key] = value));\n if (context.partialResourceId) {\n parameters[\"PartialResourceUri\" /* PARTIAL_RESOURCE_ID */] = context.partialResourceId;\n }\n if (context.SupportTopicId) {\n parameters[\"SapId\" /* SAP_ID_PARAM */] = context.SupportTopicId;\n }\n if (context.articleId) {\n parameters[\"ArticleId\" /* ARTICLE_ID_PARAM */] = context.articleId;\n }\n if (context.searchText) {\n parameters[\"SearchText\" /* SEARCH_TEXT_PARAM */] = context.searchText;\n }\n if (context.ProductId) {\n parameters[\"ProductId\" /* PRODUCT_ID_PARAM */] = context.ProductId;\n }\n if (context.legacyProductId) {\n parameters[\"LegacyProductId\" /* LEGACY_PRODUCT_ID_PARAM */] = context.legacyProductId;\n }\n if (context.legacySupportTopicId) {\n parameters[\"LegacyTopicId\" /* LEGACY_TOPIC_ID_PARAM */] = context.legacySupportTopicId;\n }\n if (context.previewArticle) {\n parameters[\"Preview\" /* PREVIEW_FLAG_PARAM */] = context.previewArticle;\n }\n if (context.resourceTag) {\n parameters[\"ResourceTag\" /* RESOURCE_TAG_PARAM */] = context.resourceTag;\n }\n return parameters;\n }\n}\n","import React from 'react';\nimport { mergeStyleSets } from '@fluentui/react/lib/Styling';\nimport { useTheme } from '@fluentui/react';\nconst classNames = {\n root: 'apl-accordion',\n header: 'apl-accordion-header',\n headerText: 'apl-accordion-header-text',\n hiding: 'apl-accordion-hiding',\n};\nexport function useStyles(props) {\n const theme = useTheme();\n const { palette } = theme;\n const styles = {\n root: [\n classNames.root,\n {\n border: `2px solid ${palette.neutralLight}`,\n },\n ],\n header: [\n classNames.header,\n {\n display: 'flex',\n },\n ],\n headerText: [\n classNames.headerText,\n {\n fontSize: '14px',\n padding: '7px 7px 12px 0px',\n },\n ],\n content: [\n classNames.content,\n {\n margin: '10px 20px',\n },\n ],\n hiding: [\n classNames.hiding,\n {\n display: 'none',\n },\n ],\n };\n return React.useMemo(() => mergeStyleSets(styles, props.styles), [theme]);\n}\n","import React from 'react';\nimport { IconButton } from '@fluentui/react/lib/Button';\nimport { Icon } from '@fluentui/react/lib/Icon';\nimport { Stack } from '@fluentui/react/lib/Stack';\nimport { useId } from '../../Utils/useId';\nimport { useStyles } from './AplAccordion.styles';\nfunction AplAccordion(props) {\n const [isExpanded, setIsExpanded] = React.useState(false);\n const id = useId('aplAccordion');\n const contentId = `aplContent-${id}`;\n const classNames = useStyles(props);\n const { onClick } = props;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(Stack, { horizontal: true, className: classNames.header },\n React.createElement(IconButton, { \"aria-expanded\": isExpanded, \"aria-controls\": contentId, onClick: () => {\n setIsExpanded((previousExpandedState) => {\n if (onClick) {\n onClick(!previousExpandedState);\n }\n return !previousExpandedState;\n });\n }, \"data-testid\": \"solutionAccordionButton\" },\n React.createElement(Icon, { iconName: !isExpanded ? 'ChevronRight' : 'ChevronDown' })),\n React.createElement(\"div\", { className: classNames.headerText }, props.headerText)),\n React.createElement(\"div\", { id: contentId, className: isExpanded ? classNames.content : classNames.hiding }, props.children)));\n}\nexport { AplAccordion };\n","import React from 'react';\nimport { AplAccordion } from '../Elements/Accordion/AplAccordion';\nimport { useTelemetrySink } from '../Telemetry/AplTelemetrySink';\nimport { AplComponentType } from '../Telemetry/AplTelemetry.types';\nconst SECTION_WIDGET = 'SectionWidget';\nexport function AplSectionWidget(props) {\n const sink = useTelemetrySink();\n const { logData, title } = props;\n React.useEffect(() => {\n sink.push({\n eventType: 'impression',\n area: SECTION_WIDGET,\n component: AplComponentType.Section,\n data: Object.assign(Object.assign({}, logData), { title: title }),\n });\n }, [sink, logData, title]);\n return (React.createElement(AplAccordion, { key: props.key, headerText: props.title, onClick: (isExpanded) => {\n sink.push({\n eventType: 'interaction',\n action: isExpanded ? 'expanded' : 'collapsed',\n area: SECTION_WIDGET,\n component: AplComponentType.Section,\n data: Object.assign(Object.assign({}, props.logData), { title: props.title }),\n });\n } }, props.children));\n}\n","import React, { useEffect } from 'react';\nimport { isIApolloReportWidgetPropsWithDefaultProviders, } from './ApolloReportWidget.types';\nimport { ApolloReportWidgetContext, ApolloReportWidgetProvider } from './ApolloReportWidgetContext';\nimport { ApolloReportConverter } from './ApolloReportConverter';\nimport { ClientType, } from '../Contracts';\nimport { AplInstantAnswersLiteWidget } from '../InstantAnswer/Report/AplInstantAnswersLiteWidget';\nimport { AplWidget } from '../Elements/BaseWidget';\nimport { EmptyIllustration } from '../Elements/EmptyIllustration';\nimport { AplScopingQuestionsWidget } from '../ScopingQuestions/AplScopingQuestionsWidget';\nimport { AplVideoWidget } from '../Video';\nimport { AplVideoGroupWidget } from '../VideoGroup/AplVideoGroupWidget';\nimport { AplTelemetrySink, useTelemetrySink } from '../Telemetry/AplTelemetrySink';\nimport { AplComponentType } from '../Telemetry/AplTelemetry.types';\nimport { AplReportInsightWidget } from '../Insight/Report/AplReportInsightWidget';\nimport { AplHtmlContent } from '../HtmlContent/AplHtmlContent';\nimport { AplMetricBladeLink } from '../Metrics';\nimport { ApolloDataProvider } from '../ApolloExtension/ApolloDataProvider';\nimport { AplSectionWidget } from '../Section/AplSectionWidget';\n/**\n * rendering Insights\n * @param requestIds\n * @param context\n * @param insightProvider\n * @param index\n */\nconst renderInsight = (reportId, requestIds, context, insightProvider, index, symptomId, executionText, timeoutText, noResultText, maxInsightCount, replacementKey, actionHandler) => {\n if (requestIds.length > 0) {\n return (React.createElement(AplReportInsightWidget, { key: `${index}` + '_' + requestIds[0], context: context, provider: insightProvider, searchCriteria: { requestIds: requestIds, maxInsightCount: maxInsightCount, replacementKey }, targetScopingQuestions: false, executionText: executionText, timeoutText: timeoutText, noResultText: noResultText, replacementKey: replacementKey, actionHandler: (data) => {\n if (actionHandler) {\n // Add report id and replacement key to the log data.\n const actionDataWithReportLogs = data\n ? Object.assign(Object.assign({}, data), { logData: Object.assign(Object.assign({}, data.logData), { data: data.logData && data.logData.data\n ? Object.assign(Object.assign({}, data.logData.data), { reportId: reportId, replacementKey: replacementKey }) : { reportId: reportId, replacementKey: replacementKey } }), additionalData: data.additionalData\n ? Object.assign(Object.assign({}, data.additionalData), { reportId: reportId }) : data.additionalData })\n : data;\n actionHandler(actionDataWithReportLogs);\n }\n }, symptomId: symptomId, logData: { reportId, replacementKey } }));\n }\n return React.createElement(React.Fragment, null);\n};\n/**\n * rendering Scoping Question\n */\nconst renderScopingQuestions = (reportId, scopingQuestionsProvider, insightProvider, context, symptomId, executionText, noResultText, timeoutText, maxInsightCount, replacementKey) => {\n return (React.createElement(AplScopingQuestionsWidget, { scopingQuestionsProvider: scopingQuestionsProvider, insightsDataProvider: insightProvider, context: context, symptomId: symptomId, executionText: executionText, noResultText: noResultText, timeoutText: timeoutText, maxInsightCount: maxInsightCount, replacementKey: replacementKey, logData: { reportId, replacementKey } }));\n};\n/**\n * rendering Instant Answers\n * @param requestId\n * @param context\n * @param data\n */\nconst renderInstantAnwser = (requestId, context, data, onRelevancyFeedback) => {\n const provider = {\n getInstantAnswersResults: () => new Promise((resolve) => resolve(data)),\n };\n return (React.createElement(AplInstantAnswersLiteWidget, { context: context, provider: provider, requestId: requestId, onRelevancyFeedback: context && context.clientType && context.clientType == ClientType.External ? undefined : onRelevancyFeedback }));\n};\n// /**\n// * rendering a chart\n// * @param requestId\n// * @param context\n// * @param formattedDiagnosticProvider\n// * @param index\n// * @param chartMetadata\n// */\n// const renderChart = (\n// requestId: string,\n// context: IAplContext,\n// formattedDiagnosticProvider: IAplFormattedDiagnosticDataProvider,\n// index: number,\n// chartMetadata?: IChartMetadata,\n// ): JSX.Element => {\n// return (\n// \n// );\n// };\n/**\n * rendering video\n * @param requestId\n * @param context\n * @param video\n * @param index\n */\nconst renderVideo = (reportId, requestId, context, video, index, replacementKey) => {\n return (React.createElement(AplVideoWidget, { key: `${index}` + '_' + requestId, context: context, video: video, logData: { reportId, replacementKey } }));\n};\n/**\n * rendering video group\n * @param requestId\n * @param context\n * @param videoGroup\n * @param index\n */\nconst renderVideoGroup = (reportId, requestId, context, videoGroup, index, replacementKey) => {\n return (React.createElement(AplVideoGroupWidget, { key: `${index}` + '_' + requestId, context: context, videoGroup: videoGroup, logData: { reportId, replacementKey } }));\n};\nconst renderMetric = (reportId, requestId, context, metric, index, replacementKey, actionHandler, onRenderMetric) => {\n if (onRenderMetric) {\n const aplMetricWidgetProp = {\n metric: metric,\n resourceId: context.resourceId,\n };\n return onRenderMetric(aplMetricWidgetProp);\n }\n else {\n return (React.createElement(AplMetricBladeLink, { key: `${index}` + '_' + requestId, resourceId: context.resourceId, clientType: context.clientType, metric: metric, actionHandler: actionHandler, logData: { reportId, replacementKey } }));\n }\n};\n/**\n * rendering a Solution\n * @param solution\n * @param insightProvider\n * @param context\n * @param formattedDiagnosticProvider\n */\nconst renderSolution = (reportId, solution, insightProvider, context, \n// formattedDiagnosticProvider: IAplFormattedDiagnosticDataProvider,\ntelemetryHandler, onRelevancyFeedback, scopingQuestionsProvider, actionHandler, onRenderMetric, logImpressions, id) => {\n if (logImpressions) {\n telemetryHandler([{ component: AplComponentType.Report, data: { reportId: id }, eventType: 'impression' }]);\n }\n const ApolloReport = ApolloReportConverter.fromApolloReportApi(solution);\n const nodeProcessor = (node, index) => {\n return apolloReportNodeProcessor(reportId, node, index, insightProvider, context, ApolloReport, \n // formattedDiagnosticProvider,\n telemetryHandler, onRelevancyFeedback, actionHandler, onRenderMetric, scopingQuestionsProvider);\n };\n return (React.createElement(AplHtmlContent, { htmlContent: solution.htmlContent, nodeProcessor: nodeProcessor, actionHandler: actionHandler, logData: { reportId } }));\n};\n/**\n * Apollo report HTML parser function\n *\n * @param node\n * @param index\n * @param insightProvider\n * @param context\n * @param ApolloReport\n * @param formattedDiagnosticProvider\n */\nfunction apolloReportNodeProcessor(reportId, node, index, insightProvider, context, ApolloReport, \n// formattedDiagnosticProvider: IAplFormattedDiagnosticDataProvider,\ntelemetryHandler, onRelevancyFeedback, actionHandler, onRenderMetric, scopingQuestionsProvider) {\n var _a, _b, _c, _d;\n let newNode = null;\n let logSrc;\n let shouldLogTelemetry = false;\n let replacementKey = '';\n ApolloReport.insights.map((solution) => {\n if (node.type === 'comment' && solution.replacementKey.indexOf(node.data) == 4) {\n if (solution.additionalInputsReq && scopingQuestionsProvider) {\n shouldLogTelemetry = true;\n replacementKey = solution.replacementKey;\n newNode = renderScopingQuestions(reportId, scopingQuestionsProvider, insightProvider, context, solution.symptomId, solution.executionText, solution.noResultText, solution.timeoutText, solution.maxInsightCount, solution.replacementKey);\n }\n else {\n shouldLogTelemetry = true;\n logSrc = AplComponentType.Insight;\n replacementKey = solution.replacementKey;\n newNode = renderInsight(reportId, solution.requestIds, context, insightProvider, index, solution.symptomId, solution.executionText, solution.timeoutText, solution.noResultText, solution.maxInsightCount, solution.replacementKey, actionHandler);\n }\n }\n });\n (_a = ApolloReport.instantAnswer) === null || _a === void 0 ? void 0 : _a.map((solution) => {\n if (node.type === 'comment' && solution.replacementKey.indexOf(node.data) == 4) {\n shouldLogTelemetry = true;\n logSrc = AplComponentType.InstantAnswer;\n replacementKey = solution.replacementKey;\n newNode = renderInstantAnwser(solution.replacementKey, context, solution.data, onRelevancyFeedback);\n }\n });\n // ApolloReport.charts?.map((solution) => {\n // if (node.type === 'comment' && solution.replacementKey.indexOf(node.data) == 4) {\n // newNode = renderChart(solution.requestId, context, formattedDiagnosticProvider, index, solution.chartMetadata);\n // }\n // });\n (_b = ApolloReport.videos) === null || _b === void 0 ? void 0 : _b.map((solution) => {\n if (node.type === 'comment' && solution.replacementKey.indexOf(node.data) == 4) {\n newNode = renderVideo(reportId, solution.replacementKey, context, solution.video, index, solution.replacementKey);\n }\n });\n (_c = ApolloReport.videoGroups) === null || _c === void 0 ? void 0 : _c.map((solution) => {\n if (node.type === 'comment' && solution.replacementKey.indexOf(node.data) == 4) {\n newNode = renderVideoGroup(reportId, solution.replacementKey, context, solution.videoGroup, index, solution.replacementKey);\n }\n });\n // The metric support is temporarily disabled since the azure portal generated webpack size would be too large\n // when including the monitor-chart dependency. This feature would be re-enabled once a solution is found for optimization.\n // ApolloReport.metrics?.map((solution) => {\n // if (node.type === 'comment' && solution.replacementKey.indexOf(node.data) == 4) {\n // newNode = renderMetric(solution.replacementKey, context, solution.metric, index);\n // }\n // });\n // workaround for metric supprt by linking to corresponding metric blade.\n (_d = ApolloReport.metrics) === null || _d === void 0 ? void 0 : _d.map((solution) => {\n if (node.type === 'comment' && solution.replacementKey.indexOf(node.data) == 4) {\n newNode = renderMetric(reportId, solution.replacementKey, context, solution.metric, index, solution.replacementKey, actionHandler, onRenderMetric);\n }\n });\n newNode = shouldLogTelemetry ? (React.createElement(AplTelemetrySink, { outlet: (logs) => telemetryHandler(logs, logSrc, replacementKey) }, newNode)) : (newNode);\n return newNode;\n}\n/**\n * Apollo Report usage function\n */\nfunction useApolloReport() {\n const sink = useTelemetrySink();\n const { state, dispatch } = React.useContext(ApolloReportWidgetContext);\n const { solution, message, status } = state;\n const fetchApolloReport = React.useCallback((triggerCriteria, context, provider) => {\n triggerApolloReport(triggerCriteria, context, provider, dispatch);\n }, [dispatch]);\n const fetchTrigerredApolloReport = React.useCallback((requestId, provider) => {\n getTriggeredApolloReport(provider, dispatch, requestId);\n }, [dispatch]);\n // Telemetry handler for logs from inner components.\n const telemetryHandler = React.useCallback((logs, logSrc, replacementKey) => {\n logs.forEach((innerComponentLog) => {\n if (innerComponentLog.data) {\n const log = Object.assign(Object.assign({}, innerComponentLog), { \n // update log src of innerComponent if specified.\n component: logSrc || innerComponentLog.component, data: Object.assign(Object.assign({}, innerComponentLog.data), { reportId: solution === null || solution === void 0 ? void 0 : solution.id, replacementKey: replacementKey }) });\n sink.push(log);\n }\n });\n }, [sink]);\n return {\n isLoading: status === 'loading',\n id: solution === null || solution === void 0 ? void 0 : solution.id,\n sections: solution === null || solution === void 0 ? void 0 : solution.sections,\n topSection: solution\n ? { htmlContent: solution.htmlContent, title: solution.title, bindings: solution.bindings }\n : undefined,\n autoLoadInfo: solution === null || solution === void 0 ? void 0 : solution.autoLoadInfo,\n message,\n fetchApolloReport,\n fetchTrigerredApolloReport,\n telemetryHandler,\n };\n}\n/**\n * gets the top solution\n * @param requestId\n * @param provider\n * @param dispatch\n */\nfunction getTriggeredApolloReport(provider, dispatch, requestId) {\n if (provider.getTriggeredApolloReport) {\n dispatch({ type: 'Started' });\n provider\n .getTriggeredApolloReport(requestId)\n .then((res) => {\n dispatch({ type: 'Success', payload: res });\n })\n .catch((errorMessage) => {\n dispatch({ type: 'Failed', errorMessage: errorMessage });\n });\n }\n}\n/**\n * triggers the apollo report\n * @param triggerCriteria\n * @param provider\n * @param dispatch\n */\nfunction triggerApolloReport(triggerCriteria, context, provider, dispatch) {\n dispatch({ type: 'Started' });\n provider\n .triggerApolloReport(triggerCriteria, context)\n .then((res) => {\n dispatch({ type: 'Success', payload: res });\n })\n .catch((errorMessage) => {\n dispatch({ type: 'Failed', errorMessage: errorMessage });\n });\n}\nexport const ApolloReportWidgetInternal = ({ triggerCriteria, apolloReportProvider, context, insightProvider, onRenderMetric, onRenderNoSolution, \n// formattedDiagnosticProvider,\nonRelevancyFeedback, scopingQuestionsProvider, actionHandler, requestId, }) => {\n const { message, id, sections, topSection, isLoading, autoLoadInfo, fetchApolloReport, fetchTrigerredApolloReport, telemetryHandler, } = useApolloReport();\n React.useEffect(() => {\n if (triggerCriteria) {\n fetchApolloReport(triggerCriteria, context, apolloReportProvider);\n }\n }, [triggerCriteria, apolloReportProvider]);\n React.useEffect(() => {\n if (requestId) {\n fetchTrigerredApolloReport(requestId, apolloReportProvider);\n }\n }, [requestId, apolloReportProvider]);\n React.useEffect(() => {\n if (actionHandler && autoLoadInfo)\n actionHandler({\n autoLoadInfo: autoLoadInfo,\n });\n }, [autoLoadInfo]);\n return (React.createElement(AplWidget, { loader: { isLoading, text: 'Fetching solutions...' }, messages: message ? [{ message: message, messageType: 'error' }] : [], noItemsView: React.createElement(EmptyIllustration, { label: 'There are no top solutions' }), onRenderNoResult: onRenderNoSolution },\n topSection &&\n !message &&\n !isLoading &&\n renderSolution(id || '', topSection, insightProvider, context, \n // formattedDiagnosticProvider,\n telemetryHandler, onRelevancyFeedback, scopingQuestionsProvider, actionHandler, onRenderMetric, true, id),\n (sections === null || sections === void 0 ? void 0 : sections.length) && !message && !isLoading\n ? sections.map((section, index) => {\n return (React.createElement(AplSectionWidget, { key: `aplsection${index}${section.title}`, title: section.title, logData: { reportId: id || '' } }, renderSolution(id || '', section, insightProvider, context, \n // formattedDiagnosticProvider,\n telemetryHandler, onRelevancyFeedback, scopingQuestionsProvider, actionHandler, onRenderMetric, false, id)));\n })\n : null));\n};\nexport const ApolloReportWidget = (props) => {\n let internalProps;\n let armApolloProvider;\n if (isIApolloReportWidgetPropsWithDefaultProviders(props)) {\n armApolloProvider = new ApolloDataProvider(props.aplRpc);\n internalProps = Object.assign(Object.assign({}, props), { apolloReportProvider: armApolloProvider, insightProvider: armApolloProvider, triggerCriteria: {} });\n }\n else {\n internalProps = Object.assign({}, props);\n }\n useEffect(() => {\n if (armApolloProvider) {\n // clean up\n return () => {\n armApolloProvider.cleanup();\n };\n }\n }, [armApolloProvider]);\n return (React.createElement(ApolloReportWidgetProvider, null,\n React.createElement(ApolloReportWidgetInternal, Object.assign({}, internalProps))));\n};\n","/**\n * User-Defined Type Guards to check if an IApolloReportWidgetProps is of type IApolloReportWidgetPropsWithApolloExtension.\n * See https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards\n **/\nexport function isIApolloReportWidgetPropsWithDefaultProviders(props) {\n return props.aplRpc !== undefined;\n}\n"],"names":["SelfHelpType","LinkType","AdditionalInfoType","InstantAnswerConfidenceLevel","InstantAnswerSearchType","ClientType","ctx","React","AplContext","Provider","useSupportContext","SolutionCardContext","openKeys","setItemOpen","Error","setItemClosed","SolutionCardContextProvider","_ref","children","_React$useState","_React$useState2","_slicedToArray","setOpenKeys","value","keyToSetClose","Object","assign","_defineProperty","keyToSetOpen","useSolutionCardContext","MaxWidgetWidth","infoBorder","criticalBorder","warningBorder","useImportanceLevelColor","importanceLevel","importanceLevelColors","Informational","Warning","Critical","undefined","useImportanceLevelBorder","color","borderLeft","concat","classNames","useClassNames","props","theme","useTheme","border","mergeStyleSets","root","display","flexFlow","maxWidth","marginBottom","palette","neutralLight","styles","AplRelevancyFeedback","_ref$label","label","onRelevancyFeedback","binary","answered","setAnswered","onFeedback","sentiment","fonts","styleSet","container","flexWrap","alignItems","marginRight","rfeedbackButton","fontSize","medium","height","className","Text","Stack","Item","ActionButton","iconProps","iconName","ariaLabel","onClick","I18n","options","_classCallCheck","this","_vocabsDict","_options","language","window","navigator","split","_language","_createClass","key","getForLanguage","langDict","vocabularies","languageDict","CRC_BodyContent","CRC_MailSubject","CRC_SendToEmail","CRC_CustomerName","CRC_Content","CRC_SrId","VocubulariesByLanguage","en","CustomerReadyContent","CustomerReadyContentGreet","CopyContent","NewEmail","ContentFeedbackLabel","RelevancyFeedbackLabel","ApolloI18n","lang","putLanguageVocabularies","CustomerReadyContentActionTypes","AplContentFeedback","get","onContentFeedback","_ref$frownAriaLabel","frownAriaLabel","_ref$smileAriaLabel","smileAriaLabel","useDefaultLabel","getClassNames","IconButton","overflow","overflowWrap","h1","large","h3","h8","small","a","selectors","h2","fontWeight","FontWeights","bold","table","borderSpacing","td","textAlign","padding","th","p","margin","ul","paddingInlineStart","ol","li","marginLeft","img","marginTop","width","pre","overflowX","sanitizeMarkdown","markdown","dompurify","AplMarkdown","_ref$allowDangerousHt","allowDangerousHtml","ReactMarkdown","plugins","gfm","linkTarget","AplComponentType","useId","prefix","ref","current","getId","TelemetrySinkContext","handler","AplTelemetrySink","outlet","localHandler","event","useTelemetrySink","push","__rest","s","e","t","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","LogContext","AplLog","_a","logImpression","logProps","parentLog","useAplLog","sink","eventType","combinedProps","ExternalLinkLaunchIcon","style","fill","themePrimary","xmlns","viewBox","d","AplLink","isExternal","linkProps","isExternalLink","Link","AplAction","href","asButton","_useAplAction","logData","target","actionTarget","actionLog","actionLogData","component","Action","data","title","isButton","reportId","additionalData","innerLog","logEvent","useAplAction","onActionClick","PrimaryButton","AplHtmlContent","htmlContent","transform","nodeProcessor","actionHandler","node","index","newNode","type","name","convertNodeToElement","tabIndex","attribs","shouldRenderAsButton","getData","getAplHtmlTransform","ReactHtmlParser","htmlLogData","dataBlade","toString","AplCustomerReadyContent","context","_useCustomerReadyCont","srId","customerEmail","customerName","log","openEmail","action","sendEmail","downloadAsEmail","onContentCopied","contentCopied","useCustomerReadyContent","markdownBackground","clientType","External","neutralLighter","actions","backgroundColor","markdownContainer","id","ClipboardJS","on","content","subject","templateMapObj","contentGreetWrapper","replace","regex","RegExp","mailto","matched","Blob","msSaveOrOpenBlob","textFile","URL","createObjectURL","download","filename","text","element","document","createElement","setAttribute","body","appendChild","click","removeChild","ResourceUriParser","resourceUri","subscriptionId","resourceType","resourceGroup","resourceInstanceName","subscriptionPart","substring","resourceTypePart","lastIndexOf","resourceGroupPart","AplImpactedResourcesLinks","links","resources","deeplinkHelper","supportContext","getResourceDeeplink","impactedResourceLinkFactory","items","forEach","resource","link","err","transformResourceToLink","useImpactedResources","map","_useState","useState","uniqueId","useLinkedState","initialState","_useState2","state","setState","useEffect","FnEmpty","ConsoleLogger","debug","Function","bind","console","trace","warn","error","initialize","setUserId","telemetryConfig","getTelemetryConfig","Logger","Silent","SilentLogger","Console","getLogger","conf","getDebugLogger","isTrackingInteraction","telemetry","trackInteraction","WorkflowContext","useInteractionTracker","workflow","tracker","useCallback","trackingContext","identifier","eventName","_objectSpread","useDebounceInteractionTracker","useMemo","debounce","trackInteractionDelayMs","getInteractionTrackingDelay","logger","rootFontSize","px2rem","px","ElxSpacing","multiple","multiplier","spaceHalf","space1","space2","checkboxSpace","getElxTheme","memoizeFunction","arguments","getTheme","constants","getConstants","spacing","fullWidth","font","heroTitle","lineHeight","chart","legend","axisLabel","shell","layers","toast","header","brandingWidth","logoWidth","background","white","neutralPrimary","logoSize","titleSize","titleWidth","sidebar","_theme$name","startsWith","datePicker","calendarIconPadding","todaySelectedBorderWidth","dualListBox","itemBoxShadowRest","itemBorderRest","semanticColors","inputBorder","itemHeight","checkBoxPadding","filter","input","actionButtonHeight","StyleConstants","borderRadius","buttonHeight","controlHeight","masterDetail","pivotPadding","panel","footerHeight","peoplePicker","chevronMargin","searchBox","dropdownTitleWidth","iconMarginLeft","textTruncate","textOverflow","whiteSpace","wordWrap","getDimensionMediaQuery","dimension","min","max","mediaQuery","HexToRGBA","hexCode","opacity","hex","r","parseInt","g","b","getOpacity","ResponsiveMode","ElxSearchBoxOverrides","inlineFilters","AzureThemeHeaderStyles","primaryButtonBackground","primaryButtonBackgroundHovered","primaryButtonBackgroundPressed","ElxSidebarOverrides","navs","ElxContainerHeaderOverrides","headerContent","borderBottom","MessageColors","LinkColors","ThemeColors","themeLighterAlt","themeLighter","themeLight","themeTertiary","themeSecondary","themeDarkAlt","themeDark","themeDarker","DarkThemeColors","NeutralColors","Gray200","Gray190","Gray180","Gray170","Gray160","Gray150","Gray140","Gray130","Gray120","Gray110","Gray90","Gray60","Gray50","Gray40","Gray30","Gray20","Gray10","MessageBarStyles","errorBackground","errorIcon","errorText","successBackground","successIcon","warningBackground","warningIcon","severeWarningBackground","severeWarningIcon","infoIcon","ElixirFonts","mediumPlus","AzureComponentStyles","createTheme","bodyBackground","bodyDivider","buttonTextHovered","buttonTextPressed","bodyStandoutBackground","cardStandoutBackground","listHeaderBackgroundPressed","listItemBackgroundChecked","listItemBackgroundCheckedHovered","listItemBackgroundHovered","menuItemBackgroundHovered","menuItemBackgroundPressed","neutralLighterAlt","neutralQuaternaryAlt","neutralQuaternary","neutralTertiaryAlt","neutralTertiary","neutralSecondaryAlt","neutralSecondary","neutralPrimaryAlt","neutralDark","black","defaultFontStyle","fontFamily","primaryButtonText","primaryButtonTextHovered","primaryButtonTextPressed","isInverted","AzStyleSettings","ElxSearchBox","ElxHeader","ElxSidebar","ElxContainerHeader","AzureThemeComponentOverrides","AzureSemanticColors","flatSemanticColors","fullSemanticColors","statusUpsellBackground","statusBar","upsell","statusUpsellBorder","statusUpsellIcon","icon","createAzureTheme","azureTheme","primaryButton","rest","components","AzThemeLight","LightSemanticColors","AzThemeDark","DarkSemanticColors","AzThemeHcLight","HighContrastLightSemanticColors","AzThemeHcDark","HighContrastDarkSemanticColors","responsiveMode","Unknown","classNamesFunction","ElxTooltip","styled","_ref3","directionalHint","calloutProps","tooltipProps","calloutClassName","hostClassName","other","_objectWithoutProperties","_excluded","defaultDirectionHint","DirectionalHint","bottomAutoEdge","_getClassNames","host","callout","TooltipHost","css","gapSpace","isBeakVisible","messageText","textTransform","infoBackground","boxShadow","Depths","depth16","left","right","top","bottom","ScreenWidthMinLarge","scope","getElxButtonBaseDefaults","getDefaultAriaLabel","getTrackableOnClick","menuProps","getTrackableMenuProps","_props$onClick","item","eventItem","_item$onClick","subMenuProps","withTooltip","WrappedButton","disabled","useDefaultButtonStyles","elxTheme","borderWidth","semibold","ElxPrimaryButton","mergedStyles","defaultStyles","primaryButtonStyles","rootDisabled","borderColor","rootHovered","rootPressed","usePrimaryButtonStyles","ElxSecondaryButton","buttonStyles","secondaryButtonStyles","boxSizing","rootExpanded","useSecondaryButtonStyles","DefaultButton","actionButtonStyles","paddingLeft","paddingRight","regular","iconHovered","iconPressed","iconDisabled","useActionButtonStyles","CommandBarButton","isNullOrWhitespace","dayjs","utc","InputMessageTypes","readonlyGlobalClassName","readonlyComponentStyles","fieldGroup","minHeight","field","InputBaseGlobalClassnames","useMessageAreaStyles","message","messageContainer","paddingTop","messageIcon","Success","Info","getInputBaseLabelStyles","required","getInputBaseClassnames","ElxInputBase","generatedId","componentTheme","classnames","useInputBase","inputBaseId","labelActions","onRenderLabel","renderDefaultLabel","_ref4","labelStyles","Label","getInputLabelId","getDefaultLabelRenderer","labelContainer","labelActionContainer","o","labelActionItem","renderLabel","_ref2","onRenderDescription","description","defaultRenderer","getInputDescriptionId","descriptionContainer","renderDescription","inputActions","inputActionContainer","inputActionItem","renderInputActions","readOnly","onRenderReadOnly","renderReadonly","renderChildren","_message$content","messageDisplay","Icon","Announced","renderMessage","flex","flexDirection","justifyContent","inputId","_props$label","readOnlyText","TextField","multiline","wrap","autoAdjustHeight","rows","resizable","getTextFieldStyles","showLineNumbers","hasError","styleProps","focused","position","maxHeight","suffix","errorMessage","subComponentStyles","wrapper","ElxDateTimePickerDisplayMode","ElxTextField","_props$ariaLabel","autoComplete","track","numberOfLines","setNumberOfLines","lineNumberRef","newNumberOfLines","ariaLabelledBy","ariaDescribedBy","getUnControlledTextFieldProps","wrapperStyles","onGetErrorMessage","_props$message","onChange","newValue","trackOnchange","onScroll","scrollTop","onRenderPrefix","Array","from","lineNumber","defaultValue","returnValue","removeUnsupportedReadOnlyProps","CalendarStrings","months","shortMonths","days","shortDays","goToToday","closeButtonAriaLabel","weekNumberFormatString","prevMonthAriaLabel","nextMonthAriaLabel","prevYearAriaLabel","nextYearAriaLabel","prevYearRangeAriaLabel","nextYearRangeAriaLabel","monthPickerHeaderAriaLabel","yearPickerHeaderAriaLabel","DateTimePickerStrings","calendarStyles","objectSupport","DateTimeUtils","utcOffsetMinutes","h","m","hh","mm","date","hour","minute","second","timeZoneOffsetMinutes","set","year","getFullYear","month","getMonth","getDate","subtract","isValid","toDate","Date","dd","format","formatUtcOffsetTime","getTimezoneUtcOffset","getTimezoneOffset","uiToRealDate","uiDate","targetTimezoneUtcOffset","localTimezoneUtcOffset","DefaultDateToString","DefaultStringToDate","DefaultIsValid","DummyTodayDate","DefaultInnerCalendarProps","strings","isMonthPickerVisible","showGoToToday","today","DefaultCalendarSettings","innerCalendarProps","showDateField","dateFieldSettings","DefaultTimeSelectorSettings","showHours","showMinutes","showSeconds","showTimezoneSelector","timeZones","DefaultDateTimeSelectorSettings","calendarSettings","timeSelectorSettings","DefaultAbsoluteTimeRangeSelectorSettings","dateTimeSelectorSettings","createContext","addFilter","removeFilter","apply","cancel","retry","loadingValues","errorLoadingValues","operatorSelector","fieldSelector","noSearchResultsFound","selectField","searchFieldPlaceholder","searchFieldAriaLabel","searchNumberOfFilteredItems","searchOneItemMatched","searchItemsMatched","searchValues","selectAllCheckboxLabel","selectAllCheckboxAriaLabel","timeRangeSelector","relativeTime","absoluteTime","absoluteTimeRangeSelector","to","enterFromDateText","enterToDateText","select","selectDateText","timeSelector","selectDateTime","selectedTime","timeZone","utcSymbol","utcTime","useLocalization","useContext","LocalizationContext","localizedFormat","FilterOptionMode","FilterOptionPillMode","FilterOptionApplyMode","invalidDateErrorMessage","_ref$format","_ref$dateToString","dateToString","_ref$stringToDate","stringToDate","_ref$isValid","mask","_ref$ariaLabel","_ref$validateOnChange","validateOnChange","_ref$onChange","setText","_useState3","_useState4","setErrorMessage","onTextChange","_event","onKeyDown","nextDate","onBlur","Boolean","MaskedTextField","DefaultDate","_ref$showDateField","_ref$innerCalendarPro","_ref$disabled","minDate","maxDate","calendar","dateTextField","dateRangeType","_useLinkedState","_useLinkedState2","setDate","onTextFieldChange","dateFromTextField","ElxDateField","Calendar","onSelectDate","selectedDateRangeArray","DateRangeType","Month","startOf","endOf","allFocusable","FlexContainerStyle","RightSpacingStyle","SpinButtonStyle","minWidth","spinButtonWrapper","TimeZoneStyle","TimePickerSpinButton","Styles","SpinButton","labelPosition","Position","maxValue","step","numericValue","onDecrement","setNumericValue","onIncrement","onValidate","isNaN","incrementButtonAriaLabel","decrementButtonAriaLabel","TimeZoneDropdown","setTimeZoneOffsetMinutes","some","hasUtcTimeZone","symbol","getTimeZoneOptions","option","Dropdown","selectedKey","TimeSelectorStrings","_props$showHours","_props$showMinutes","_props$showSeconds","_props$showTimezoneSe","_props$timeZones","_props$disabled","_props$onChange","hours","setHours","_useLinkedState3","minutes","_useLinkedState4","setMinutes","_useLinkedState5","seconds","_useLinkedState6","setSeconds","_useLinkedState7","utcOffset","_useLinkedState8","setUtcOffset","hourChangeHandler","minuteChangeHandler","secondChangeHandler","utcOffsetChangeHandler","hoursSelector","minutesSelector","secondsSelector","timezoneSelector","extractDate","dayjsObject","mergeDateTime","time","getLocalDateTime","offset","localTzOffset","realDate","add","realToUiDate","localDateStart","getDefaultDate","getUTCDate","dateTime","_ref$utcOffset","hideTimeSelector","_timeSelectorSettings","setTime","_useState5","_useState6","localMinDate","setLocalMinDate","_useState7","_useState8","localMaxDate","setLocalMaxDate","extractTime","dateHandler","selectedDate","selectedDateRange","utcDateTime","dateRangeSelected","timeHandler","ElxCalendar","ElxTimeSelector","gap","column","_dateTimeSelectorSett","dateFrom","setDateFrom","dateTo","setDateTo","fromDate","getDefaultDateFrom","getDefaultDateTo","dateFromHandler","dateToHandler","isSingleDatePicker","Week","WorkWeek","Day","fromDateLabel","fromDateAriaLabel","ElxDateTimeSelector","Minute","Hour","DefaultRelativeTimeRangeSelectorSettings","String","optionToTimeRangeConverter","selection","milliseconds","Number","now","dropdownStyles","overflowY","paddingBottom","emptyLabel","_ref$options","_ref$optionToTimeRang","selected","choiceGroupOptions","stringToValueMap","reduce","accum","Map","onSelectionChange","_ev","argument","ChoiceGroup","defaultSelectedKey","DefaultTimeRangeSelectorSettings","relativeSettings","absoluteSettings","showRelative","showAbsolute","pivotItem","_ref$mode","mode","propMode","propFrom","propTo","propRelativeSelection","_ref$showRelative","_ref$showAbsolute","setMode","setSelected","setFrom","setTo","handleTabChange","newMode","itemKey","headerButtonProps","onRelativeTimeChange","onAbsoluteTimeChange","relativeSelector","ElxRelativeTimeRangeSelector","absoluteSelector","ElxAbsoluteTimeRangeSelector","Pivot","onLinkClick","PivotItem","headerText","settings","filterToTimeRange","timeRangeEditorSettings","onTimeRangeChange","toISOString","timeRangeToFilter","ElxTimeRangeSelector","FilterPillDateTimeFormat","DefaultRelativeOptions","Custom","Static","ElxDateTimePicker","displayMode","onSelectDateTime","inputWrapperRef","internalDateTimeText","setinternalDateTimeText","dateTimeText","setDateTimeText","_React$useState3","_React$useState4","showCallout","setShowCallout","_React$useState5","_React$useState6","textFieldDisabled","setTextFieldDisabled","_React$useState7","_React$useState8","textFieldIsValid","setTextFieldIsValid","_React$useState9","_React$useState10","dateTimeValue","setDateTimeValue","_React$useState11","_React$useState12","dateTimeLabel","setDateTimeLabel","_React$useState13","_React$useState14","dateValue","setDateValue","_React$useState15","_React$useState16","setHour","_React$useState17","_React$useState18","setMinute","_React$useState19","_React$useState20","setSecond","_React$useState21","_React$useState22","previousDateTimeText","fromString","DateOnly","toUtcDate","toDateTimeString","fromDateTime","onCalendarIconTrigger","fieldDisabled","renderTimePicker","_props$timeSelectorSe","showTimezone","columnFlexContainer","flexPaddingContainer","blockContainer","footerContainer","rightSpacing","onDismissCallout","_props$ariaLabelledb","textFieldContainer","placeholder","role","calendarIcon","disabledBodyText","cursor","ev","renderTextField","Callout","calloutRoot","setInitialFocus","bottomLeftEdge","onDismiss","FocusTrapZone","horizontalContainer","verticalDivider","Stacked","verticalContainer","horizontalDivider","dateContainer","toDateString","borderTop","timePicker","FormConstants","AplControlTypes","TextBlock","TextBox","NumericTextBox","DropDown","MultiSelectDropDown","DateTimePicker","MultiLineTextBox","InfoBlock","RadioButtonGroup","textStyles","dropdown","controlVisible","visibility","toLowerCase","updateControlVisibility","controlMap","formElement","visibilityProperties","setOutputArrays","parent","controlOutputArrays","_step","parentValues","_iterator","_createForOfIteratorHelper","_ret","_loop","parentId","parentCon","currentValue","v","isArray","selectedValue","n","done","f","outputArrays","isVisible","values","equality","operators","parentVal","parentSubValues","valueExists","subValue","valueDoesNotExist","every","getVisibility","recalculateVisible","match","op","_step2","expression","_iterator2","exp","operand","trim","InfoBalloonLabel","infoBalloonText","isRequired","onRenderContent","beakWidth","horizontal","verticalAlign","topLeftEdge","simpleReactValidator","SimpleReactValidator","handleControlValidation","_b","validations","controlValidation","validationType","valueProvided","isValueProvided","controlId","controlForValidationValue","validationElement","validation","validationMethod","validationCreationHandlersMap","createValidation","onValidation","regexmatch","validationValue","resultValidation","check","valid","notregexmatch","contains","neededString","includes","notcontains","notContainsString","containscharacters","charsContained","reg","notcontainscharacters","charsNotContained","hasdigit","hasletter","hasuppercaseletter","haslowercaseletter","haspunctuation","equals","compareValue","minlength","minLength","maxlength","maxLength","minvalue","minValue","maxvalue","caseinsensitivecomparison","compareString","uri","greaterthan","Infinity","lessthan","email","localeawarecaseinsensitivecomparison","toLocaleLowerCase","status","searchCriteria","AplScopingQuestionsWidgetContext","dispatch","scopingQuestionsWidgetReducer","payload","AplScopingQuestionsWidgetProvider","_React$useReducer","_React$useReducer2","generateFormControls","formElements","onValueChangeHandler","logTelemetry","controls","controlVisibility","controlDetails","control","onChangeValue","multiSelect","controlType","multiLine","CreateDropdown","CreateTextBox","CreateNumericTextBox","CreateRadioButton","CreateDateTimePicker","createControl","_c","_d","itemId","additionalLogData","articleId","watermarkHintText","infoBalloonHintText","hints","hint","watermarkText","displayLabel","initialValue","resultValidations","itemValue","getMaskforNumericTextBox","maskChar","dropdownOptions","radioButtonOptions","_","setDateTime","onSelectDateTimeHandler","newDateTime","isScopingQuestion","AplScopingQuestionsFormElementsInternal","scopingQuestionsProvider","onSetScopingQuestionsParameters","setControlMap","dependencyMap","setDependencyMap","visibilityMap","setVisibilityMap","fetchDynamicDropDownData","parentValue","getDynamicDropdownData","fetchDynamicTextBlockData","getDynamicTextBlockData","fillDropdownData","originalControlMap","updatedControlMap","cloneDeep","curMap","updateDynamicDropDown","then","dynamicData","updateDynamicTextBlockData","visMap","dynamicDropdownOptions","dependsOn","dynamicTextBlockOptions","updateDynamicTextBlock","visParents","getVisibilityDependentParents","visParentId","_toConsumableArray","parentElementId","scopingQuestionsData","renderScopingQuestions","parentControlId","parentControlValue","parentMap","visibilityDependents","childElementId","originalChildMap","visibleState","dependentElements","ScopingQuestions","area","AplScopingQuestionsFormElements","AplInternalLinkList","tokens","childrenGap","InternalLink","url","computedUrl","test","isInternalLink","containsSrIdRegex","urlHelper","search","addSrIdToLink","renderFields","fields","renderFieldWithLabel","fieldType","renderField","renderLinks","renderMarkdown","renderCustomerReadyContent","renderInternalLinks","renderImpactedResources","renderButton","renderDSQForm","renderCustom","_props$srId","_props$caseTitle","caseTitle","_props$customerEmail","_props$customerName","getMediaQuery","widths","headerClassNames","collapser","buttonContainer","sectionContainer","actionContainer","headerButtonItemsGap","topBorderGutter","headerHeight","useHeaderStyles","collapserSectionProps","separator","noHeader","contentWrapper","fieldSetArea","fieldSetAreaNoHeader","contentFeedback","alignSelf","relevancyFeedback","footerActions","footer","AplSolutionCardContent","_props$useDefaultFeed","useDefaultFeedbackLabel","Separator","solutionTypeIconProps","themeImportanceLevelColor","minRoot","solutionIcon","SolutionCardHeaderCollapserSection","subTitle","isCollapsed","toggleCollapse","CompoundButton","hasAction","headerSection","useHeaderSectionStyle","flexGrow","SolutionCardHeaderTitleSection","Title","onTitleSectionLinkClick","block","nowrap","SolutionCardHeaderActionSection","overflowItems","OverflowSet","onRenderOverflowButton","menuIconProps","slice","onRenderItem","AplDiagnosticExecutionSummaryStatus","AplSolutionCardHeader","actionSectionProps","titleSectionProps","onSolutionCardLoaded","hideSubtitleOnExpand","groupHeaderProps","ariaSetSize","ariaPosInSet","renderCollapserSection","isExpanded","hideSubtitle","otherTitleSectionProps","renderTitleSection","renderActionsSection","AplSolutionCardItem","_useSolutionCardItem","defaultOpened","eventsFunnel","isOpened","onToggle","expandedId","solutionCardKey","isDefaultOpen","_useSolutionCardConte","useSolutionCardOpen","collapsed","useSolutionCardItem","headerProps","contentProps","AplSolutionCard","useCancellablePromise","deps","promises","useRef","cancellablePromise","cPromise","promise","isCancelled","wrappedPromise","Promise","resolve","reject","val","catch","makeCancellable","EmptyIllustrationSvg","paint0","paint1","paint2","paint3","paint4","paint5","paint6","paint7","paint8","paint9","x1","y1","x2","y2","gradientUnits","stopColor","stopOpacity","EmptyIllustration","useStyles","dayjsutc","SolutionCardMapper","sie","headerTitle","headerService","Properties","LSIUrl","Status","Value","_sie$Properties","ImpactStartTimeHumanReadable","DurationTimeHumanReadable","Service","LSIID","_sie$Properties2","ImpactMitigationTimeHumanReadable","Region","TrackingId","Communication","TrackingUrl","importanceLevelMap","AlertLevel","cardColor","_sie$Properties3","IncidentType","health","titleAndSummary","Summary","StartTimeHumanReadable","EndTimeHumanReadable","PlatformInitiated","source","RecommendedActions","Message","insight","IssueCategory","Description","ImpactedResources","Uri","RecommendedAction","IsMarkdown","Links","AscInternalUri","TimeStamp","generatedOn","AdditionalInformation","additionalInfoItemKey","additionalInfoItem","Type","ArticleContent","ImportanceLevel","instantAnswer","onInstantAnswerLinkClick","searchType","SearchType","Documentation","SubTitle","Community","Source","Support","ResultId","ICM","Content","Confidence","troubleshooter","hasInstance","EstimatedTimeToComplete","LastTimeUpdated","updatedOn","SolutionName","loader","AplWidget","messages","noItemsView","onRenderNoResult","infos","messageType","errors","errorMessageListComponent","MessageList","noItemsViewComponent","getStyles","info","errorMessages","isLoading","loaderView","Spinner","size","SpinnerSize","MessageBar","messageBarType","MessageBarType","formElementsByName","FormReducer","AplFormContext","AplFormContextProvider","AplForm","AplFormInternal","changedFormElements","isFormValid","find","FormElement","_React$useContext2","_useDebouncedCallback","callback","delay","currentTimeout","callbackRef","clearTimeout","debouncedCallback","_len","args","_key","setTimeout","useDebouncedCallback","onFormElementChange","formElementType","isTroubleshooterFormValid","ele","GuidedTroubleshooterStepFooter","isLastStep","stepType","AplGuidedTroubleshooterStep","impactedResourceUri","disableActions","stepStartTime","isStepOpen","setIsStepOpen","contentArticleId","questionArticleId","provider","stepTitle","stepCompleted","stepId","questionId","inlineQuestions","end","resume","onRelevancyFeeback","isContentLoading","setIsContentLoading","formValid","setFormValid","isQuestionsLoading","setIsQuestionsLoading","setHtmlContent","setFormElements","localStepCompleted","setLocalStepCompleted","localIsLastStep","setLocalIsLastStep","localStepTitle","setLocalStepTitle","setInsight","setMessage","localOnContentFeedback","stepContext","getArticle","res","getTsgQuestions","questions","newFormElements","question","tranformTsgQuestionToFormElement","responseText","questionText","questionType","getInsightDefinition","ArticleId","article","nextStep","userInput","transformFromFormElementToQuestionInput","userResponse","onLocalRelevancyFeeback","onLocalResolveIssueFeeback","isInsight","stepSubtitle","endAtStep","onResolveIssueFeeback","useGuidedTroubleshooterStep","onToggleStep","collapsedState","cardItem","insightWithHtmlContent","Resource","fromInsight","onFormChangeCallback","fromGuidedTroubleShooterStep","getSolutionCard","primary","UserQuestion","UserQuestionType","UserQuestionOptions","ResponseText","isDisabled","ensureInstanceLoaded","setInstance","setInstanceId","setLoader","instanceId","forceInvoke","getInstance","instance","SolutionInstanceId","invoke","instanceInvokeResult","_useGuidedTroubleshoo","incomingInstanceId","TSGInstance","TSGSteps","onLocalContentFeedback","troubleshooterInstance","onLocalRelevancyFeedback","initializeTroubleshooterInstance","continueTroubleshooterInstance","onNextComplete","restartTroubleshooter","restart","newInstance","NewSolutionInstanceId","endTroubleshooterInstance","onEndComplete","completedInstance","StepExecutionStatus","useGuidedTroubleshooterWidget","IsLastStep","StepInstanceId","ContentArticleId","StepTitle","StepType","QuestionArticleId","UserInput","QuestionId","StepStartTime","displayName","healthEvents","isHealthEventsLoading","advisories","outages","sieError","healthError","isSIELoading","defaultMaxRetries","defaultRetryInterval","retryableProviderFactory","fn","config","maxRetries","baseRetryInterval","onExhuastedRetries","retryOn","onPartialResult","wrappedProvider","attempt","response","retries","transformEventToTelemetryEvent","loaded","opened","importanceLevelSortFn","insight1","insight2","rankSortFn","Score","insightSorter","importance","rank","rankThenImportance","useInsightsSearchForReport","insightSearch","_ref$sortBy","sortBy","timeoutText","isApolloReport","fromDSQ","symptomId","AplInsightWidgetContext","insights","statusDetails","runCount","loadingStartTime","searchInsights","Insight","fromDSQInput","SymptomId","retryableInsightProvider","isPartial","isTimedout","solutionWaitTime","reason","setToDefaults","startSearch","requestIds","isIdle","_selectors","fromInsightForReport","transformInsightToCardItem","useInsightsSearch","onClickReRun","insightProvider","triggerInsights","triggerCriteria","replacementKey","result","count","emptyExperienceAplReportInsights","noResultText","insightWidgetReducer","sort","AplInsightWidgetProvider","instantAnswersResults","AplInstantAnswersWidgetContext","InstantAnswersWidgetReducer","result1","result2","UnifiedRank","AplInstantAnswersWidgetProvider","useInstantAnswers","isLiteVersion","_React$useContext","searchForAnswers","requestId","instantAnswersProvider","getInstantAnswersResults","isTimedOut","instantAnswers","answer","LiteCardTitle","fromInstantAnswersLite","fromInstantAnswers","transformInstantAnswerToSolutionCardItem","tiny","AplSolutionCardLite","SolutionCardLiteItem","AplInstantAnswersWidgetLiteInternal","noInstantAnswerView","onWidgetLoaded","_useInstantAnswers","AplInstantAnswersLiteWidget","ApolloReportWidgetContext","apolloReportWidgetReducer","solution","ApolloReportWidgetProvider","ApolloReportConverter","ApolloReportsFromApi","diagnostics","addDiagnostics","ApolloReports","charts","metrics","videos","videoGroups","bindings","ApolloReport","diagnosticResults","x","additionalInputsReq","executionText","maxInsightCount","azurekb","solutionSearchResult","matches","diagnosticResult","metric","src","video","videoGroup","inLineLoader","loaderText","AplReportInsightWidgetInternal","useTranslation","targetScopingQuestions","_useInsightsSearchFor","AplReportInsightWidget","AplReportInsightWidgetWithoutProvider","AplScopingQuestionsWidgetInternal","_useScopingQuestions","hideScopingQuestion","sethideScopingQuestion","scopingQuestionParameters","setScopingQuestionsParameters","requiredParametersSuccess","setRequiredParametersSuccess","insightContext","fetchData","onSubmitScopingQuestions","onClickSubmit","requiredValid","scopingQuestions","insightsDataProvider","tempScpoingQuestions","getScopingQuestions","displayInsights","transformScopingQuestionsToSolutionCardItem","isLoadingInsights","useScopingQuestions","insightsNotLoadedExperience","displayIcon","getInsightsNotLoadedExperience","AplScopingQuestionsWidget","isLoadingInsight","requiredParametersError","reRunClicksText","float","red","textDecoration","AplVideoWidgetInternal","VideoContent","videoId","IsVideoShown","IsVideoPlayed","postMessageHandler","Video","JSON","parse","playerState","matchYoutube","ytRegex","exec","matchChannel9","channel9Regex","computeVideoUrl","listener","setInterval","iframe","getElementById","frameContentWindow","contentWindow","addEventListener","postMessage","removeEventListener","frameBorder","sandbox","allowFullScreen","AplVideoWidget","FilterComparisonOperator","MonitorChartV2AggregationType","AplVideoGroupWidget","VideoGroup","ProvisioningState","DiagnosticInsightImportanceLevel","convertToMonitorChartTimespanValue","timeSpanDuration","strPartDuration","numPartDuration","toUpperCase","convertToMonitorChartAggregationType","iMetricAggregationType","Sum","Avg","Count","Min","Max","convertToMonitorChartFilters","filterGroups","filters","operator","convertToMetricOperationType","operationType","StartsWith","NotEqual","Equal","convertToMetricBladeParams","resourceId","bladeParams","timeContext","relative","duration","grain","showUTCTime","stringify","monitorChartV2Options","resourceMetadata","aggregationType","visualization","disablePinning","filterCollection","filterGroup","AplMetricBladeLink","metricText","dataBladeName","convertApolloJSON","apolloItemResponse","apolloResultProperties","properties","apolloResultReplacementMap","replacementMaps","parseInsightContent","parseVideoContent","parseVideoGroupContent","parseAzureKBResults","webResults","parseMetricsContent","metricsBasedCharts","sections","apolloSections","section","_e","apolloInsights","apolloVideos","apolloVideoGroups","apolloAzureKB","apolloMetrics","parseSectionContent","solutionId","metricFilterGroup","azureKBDataResults","azureKBData","azureKBDataResult","aplSolutionBindingInstantAnswer","searchResults","searchResult","High","OverAllRank","UnifiedConfidence","resultType","__awaiter","thisArg","_arguments","P","generator","fulfilled","next","rejected","ApolloDataProvider","aplRpc","ARM_API_VERSION","POLLING_INTERVAL_MS","_apolloContext","_cleanup","_aplRpc","_resourceName","c","Math","random","_this","_cachedApolloItemResponse","_f","_g","_h","diagnostic","sectionDiagnostic","Id","Information","results","_resolve","_this2","keys","_regeneratorRuntime","mark","_callee","requestUri","bodyParameters","rpcParameters","_this3","_context","prev","constructRequestUriHelper","deriveRequestBodyParameters","constructRequestBodyHelper","fetch","_timeoutId","pollSolution","t0","stop","_callee3","_this4","_context3","abrupt","_callee2","responseDataObject","_this5","_context2","sent","_callee5","_this6","_context5","_callee4","rpcParametersForGet","_this7","_context4","provisioningState","resourceName","baseEndpoint","parameters","sapId","additionalParamters","partialResourceId","SupportTopicId","searchText","ProductId","legacyProductId","legacySupportTopicId","previewArticle","resourceTag","hiding","AplAccordion","setIsExpanded","contentId","previousExpandedState","SECTION_WIDGET","AplSectionWidget","Section","renderSolution","telemetryHandler","onRenderMetric","logImpressions","Report","fromApolloReportApi","logSrc","shouldLogTelemetry","actionDataWithReportLogs","renderInsight","InstantAnswer","renderInstantAnwser","renderVideo","renderVideoGroup","renderMetric","logs","apolloReportNodeProcessor","ApolloReportWidgetInternal","apolloReportProvider","onRenderNoSolution","_useApolloReport","fetchApolloReport","triggerApolloReport","fetchTrigerredApolloReport","getTriggeredApolloReport","innerComponentLog","topSection","autoLoadInfo","useApolloReport","ApolloReportWidget","internalProps","armApolloProvider","isIApolloReportWidgetPropsWithDefaultProviders","cleanup"],"sourceRoot":""}