{"version":3,"file":"vendorFluentUI.f6d45c2bfa28a6f6564c.js","mappings":"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iEC1EIqvM,E,UAKG,SAASC,EAAMhqH,GAClB,IAAI5kF,EACJ,QAA2B,IAAhB2uM,GAA+B/pH,EAAO,CAC7C,IAAI5sC,GAAM,SAENwiI,EAA+E,QAAlEx6K,EAAKg4C,aAAiC,EAASA,EAAI8/E,iBAA8B,IAAP93H,OAAgB,EAASA,EAAGw6K,UACvHm0B,IAAgBn0B,IAAiD,IAApCA,EAAUtlK,QAAQ,YACnD,CACA,QAASy5L,CACb,C,0OCfA,IAAIE,EAAc,WAEd,IADA,IAAI/rL,EAAQ,GACH1hB,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpC0hB,EAAM1hB,GAAMC,UAAUD,GAG1B,IADA,IAAI6C,EAAS,CAAC,EACLjE,EAAK,EAAGk8D,EAAUp5C,EAAO9iB,EAAKk8D,EAAQ56D,OAAQtB,IAGnD,IAFA,IAAImhB,EAAO+6C,EAAQl8D,GAEV2H,EAAK,EAAGmnM,EADN5sM,MAAMC,QAAQgf,GAAQA,EAAOlc,OAAOiU,KAAKiI,GACpBxZ,EAAKmnM,EAAOxtM,OAAQqG,IAEhD1D,EADU6qM,EAAOnnM,IACH,EAGtB,OAAO1D,CACX,EAMW8qM,EAAoBF,EAAY,CACvC,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAOOG,EAAwBH,EAAY,CAC3C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAOOI,EAAwBJ,EAAYG,EAA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","sources":["webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateValues/timeConstants.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/elementContains.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/getParent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/lib/createComponent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/lib/slots.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/lib/utilities.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-focus/node_modules/tslib/tslib.es6.mjs","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useAsync.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useBoolean.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useConst.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useControllableValue.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useId.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/node_modules/tslib/tslib.es6.mjs","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useOnEvent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/usePrevious.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useSetTimeout.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useTarget.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useUnmount.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/common/DirectionalHint.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Autofill/Autofill.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/BaseButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/ButtonThemes.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CommandButton/CommandButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CompoundButton/CompoundButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CompoundButton/CompoundButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/PrimaryButton/PrimaryButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/Rectangle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/Callout.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Check/Check.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Check/Check.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Check/Check.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/getFullColorString.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsv2hex.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateSV.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateA.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateT.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateH.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/correctHex.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/correctRGB.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/getChildren.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CommandBar/CommandBar.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CommandBar/CommandBar.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CommandBar/CommandBar.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateValues/dateValues.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/node_modules/tslib/tslib.es6.mjs","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateFormatting/dateFormatting.defaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateMath/dateMath.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/getBoundedDateRange.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isBeforeMinDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isAfterMaxDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isRestrictedDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/findAvailableDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarGridDayCell.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarGridRow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/getDayGrid.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/getDateRangeTypeToUse.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isContiguous.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarPicker/CalendarPicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/defaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/defaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/decorators/withViewport.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/groupedList/GroupedListUtility.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowFields.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/getNativeElementProps.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowCheck.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowCheck.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/Dialog.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/Dialog.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/Dialog.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardPreview.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardActivity.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardActivity.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardActivity.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardDetails.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardDetails.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardDetails.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardImage.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardImage.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardImage.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardLocation.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardLocation.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardLocation.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardTitle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardTitle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardTitle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/safeRequestAnimationFrame.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/FacepileButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/FacepileButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useEventCallback.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupSpacer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedListSection.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Label/Label.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Label/Label.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Label/Label.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/FocusRectsProvider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/Customizer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/useLink.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/Link.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/Link.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/Link.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/List/utils/scroll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/List/List.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/List/List.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/AutoScroll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MarqueeSelection/MarqueeSelection.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MarqueeSelection/MarqueeSelection.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MarqueeSelection/MarqueeSelection.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Modal/Modal.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Modal/Modal.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Modal/Modal.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Nav/Nav.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Nav/Nav.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Nav/Nav.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowSet.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowSet.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowSet.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaInitialsColor.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaConsts.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useRefEffect.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/Pivot.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/useOverflow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/observeResize.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/Pivot.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/Pivot.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/PivotItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Popup/Popup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Separator/Separator.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Separator/Separator.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Separator/Separator.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/useSlider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/Slider.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/Slider.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/Slider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/StackUtils.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/Stack.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/Stack.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Sticky/Sticky.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Sticky/Sticky.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGrid.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGrid.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGrid.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGridCell.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/ColorPickerGridCell.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/ColorPickerGridCell.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/ColorPickerGridCell.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/SwatchColorPicker.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/SwatchColorPicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/SwatchColorPicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubbleContent.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubble.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubbleContent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubble.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubble.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/MaskedTextField/inputMask.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/MaskedTextField/MaskedTextField.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/TextField.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/controlled.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/TextField.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/TextField.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Text/Text.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Text/Text.view.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Text/Text.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/timeMath/timeMath.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/timeFormatting/index.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TimePicker/TimePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Toggle/Toggle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Toggle/Toggle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Toggle/Toggle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/overflow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Announced/Announced.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Announced/Announced.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Announced/Announced.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.scss.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsController.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.scss.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItemSuggestion.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItemSuggestion.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagPicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ThemeProvider/ThemeContext.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ThemeProvider/useTheme.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/_rgbaOrHexString.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/clamp.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/consts.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/getColorFromRGBA.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/rgb2hsv.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/cssColor.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/getColorFromString.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsl2rgb.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsl2hsv.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsv2rgb.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/rgb2hex.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/hoist.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/decorators/BaseDecorator.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/dragdrop/DragDropHelper.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/selection/SelectionZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/Async.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/BaseComponent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/DelayedRender.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/EventGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/aria.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/array.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/createMergedRef.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/css.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/customizable.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/dom/getRect.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/dom/on.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/appendFunction.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/extendComponent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/focus.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/hoistStatics.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/ie11Detector.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/initializeComponentRef.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/initials.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/math.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/mobileDetector.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/modalize.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/object.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/osDetector.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/properties.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/scroll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/selection/Selection.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/selection/Selection.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/string.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/keyboard.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/useFocusRects.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/warn/warnDeprecations.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/warn/warnMutuallyExclusive.js","webpack://polite-mail-reactv2/./node_modules/office-ui-fabric-core/dist/css/fabric.min.css","webpack://polite-mail-reactv2/./node_modules/office-ui-fabric-core/dist/css/fabric.min.css?44ac","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["export var TimeConstants = {\n    MillisecondsInOneDay: 86400000,\n    MillisecondsIn1Sec: 1000,\n    MillisecondsIn1Min: 60000,\n    MillisecondsIn30Mins: 1800000,\n    MillisecondsIn1Hour: 3600000,\n    MinutesInOneDay: 1440,\n    MinutesInOneHour: 60,\n    DaysInOneWeek: 7,\n    MonthInOneYear: 12,\n    HoursInOneDay: 24,\n    SecondsInOneMinute: 60,\n    OffsetTo24HourFormat: 12,\n    /**\n     * Matches a time string. Groups:\n     * 1. hours (with or without leading 0)\n     * 2. minutes\n     * 3. seconds (optional)\n     * 4. meridiem (am/pm, case-insensitive, optional)\n     */\n    TimeFormatRegex: /^(\\d\\d?):(\\d\\d):?(\\d\\d)? ?([ap]m)?/i,\n};\n//# sourceMappingURL=timeConstants.js.map","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n    if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n    var isContained = false;\n    if (parent && child) {\n        if (allowVirtualParents) {\n            if (parent === child) {\n                isContained = true;\n            }\n            else {\n                isContained = false;\n                while (child) {\n                    var nextParent = getParent(child);\n                    if (nextParent === parent) {\n                        isContained = true;\n                        break;\n                    }\n                    child = nextParent;\n                }\n            }\n        }\n        else if (parent.contains) {\n            isContained = parent.contains(child);\n        }\n    }\n    return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction) {\n    if (!element || element === document.body) {\n        return null;\n    }\n    return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n    if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n    return (child &&\n        ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && child.parentNode)));\n}\n//# sourceMappingURL=getParent.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n    var parent;\n    if (child && isVirtualElement(child)) {\n        parent = child._virtual.parent;\n    }\n    return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n    return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent) {\n    var elementMatch = findElementRecursive(target, function (testElement) { return parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE); });\n    return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n//# sourceMappingURL=portalContainsElement.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n    element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSets } from '@fluentui/style-utilities';\nimport { Customizations, CustomizerContext } from '@fluentui/utilities';\nimport { createFactory } from './slots';\nimport { assign } from './utilities';\n/**\n * Assembles a higher order component based on the following: styles, theme, view, and state.\n * Imposes a separation of concern and centralizes styling processing to increase ease of use and robustness\n * in how components use and apply styling and theming.\n *\n * Automatically merges and applies themes and styles with theme / styleprops having the highest priority.\n * State component, if provided, is passed in props for processing. Props from state / user are automatically processed\n * and styled before finally being passed to view.\n *\n * State components should contain all stateful behavior and should not generate any JSX, but rather simply call\n * the view prop.\n *\n * Views should simply be stateless pure functions that receive all props needed for rendering their output.\n *\n * State component is optional. If state is not provided, created component is essentially a functional\n * stateless component.\n *\n * @param options - component Component options. See IComponentOptions for more detail.\n */\nexport function createComponent(view, options) {\n    if (options === void 0) { options = {}; }\n    var _a = options.factoryOptions, factoryOptions = _a === void 0 ? {} : _a;\n    var defaultProp = factoryOptions.defaultProp;\n    var ResultComponent = function (componentProps) {\n        var settings = _getCustomizations(options.displayName, React.useContext(CustomizerContext), options.fields);\n        var stateReducer = options.state;\n        if (stateReducer) {\n            // Don't assume state will return all props, so spread useState result over component props.\n            componentProps = __assign(__assign({}, componentProps), stateReducer(componentProps));\n        }\n        var theme = componentProps.theme || settings.theme;\n        var tokens = _resolveTokens(componentProps, theme, options.tokens, settings.tokens, componentProps.tokens);\n        var styles = _resolveStyles(componentProps, theme, tokens, options.styles, settings.styles, componentProps.styles);\n        var viewProps = __assign(__assign({}, componentProps), { styles: styles, tokens: tokens, _defaultStyles: styles, theme: theme });\n        return view(viewProps);\n    };\n    ResultComponent.displayName = options.displayName || view.name;\n    // If a shorthand prop is defined, create a factory for the component.\n    // TODO: This shouldn't be a concern of createComponent.. factoryOptions should just be forwarded.\n    //       Need to weigh creating default factories on component creation vs. memoizing them on use in slots.tsx.\n    if (defaultProp) {\n        ResultComponent.create = createFactory(ResultComponent, { defaultProp: defaultProp });\n    }\n    assign(ResultComponent, options.statics);\n    // Later versions of TypeSript should allow us to merge objects in a type safe way and avoid this cast.\n    return ResultComponent;\n}\n/**\n * Resolve all styles functions with both props and tokens and flatten results along with all styles objects.\n */\nfunction _resolveStyles(props, theme, tokens) {\n    var allStyles = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        allStyles[_i - 3] = arguments[_i];\n    }\n    return concatStyleSets.apply(void 0, allStyles.map(function (styles) {\n        return typeof styles === 'function' ? styles(props, theme, tokens) : styles;\n    }));\n}\n/**\n * Resolve all tokens functions with props flatten results along with all tokens objects.\n */\nfunction _resolveTokens(props, theme) {\n    var allTokens = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        allTokens[_i - 2] = arguments[_i];\n    }\n    var tokens = {};\n    for (var _a = 0, allTokens_1 = allTokens; _a < allTokens_1.length; _a++) {\n        var currentTokens = allTokens_1[_a];\n        if (currentTokens) {\n            // TODO: why is this cast needed? TS seems to think there is a (TToken | Function) union from somewhere.\n            currentTokens =\n                typeof currentTokens === 'function'\n                    ? currentTokens(props, theme)\n                    : currentTokens;\n            if (Array.isArray(currentTokens)) {\n                currentTokens = _resolveTokens.apply(void 0, __spreadArray([props, theme], currentTokens, false));\n            }\n            assign(tokens, currentTokens);\n        }\n    }\n    return tokens;\n}\n/**\n * Helper function for calling Customizations.getSettings falling back to default fields.\n *\n * @param displayName Displayable name for component.\n * @param context React context passed to component containing contextual settings.\n * @param fields Optional list of properties to grab from global store and context.\n */\nfunction _getCustomizations(displayName, context, fields) {\n    // TODO: do we want field props? should fields be part of IComponent and used here?\n    // TODO: should we centrally define DefaultFields? (not exported from styling)\n    // TODO: tie this array to ICustomizationProps, such that each array element is keyof ICustomizationProps\n    var DefaultFields = ['theme', 'styles', 'tokens'];\n    return Customizations.getSettings(fields || DefaultFields, displayName, context.customizations);\n}\n//# sourceMappingURL=createComponent.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { mergeCss } from '@fluentui/merge-styles';\nimport { getRTL, memoizeFunction } from '@fluentui/utilities';\nimport { assign } from './utilities';\n/**\n * This function is required for any module that uses slots.\n *\n * This function is a slot resolver that automatically evaluates slot functions to generate React elements.\n * A byproduct of this resolver is that it removes slots from the React hierarchy by bypassing React.createElement.\n *\n * To use this function on a per-file basis, use the jsx directive targeting withSlots.\n * This directive must be the FIRST LINE in the file to work correctly.\n * Usage of this pragma also requires withSlots import statement.\n *\n * See React.createElement\n */\n// Can't use typeof on React.createElement since it's overloaded. Approximate createElement's signature for now\n// and widen as needed.\nexport function withSlots(type, props) {\n    var children = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        children[_i - 2] = arguments[_i];\n    }\n    var slotType = type;\n    if (slotType.isSlot) {\n        // Since we are bypassing createElement, use React.Children.toArray to make sure children are\n        // properly assigned keys.\n        // TODO: should this be mutating? does React mutate children subprop with createElement?\n        // TODO: will toArray clobber existing keys?\n        // TODO: React generates warnings because it doesn't detect hidden member _store that is set in createElement.\n        //        Even children passed to createElement without keys don't generate this warning.\n        //        Is there a better way to prevent slots from appearing in hierarchy? toArray doesn't address root issue.\n        children = React.Children.toArray(children);\n        // TODO: There is something weird going on here with children embedded in props vs. rest args.\n        // Comment out these lines to see. Make sure this function is doing the right things.\n        if (children.length === 0) {\n            return slotType(props);\n        }\n        return slotType(__assign(__assign({}, props), { children: children }));\n    }\n    else {\n        // TODO: Are there some cases where children should NOT be spread? Also, spreading reraises perf question.\n        //        Children had to be spread to avoid breaking KeytipData in Toggle.view:\n        //        react-dom.development.js:18931 Uncaught TypeError: children is not a function\n        //        Without spread, function child is a child array of one element\n        // TODO: is there a reason this can't be:\n        // return React.createElement.apply(this, arguments);\n        return React.createElement.apply(React, __spreadArray([type, props], children, false));\n    }\n}\n/**\n * This function creates factories that render ouput depending on the user ISlotProp props passed in.\n * @param DefaultComponent - Base component to render when not overridden by user props.\n * @param options - Factory options, including defaultProp value for shorthand prop mapping.\n * @returns ISlotFactory function used for rendering slots.\n */\nexport function createFactory(DefaultComponent, options) {\n    if (options === void 0) { options = {}; }\n    var _a = options.defaultProp, defaultProp = _a === void 0 ? 'children' : _a;\n    var result = function (componentProps, userProps, userSlotOptions, defaultStyles, theme) {\n        // If they passed in raw JSX, just return that.\n        if (React.isValidElement(userProps)) {\n            return userProps;\n        }\n        var flattenedUserProps = _translateShorthand(defaultProp, userProps);\n        var finalProps = _constructFinalProps(defaultStyles, theme, componentProps, flattenedUserProps);\n        if (userSlotOptions) {\n            if (userSlotOptions.component) {\n                // TODO: Remove cast if possible. This cast is needed because TS errors on the intrinsic portion of ReactType.\n                // return <userSlotOptions.component {...finalProps} />;\n                var UserComponent = userSlotOptions.component;\n                return React.createElement(UserComponent, __assign({}, finalProps));\n            }\n            if (userSlotOptions.render) {\n                return userSlotOptions.render(finalProps, DefaultComponent);\n            }\n        }\n        return React.createElement(DefaultComponent, __assign({}, finalProps));\n    };\n    return result;\n}\n/**\n * Default factory for components without explicit factories.\n */\nvar defaultFactory = memoizeFunction(function (type) { return createFactory(type); });\n/**\n * This function generates slots that can be used in JSX given a definition of slots and their corresponding types.\n * @param userProps - Props as pass to component.\n * @param slots - Slot definition object defining the default slot component for each slot.\n * @returns A set of created slots that components can render in JSX.\n */\nexport function getSlots(userProps, slots) {\n    var result = {};\n    // userProps already has default props mixed in by createComponent. Recast here to gain typing for this function.\n    var mixedProps = userProps;\n    var _loop_1 = function (name_1) {\n        if (slots.hasOwnProperty(name_1)) {\n            // This closure method requires the use of withSlots to prevent unnecessary rerenders. This is because React\n            // detects each closure as a different component (since it is a new instance) from the previous one and then\n            // forces a rerender of the entire slot subtree. For now, the only way to avoid this is to use withSlots, which\n            // bypasses the call to React.createElement.\n            var slot = function (componentProps) {\n                var args = [];\n                for (var _i = 1; _i < arguments.length; _i++) {\n                    args[_i - 1] = arguments[_i];\n                }\n                if (args.length > 0) {\n                    // If React.createElement is being incorrectly used with slots, there will be additional arguments.\n                    // We can detect these additional arguments and error on their presence.\n                    throw new Error('Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.');\n                }\n                // TODO: having TS infer types here seems to cause infinite loop.\n                //   use explicit types or casting to preserve typing if possible.\n                // TODO: this should be a lookup on TProps property instead of being TProps directly, which is probably\n                //   causing the infinite loop\n                return _renderSlot(slots[name_1], \n                // TODO: this cast to any is hiding a relationship issue between the first two args\n                componentProps, mixedProps[name_1], mixedProps.slots && mixedProps.slots[name_1], \n                // _defaultStyles should always be present, but a check for existence is added to make view tests\n                // easier to use.\n                mixedProps._defaultStyles && mixedProps._defaultStyles[name_1], mixedProps.theme);\n            };\n            slot.isSlot = true;\n            result[name_1] = slot;\n        }\n    };\n    for (var name_1 in slots) {\n        _loop_1(name_1);\n    }\n    return result;\n}\n/**\n * Helper function that translates shorthand as needed.\n * @param defaultProp\n * @param slotProps\n */\nfunction _translateShorthand(defaultProp, slotProps) {\n    var _a;\n    var transformedProps;\n    if (typeof slotProps === 'string' || typeof slotProps === 'number' || typeof slotProps === 'boolean') {\n        transformedProps = (_a = {},\n            _a[defaultProp] = slotProps,\n            _a);\n    }\n    else {\n        transformedProps = slotProps;\n    }\n    return transformedProps;\n}\n/**\n * Helper function that constructs final styles and props given a series of props ordered by increasing priority.\n */\nfunction _constructFinalProps(defaultStyles, theme) {\n    var allProps = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        allProps[_i - 2] = arguments[_i];\n    }\n    var finalProps = {};\n    var classNames = [];\n    for (var _a = 0, allProps_1 = allProps; _a < allProps_1.length; _a++) {\n        var props = allProps_1[_a];\n        classNames.push(props && props.className);\n        assign(finalProps, props);\n    }\n    finalProps.className = mergeCss([defaultStyles, classNames], { rtl: getRTL(theme) });\n    return finalProps;\n}\n/**\n * Render a slot given component and user props. Uses component factory if available, otherwise falls back\n * to default factory.\n * @param ComponentType Factory component type.\n * @param componentProps The properties passed into slot from within the component.\n * @param userProps The user properties passed in from outside of the component.\n */\nfunction _renderSlot(ComponentType, componentProps, userProps, slotOptions, defaultStyles, theme) {\n    if (ComponentType.create !== undefined) {\n        return ComponentType.create(componentProps, userProps, slotOptions, defaultStyles);\n    }\n    else {\n        // TODO: need to resolve typing / generic issues passing through memoizeFunction. for now, cast to 'unknown'\n        return defaultFactory(ComponentType)(componentProps, userProps, slotOptions, defaultStyles, theme);\n    }\n}\n//# sourceMappingURL=slots.js.map","import { __assign } from 'tslib';\nexport var assign = __assign;\n//# sourceMappingURL=utilities.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, findScrollableParent, createMergedRef, isElementVisibleAndNotHidden, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n    var event;\n    if (typeof MouseEvent === 'function') {\n        event = new MouseEvent('click', {\n            ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n            metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n            shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n            altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n            bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n            cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n        });\n    }\n    else {\n        event = document.createEvent('MouseEvents');\n        // eslint-disable-next-line deprecation/deprecation\n        event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, window, // not using getWindow() since this can only be run client side\n        0, // detail\n        0, // screen x\n        0, // screen y\n        0, // client x\n        0, // client y\n        ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n        null);\n    }\n    target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n    if (!focusZoneStyles) {\n        focusZoneStyles = mergeStyles({\n            selectors: {\n                ':focus': {\n                    outline: 'none',\n                },\n            },\n        }, focusZoneClass);\n    }\n    return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search', 'textarea'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n    __extends(FocusZone, _super);\n    function FocusZone(props) {\n        var _this = this;\n        var _a, _b, _c, _d;\n        _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._mergedRef = createMergedRef();\n        _this._onFocus = function (ev) {\n            if (_this._portalContainsElement(ev.target)) {\n                // If the event target is inside a portal do not process the event.\n                return;\n            }\n            var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, \n            // eslint-disable-next-line deprecation/deprecation\n            doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n            // eslint-disable-next-line deprecation/deprecation\n            onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n            var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n            var newActiveElement;\n            if (isImmediateDescendant) {\n                newActiveElement = ev.target;\n            }\n            else {\n                var parentElement = ev.target;\n                while (parentElement && parentElement !== _this._root.current) {\n                    if (isElementTabbable(parentElement) && _this._isImmediateDescendantOfZone(parentElement)) {\n                        newActiveElement = parentElement;\n                        break;\n                    }\n                    parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n                }\n            }\n            // If an inner focusable element should be focused when FocusZone container receives focus\n            if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n                var maybeElementToFocus = defaultTabbableElement &&\n                    typeof defaultTabbableElement === 'function' &&\n                    _this._root.current &&\n                    defaultTabbableElement(_this._root.current);\n                // try to focus defaultTabbable element\n                if (maybeElementToFocus && isElementTabbable(maybeElementToFocus)) {\n                    newActiveElement = maybeElementToFocus;\n                    maybeElementToFocus.focus();\n                }\n                else {\n                    // force focus on first focusable element\n                    _this.focus(true);\n                    if (_this._activeElement) {\n                        // set to null as new active element was handled in method above\n                        newActiveElement = null;\n                    }\n                }\n            }\n            var initialElementFocused = !_this._activeElement;\n            // If the new active element is a child of this zone and received focus,\n            // update alignment an immediate descendant\n            if (newActiveElement && newActiveElement !== _this._activeElement) {\n                if (isImmediateDescendant || initialElementFocused) {\n                    _this._setFocusAlignment(newActiveElement, true, true);\n                }\n                _this._activeElement = newActiveElement;\n                if (initialElementFocused) {\n                    _this._updateTabIndexes();\n                }\n            }\n            if (onActiveElementChanged) {\n                onActiveElementChanged(_this._activeElement, ev);\n            }\n            if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n                ev.stopPropagation();\n            }\n            if (onFocus) {\n                onFocus(ev);\n            }\n            else if (onFocusNotification) {\n                onFocusNotification();\n            }\n        };\n        _this._onBlur = function () {\n            _this._setParkedFocus(false);\n        };\n        _this._onMouseDown = function (ev) {\n            if (_this._portalContainsElement(ev.target)) {\n                // If the event target is inside a portal do not process the event.\n                return;\n            }\n            var disabled = _this.props.disabled;\n            if (disabled) {\n                return;\n            }\n            var target = ev.target;\n            var path = [];\n            while (target && target !== _this._root.current) {\n                path.push(target);\n                target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n            }\n            while (path.length) {\n                target = path.pop();\n                if (target && isElementTabbable(target)) {\n                    _this._setActiveElement(target, true);\n                }\n                if (isElementFocusZone(target)) {\n                    // Stop here since the focus zone will take care of its own children.\n                    break;\n                }\n            }\n        };\n        /**\n         * Handle the keystrokes.\n         */\n        _this._onKeyDown = function (ev, theme) {\n            if (_this._portalContainsElement(ev.target)) {\n                // If the event target is inside a portal do not process the event.\n                return;\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n            if (disabled) {\n                return;\n            }\n            if (_this.props.onKeyDown) {\n                _this.props.onKeyDown(ev);\n            }\n            // If the default has been prevented, do not process keyboard events.\n            if (ev.isDefaultPrevented()) {\n                return;\n            }\n            if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n                // If this element has focus, it is being controlled by a parent.\n                // Ignore the keystroke.\n                return;\n            }\n            if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n                _this._isImmediateDescendantOfZone(ev.target)) {\n                // Try to focus\n                var innerZone = _this._getFirstInnerZone();\n                if (innerZone) {\n                    if (!innerZone.focus(true)) {\n                        return;\n                    }\n                }\n                else if (isElementFocusSubZone(ev.target)) {\n                    if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n                        return;\n                    }\n                }\n                else {\n                    return;\n                }\n            }\n            else if (ev.altKey) {\n                return;\n            }\n            else {\n                // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n                switch (ev.which) {\n                    case KeyCodes.space:\n                        if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.left:\n                        if (direction !== FocusZoneDirection.vertical) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusLeft(theme)) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.right:\n                        if (direction !== FocusZoneDirection.vertical) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusRight(theme)) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.up:\n                        if (direction !== FocusZoneDirection.horizontal) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusUp()) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.down:\n                        if (direction !== FocusZoneDirection.horizontal) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusDown()) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.pageDown:\n                        if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.pageUp:\n                        if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.tab:\n                        if (\n                        // eslint-disable-next-line deprecation/deprecation\n                        _this.props.allowTabKey ||\n                            _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n                            (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n                                _this._isElementInput(ev.target))) {\n                            var focusChanged = false;\n                            _this._processingTabKey = true;\n                            if (direction === FocusZoneDirection.vertical ||\n                                !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n                                focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n                            }\n                            else {\n                                var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n                                focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n                            }\n                            _this._processingTabKey = false;\n                            if (focusChanged) {\n                                break;\n                            }\n                            else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n                                _this._activeElement = null;\n                            }\n                        }\n                        return;\n                    case KeyCodes.home:\n                        if (_this._isContentEditableElement(ev.target) ||\n                            (_this._isElementInput(ev.target) &&\n                                !_this._shouldInputLoseFocus(ev.target, false))) {\n                            return false;\n                        }\n                        var firstChild = _this._root.current && _this._root.current.firstChild;\n                        if (_this._root.current &&\n                            firstChild &&\n                            _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.end:\n                        if (_this._isContentEditableElement(ev.target) ||\n                            (_this._isElementInput(ev.target) &&\n                                !_this._shouldInputLoseFocus(ev.target, true))) {\n                            return false;\n                        }\n                        var lastChild = _this._root.current && _this._root.current.lastChild;\n                        if (_this._root.current &&\n                            _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.enter:\n                        if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n                            break;\n                        }\n                        return;\n                    default:\n                        return;\n                }\n            }\n            ev.preventDefault();\n            ev.stopPropagation();\n        };\n        _this._getHorizontalDistanceFromCenter = function (isForward, \n        // eslint-disable-next-line deprecation/deprecation\n        activeRect, \n        // eslint-disable-next-line deprecation/deprecation\n        targetRect) {\n            // eslint-disable-next-line deprecation/deprecation\n            var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n            // ClientRect values can be floats that differ by very small fractions of a decimal.\n            // If the difference between top and bottom are within a pixel then we should treat\n            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n            // but without Math.Floor they will be handled incorrectly.\n            var targetRectTop = Math.floor(targetRect.top);\n            var activeRectBottom = Math.floor(activeRect.bottom);\n            var targetRectBottom = Math.floor(targetRect.bottom);\n            var activeRectTop = Math.floor(activeRect.top);\n            var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n            var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n            if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n                    return 0;\n                }\n                return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n            }\n            if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n                return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n            }\n            return LARGE_DISTANCE_FROM_CENTER;\n        };\n        // Manage componentRef resolution.\n        initializeComponentRef(_this);\n        if (process.env.NODE_ENV !== 'production') {\n            warnDeprecations('FocusZone', props, {\n                rootProps: undefined,\n                allowTabKey: 'handleTabKey',\n                elementType: 'as',\n                ariaDescribedBy: 'aria-describedby',\n                ariaLabelledBy: 'aria-labelledby',\n            });\n        }\n        _this._id = getId('FocusZone');\n        _this._focusAlignment = {\n            left: 0,\n            top: 0,\n        };\n        _this._processingTabKey = false;\n        var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n        _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n        _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n        return _this;\n    }\n    /** Used for testing purposes only. */\n    FocusZone.getOuterZones = function () {\n        return _outerZones.size;\n    };\n    /**\n     * Handle global tab presses so that we can patch tabindexes on the fly.\n     * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n     * for ref counting to work correctly!\n     */\n    FocusZone._onKeyDownCapture = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n        if (ev.which === KeyCodes.tab) {\n            _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n        }\n    };\n    FocusZone.prototype.componentDidMount = function () {\n        var root = this._root.current;\n        _allInstances[this._id] = this;\n        if (root) {\n            var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n            while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n                if (isElementFocusZone(parentElement)) {\n                    this._isInnerZone = true;\n                    break;\n                }\n                parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n            }\n            if (!this._isInnerZone) {\n                _outerZones.add(this);\n                this._root.current && this._root.current.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n            }\n            this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n            // Assign initial tab indexes so that we can set initial focus as appropriate.\n            this._updateTabIndexes();\n            if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n                this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n                // eslint-disable-next-line deprecation/deprecation\n            }\n            else if (this.props.defaultActiveElement) {\n                // eslint-disable-next-line deprecation/deprecation\n                this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n            }\n            if (this.props.shouldFocusOnMount) {\n                this.focus();\n            }\n        }\n    };\n    FocusZone.prototype.componentDidUpdate = function () {\n        var root = this._root.current;\n        var doc = this._getDocument();\n        // If either _activeElement or _defaultFocusElement are no longer contained by _root,\n        // reset those variables (and update tab indexes) to avoid memory leaks\n        if ((this._activeElement && !elementContains(this._root.current, this._activeElement, ALLOW_VIRTUAL_ELEMENTS)) ||\n            (this._defaultFocusElement &&\n                !elementContains(this._root.current, this._defaultFocusElement, ALLOW_VIRTUAL_ELEMENTS))) {\n            this._activeElement = null;\n            this._defaultFocusElement = null;\n            this._updateTabIndexes();\n        }\n        if (!this.props.preventFocusRestoration &&\n            doc &&\n            this._lastIndexPath &&\n            (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n            // The element has been removed after the render, attempt to restore focus.\n            var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n            if (elementToFocus) {\n                this._setActiveElement(elementToFocus, true);\n                elementToFocus.focus();\n                this._setParkedFocus(false);\n            }\n            else {\n                // We had a focus path to restore, but now that path is unresolvable. Park focus\n                // on the container until we can try again.\n                this._setParkedFocus(true);\n            }\n        }\n    };\n    FocusZone.prototype.componentWillUnmount = function () {\n        delete _allInstances[this._id];\n        if (!this._isInnerZone) {\n            _outerZones.delete(this);\n            this._root.current && this._root.current.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n        }\n        if (this._root.current) {\n            this._root.current.removeEventListener('blur', this._onBlur, true);\n        }\n        this._activeElement = null;\n        this._defaultFocusElement = null;\n    };\n    FocusZone.prototype.render = function () {\n        var _this = this;\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, tag = _a.as, elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n        var divProps = getNativeProps(this.props, htmlElementProperties);\n        var Tag = tag || elementType || 'div';\n        // Note, right before rendering/reconciling proceeds, we need to record if focus\n        // was in the zone before the update. This helper will track this and, if focus\n        // was actually in the zone, what the index path to the element is at this time.\n        // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n        // the case the element was removed.\n        this._evaluateFocusBeforeRender();\n        // Only support RTL defined in global theme, not contextual theme/RTL.\n        var theme = getTheme();\n        return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n            // Once the getClassName correctly memoizes inputs this should\n            // be replaced so that className is passed to getRootClass and is included there so\n            // the class names will always be in the same order.\n            className: css(getRootClass(), className), \n            // eslint-disable-next-line deprecation/deprecation\n            ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n            // eslint-disable-next-line react/jsx-no-bind\n            onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n    };\n    /**\n     * Sets focus to the first tabbable item in the zone.\n     * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n     * if focus is already in the focus zone.\n     * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n     * @returns True if focus could be set to an active element, false if no operation was taken.\n     */\n    FocusZone.prototype.focus = function (forceIntoFirstElement, bypassHiddenElements) {\n        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n        if (bypassHiddenElements === void 0) { bypassHiddenElements = false; }\n        if (this._root.current) {\n            if (!forceIntoFirstElement &&\n                this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n                this._isInnerZone) {\n                var ownerZoneElement = this._getOwnerZone(this._root.current);\n                if (ownerZoneElement !== this._root.current) {\n                    var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n                    return !!ownerZone && ownerZone.focusElement(this._root.current);\n                }\n                return false;\n            }\n            else if (!forceIntoFirstElement &&\n                this._activeElement &&\n                elementContains(this._root.current, this._activeElement) &&\n                isElementTabbable(this._activeElement) &&\n                (!bypassHiddenElements || isElementVisibleAndNotHidden(this._activeElement))) {\n                this._activeElement.focus();\n                return true;\n            }\n            else {\n                var firstChild = this._root.current.firstChild;\n                return this.focusElement(getNextElement(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements));\n            }\n        }\n        return false;\n    };\n    /**\n     * Sets focus to the last tabbable item in the zone.\n     * @returns True if focus could be set to an active element, false if no operation was taken.\n     */\n    FocusZone.prototype.focusLast = function () {\n        if (this._root.current) {\n            var lastChild = this._root.current && this._root.current.lastChild;\n            return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n        }\n        return false;\n    };\n    /**\n     * Sets focus to a specific child element within the zone. This can be used in conjunction with\n     * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n     * location and then focus.)\n     * @param element - The child element within the zone to focus.\n     * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n     * @returns True if focus could be set to an active element, false if no operation was taken.\n     */\n    FocusZone.prototype.focusElement = function (element, forceAlignment) {\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, onBeforeFocus = _a.onBeforeFocus, shouldReceiveFocus = _a.shouldReceiveFocus;\n        if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n            return false;\n        }\n        if (element) {\n            // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n            this._setActiveElement(element, forceAlignment);\n            if (this._activeElement) {\n                this._activeElement.focus();\n            }\n            return true;\n        }\n        return false;\n    };\n    /**\n     * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n     * rather than a center based on the last horizontal motion.\n     * @param point - the new reference point.\n     */\n    FocusZone.prototype.setFocusAlignment = function (point) {\n        this._focusAlignment = point;\n    };\n    Object.defineProperty(FocusZone.prototype, \"defaultFocusElement\", {\n        get: function () {\n            return this._defaultFocusElement;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(FocusZone.prototype, \"activeElement\", {\n        get: function () {\n            return this._activeElement;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    FocusZone.prototype._evaluateFocusBeforeRender = function () {\n        var root = this._root.current;\n        var doc = this._getDocument();\n        if (doc) {\n            var focusedElement = doc.activeElement;\n            // Only update the index path if we are not parked on the root.\n            if (focusedElement !== root) {\n                var shouldRestoreFocus = elementContains(root, focusedElement, false);\n                this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n            }\n        }\n    };\n    /**\n     * When focus is in the zone at render time but then all focusable elements are removed,\n     * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n     * focus to the closest path from previous. If the user tabs away from the parked container,\n     * we restore focusability to the pre-parked state.\n     */\n    FocusZone.prototype._setParkedFocus = function (isParked) {\n        var root = this._root.current;\n        if (root && this._isParked !== isParked) {\n            this._isParked = isParked;\n            if (isParked) {\n                if (!this.props.allowFocusRoot) {\n                    this._parkedTabIndex = root.getAttribute('tabindex');\n                    root.setAttribute('tabindex', '-1');\n                }\n                root.focus();\n            }\n            else if (!this.props.allowFocusRoot) {\n                if (this._parkedTabIndex) {\n                    root.setAttribute('tabindex', this._parkedTabIndex);\n                    this._parkedTabIndex = undefined;\n                }\n                else {\n                    root.removeAttribute('tabindex');\n                }\n            }\n        }\n    };\n    FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n        var previousActiveElement = this._activeElement;\n        this._activeElement = element;\n        if (previousActiveElement) {\n            if (isElementFocusZone(previousActiveElement)) {\n                this._updateTabIndexes(previousActiveElement);\n            }\n            previousActiveElement.tabIndex = -1;\n        }\n        if (this._activeElement) {\n            if (!this._focusAlignment || forceAlignment) {\n                this._setFocusAlignment(element, true, true);\n            }\n            this._activeElement.tabIndex = 0;\n        }\n    };\n    FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n        this.props.preventDefaultWhenHandled && ev.preventDefault();\n    };\n    /**\n     * Walk up the dom try to find a focusable element.\n     */\n    FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n        var target = targetElement;\n        if (target === this._root.current) {\n            return false;\n        }\n        do {\n            if (target.tagName === 'BUTTON' ||\n                target.tagName === 'A' ||\n                target.tagName === 'INPUT' ||\n                target.tagName === 'TEXTAREA' ||\n                target.tagName === 'SUMMARY') {\n                return false;\n            }\n            if (this._isImmediateDescendantOfZone(target) &&\n                target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n                target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n                raiseClickFromKeyboardEvent(target, ev);\n                return true;\n            }\n            target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n        } while (target !== this._root.current);\n        return false;\n    };\n    /**\n     * Traverse to find first child zone.\n     */\n    FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n        rootElement = rootElement || this._activeElement || this._root.current;\n        if (!rootElement) {\n            return null;\n        }\n        if (isElementFocusZone(rootElement)) {\n            return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n        }\n        var child = rootElement.firstElementChild;\n        while (child) {\n            if (isElementFocusZone(child)) {\n                return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n            }\n            var match = this._getFirstInnerZone(child);\n            if (match) {\n                return match;\n            }\n            child = child.nextElementSibling;\n        }\n        return null;\n    };\n    FocusZone.prototype._moveFocus = function (isForward, \n    // eslint-disable-next-line deprecation/deprecation\n    getDistanceFromCenter, ev, useDefaultWrap) {\n        if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n        var element = this._activeElement;\n        var candidateDistance = -1;\n        var candidateElement = undefined;\n        var changedFocus = false;\n        var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n        if (!element || !this._root.current) {\n            return false;\n        }\n        if (this._isElementInput(element)) {\n            if (!this._shouldInputLoseFocus(element, isForward)) {\n                return false;\n            }\n        }\n        var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n        do {\n            element = (isForward ? getNextElement(this._root.current, element) : getPreviousElement(this._root.current, element));\n            if (isBidirectional) {\n                if (element) {\n                    var targetRect = element.getBoundingClientRect();\n                    // eslint-disable-next-line deprecation/deprecation\n                    var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n                    if (elementDistance === -1 && candidateDistance === -1) {\n                        candidateElement = element;\n                        break;\n                    }\n                    if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                    if (candidateDistance >= 0 && elementDistance < 0) {\n                        break;\n                    }\n                }\n            }\n            else {\n                candidateElement = element;\n                break;\n            }\n        } while (element);\n        // Focus the closest candidate\n        if (candidateElement && candidateElement !== this._activeElement) {\n            changedFocus = true;\n            this.focusElement(candidateElement);\n        }\n        else if (this.props.isCircularNavigation && useDefaultWrap) {\n            if (isForward) {\n                return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n            }\n            else {\n                return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n            }\n        }\n        return changedFocus;\n    };\n    FocusZone.prototype._moveFocusDown = function () {\n        var _this = this;\n        var targetTop = -1;\n        // eslint-disable-next-line deprecation/deprecation\n        var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n        if (\n        // eslint-disable-next-line deprecation/deprecation\n        this._moveFocus(true, function (activeRect, targetRect) {\n            var distance = -1;\n            // ClientRect values can be floats that differ by very small fractions of a decimal.\n            // If the difference between top and bottom are within a pixel then we should treat\n            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n            // but without Math.Floor they will be handled incorrectly.\n            var targetRectTop = Math.floor(targetRect.top);\n            var activeRectBottom = Math.floor(activeRect.bottom);\n            if (targetRectTop < activeRectBottom) {\n                if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n                    return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n                }\n                return LARGE_DISTANCE_FROM_CENTER;\n            }\n            if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n                targetTop = targetRectTop;\n                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n                    distance = 0;\n                }\n                else {\n                    distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n                }\n            }\n            return distance;\n        })) {\n            this._setFocusAlignment(this._activeElement, false, true);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusUp = function () {\n        var _this = this;\n        var targetTop = -1;\n        // eslint-disable-next-line deprecation/deprecation\n        var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n        if (\n        // eslint-disable-next-line deprecation/deprecation\n        this._moveFocus(false, function (activeRect, targetRect) {\n            var distance = -1;\n            // ClientRect values can be floats that differ by very small fractions of a decimal.\n            // If the difference between top and bottom are within a pixel then we should treat\n            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n            // but without Math.Floor they will be handled incorrectly.\n            var targetRectBottom = Math.floor(targetRect.bottom);\n            var targetRectTop = Math.floor(targetRect.top);\n            var activeRectTop = Math.floor(activeRect.top);\n            if (targetRectBottom > activeRectTop) {\n                if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n                    return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n                }\n                return LARGE_DISTANCE_FROM_CENTER;\n            }\n            if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n                targetTop = targetRectTop;\n                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n                    distance = 0;\n                }\n                else {\n                    distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n                }\n            }\n            return distance;\n        })) {\n            this._setFocusAlignment(this._activeElement, false, true);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusLeft = function (theme) {\n        var _this = this;\n        var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n        if (this._moveFocus(getRTL(theme), \n        // eslint-disable-next-line deprecation/deprecation\n        function (activeRect, targetRect) {\n            var distance = -1;\n            var topBottomComparison;\n            if (getRTL(theme)) {\n                // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n                // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n                // This is important, because we want to be comparing the top of the target rect\n                // with the bottom of the active rect.\n                topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n            }\n            else {\n                topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n            }\n            if (topBottomComparison &&\n                targetRect.right <= activeRect.right &&\n                _this.props.direction !== FocusZoneDirection.vertical) {\n                distance = activeRect.right - targetRect.right;\n            }\n            else if (!shouldWrap) {\n                distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n            }\n            return distance;\n        }, undefined /*ev*/, shouldWrap)) {\n            this._setFocusAlignment(this._activeElement, true, false);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusRight = function (theme) {\n        var _this = this;\n        var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n        if (this._moveFocus(!getRTL(theme), \n        // eslint-disable-next-line deprecation/deprecation\n        function (activeRect, targetRect) {\n            var distance = -1;\n            var topBottomComparison;\n            if (getRTL(theme)) {\n                // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n                // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n                // This is important, because we want to be comparing the bottom of the target rect\n                // with the top of the active rect.\n                topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n            }\n            else {\n                topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n            }\n            if (topBottomComparison &&\n                targetRect.left >= activeRect.left &&\n                _this.props.direction !== FocusZoneDirection.vertical) {\n                distance = targetRect.left - activeRect.left;\n            }\n            else if (!shouldWrap) {\n                distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n            }\n            return distance;\n        }, undefined /*ev*/, shouldWrap)) {\n            this._setFocusAlignment(this._activeElement, true, false);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n        if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n        var element = this._activeElement;\n        if (!element || !this._root.current) {\n            return false;\n        }\n        if (this._isElementInput(element)) {\n            if (!this._shouldInputLoseFocus(element, isForward)) {\n                return false;\n            }\n        }\n        var scrollableParent = findScrollableParent(element);\n        if (!scrollableParent) {\n            return false;\n        }\n        var candidateDistance = -1;\n        var candidateElement = undefined;\n        var targetTop = -1;\n        var targetBottom = -1;\n        var pagesize = scrollableParent.clientHeight;\n        var activeRect = element.getBoundingClientRect();\n        do {\n            element = isForward\n                ? getNextElement(this._root.current, element)\n                : getPreviousElement(this._root.current, element);\n            if (element) {\n                var targetRect = element.getBoundingClientRect();\n                var targetRectTop = Math.floor(targetRect.top);\n                var activeRectBottom = Math.floor(activeRect.bottom);\n                var targetRectBottom = Math.floor(targetRect.bottom);\n                var activeRectTop = Math.floor(activeRect.top);\n                var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n                var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n                var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n                if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n                    break;\n                }\n                if (elementDistance > -1) {\n                    // for paging down\n                    if (isForward && targetRectTop > targetTop) {\n                        targetTop = targetRectTop;\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                    else if (!isForward && targetRectBottom < targetBottom) {\n                        // for paging up\n                        targetBottom = targetRectBottom;\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                    else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                }\n            }\n        } while (element);\n        var changedFocus = false;\n        // Focus the closest candidate\n        if (candidateElement && candidateElement !== this._activeElement) {\n            changedFocus = true;\n            this.focusElement(candidateElement);\n            this._setFocusAlignment(candidateElement, false, true);\n        }\n        else if (this.props.isCircularNavigation && useDefaultWrap) {\n            if (isForward) {\n                return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n            }\n            return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n        }\n        return changedFocus;\n    };\n    FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n        if (this.props.direction === FocusZoneDirection.bidirectional &&\n            (!this._focusAlignment || isHorizontal || isVertical)) {\n            var rect = element.getBoundingClientRect();\n            var left = rect.left + rect.width / 2;\n            var top_1 = rect.top + rect.height / 2;\n            if (!this._focusAlignment) {\n                this._focusAlignment = { left: left, top: top_1 };\n            }\n            if (isHorizontal) {\n                this._focusAlignment.left = left;\n            }\n            if (isVertical) {\n                this._focusAlignment.top = top_1;\n            }\n        }\n    };\n    FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n        return this._getOwnerZone(element) === this._root.current;\n    };\n    FocusZone.prototype._getOwnerZone = function (element) {\n        var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n        while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n            if (isElementFocusZone(parentElement)) {\n                return parentElement;\n            }\n            parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n        }\n        return parentElement;\n    };\n    FocusZone.prototype._updateTabIndexes = function (element) {\n        if (!this._activeElement &&\n            this.props.defaultTabbableElement &&\n            typeof this.props.defaultTabbableElement === 'function') {\n            this._activeElement = this.props.defaultTabbableElement(this._root.current);\n        }\n        if (!element && this._root.current) {\n            this._defaultFocusElement = null;\n            element = this._root.current;\n            if (this._activeElement && !elementContains(element, this._activeElement)) {\n                this._activeElement = null;\n            }\n        }\n        // If active element changes state to disabled, set it to null.\n        // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n        if (this._activeElement && !isElementTabbable(this._activeElement)) {\n            this._activeElement = null;\n        }\n        var childNodes = element && element.children;\n        for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n            var child = childNodes[childIndex];\n            if (!isElementFocusZone(child)) {\n                // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n                if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n                    child.setAttribute(TABINDEX, '-1');\n                }\n                if (isElementTabbable(child)) {\n                    if (this.props.disabled) {\n                        child.setAttribute(TABINDEX, '-1');\n                    }\n                    else if (!this._isInnerZone &&\n                        ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n                        this._defaultFocusElement = child;\n                        if (child.getAttribute(TABINDEX) !== '0') {\n                            child.setAttribute(TABINDEX, '0');\n                        }\n                    }\n                    else if (child.getAttribute(TABINDEX) !== '-1') {\n                        child.setAttribute(TABINDEX, '-1');\n                    }\n                }\n                else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n                    // Disgusting IE hack. Sad face.\n                    child.setAttribute('focusable', 'false');\n                }\n            }\n            else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n                if (!this._isInnerZone &&\n                    ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n                    this._defaultFocusElement = child;\n                    if (child.getAttribute(TABINDEX) !== '0') {\n                        child.setAttribute(TABINDEX, '0');\n                    }\n                }\n                else if (child.getAttribute(TABINDEX) !== '-1') {\n                    child.setAttribute(TABINDEX, '-1');\n                }\n            }\n            this._updateTabIndexes(child);\n        }\n    };\n    FocusZone.prototype._isContentEditableElement = function (element) {\n        return element && element.getAttribute('contenteditable') === 'true';\n    };\n    FocusZone.prototype._isElementInput = function (element) {\n        if (element &&\n            element.tagName &&\n            (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n        // If a tab was used, we want to focus on the next element.\n        if (!this._processingTabKey &&\n            element &&\n            element.type &&\n            ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n            var selectionStart = element.selectionStart;\n            var selectionEnd = element.selectionEnd;\n            var isRangeSelected = selectionStart !== selectionEnd;\n            var inputValue = element.value;\n            var isReadonly = element.readOnly;\n            // We shouldn't lose focus in the following cases:\n            // 1. There is range selected.\n            // 2. When selection start is larger than 0 and it is backward and not readOnly.\n            // 3. when selection start is not the end of length, it is forward and not readOnly.\n            // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n            // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n            // determined by calling the callback shouldInputLoseFocusOnArrowKey\n            if (isRangeSelected ||\n                (selectionStart > 0 && !isForward && !isReadonly) ||\n                (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n                (!!this.props.handleTabKey &&\n                    !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n                return false;\n            }\n        }\n        return true;\n    };\n    FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n        return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n    };\n    /**\n     * Returns true if the element is a descendant of the FocusZone through a React portal.\n     */\n    FocusZone.prototype._portalContainsElement = function (element) {\n        return element && !!this._root.current && portalContainsElement(element, this._root.current);\n    };\n    FocusZone.prototype._getDocument = function () {\n        return getDocument(this._root.current);\n    };\n    FocusZone.defaultProps = {\n        isCircularNavigation: false,\n        direction: FocusZoneDirection.bidirectional,\n        shouldRaiseClicks: true,\n    };\n    return FocusZone;\n}(React.Component));\nexport { FocusZone };\n//# sourceMappingURL=FocusZone.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n    /** Tabbing is not allowed */\n    none: 0,\n    /** All tabbing action is allowed */\n    all: 1,\n    /** Tabbing is allowed only on input elements */\n    inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n    /** Only react to up/down arrows. */\n    FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n    /** Only react to left/right arrows. */\n    FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n    /** React to all arrows. */\n    FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n    /**\n     * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n     * Right and Left arrow keys are swapped in RTL mode.\n     */\n    FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n    var asyncRef = React.useRef();\n    if (!asyncRef.current) {\n        asyncRef.current = new Async();\n    }\n    React.useEffect(function () {\n        return function () {\n            var _a;\n            (_a = asyncRef.current) === null || _a === void 0 ? void 0 : _a.dispose();\n            asyncRef.current = undefined;\n        };\n    }, []);\n    return asyncRef.current;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\nexport function useBoolean(initialState) {\n    var _a = React.useState(initialState), value = _a[0], setValue = _a[1];\n    var setTrue = useConst(function () { return function () {\n        setValue(true);\n    }; });\n    var setFalse = useConst(function () { return function () {\n        setValue(false);\n    }; });\n    var toggle = useConst(function () { return function () {\n        setValue(function (currentValue) { return !currentValue; });\n    }; });\n    return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];\n}\n//# sourceMappingURL=useBoolean.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n    // Use useRef to store the value because it's the least expensive built-in hook that works here\n    // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n    // internally due to reducer handling which we don't need)\n    var ref = React.useRef();\n    if (ref.current === undefined) {\n        // Box the value in an object so we can tell if it's initialized even if the initializer\n        // returns/is undefined\n        ref.current = {\n            value: typeof initialValue === 'function' ? initialValue() : initialValue,\n        };\n    }\n    return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n    var _a = React.useState(defaultUncontrolledValue), value = _a[0], setValue = _a[1];\n    var isControlled = useConst(controlledValue !== undefined);\n    var currentValue = isControlled ? controlledValue : value;\n    // Duplicate the current value and onChange in refs so they're accessible from\n    // setValueOrCallOnChange without creating a new callback every time\n    var valueRef = React.useRef(currentValue);\n    var onChangeRef = React.useRef(onChange);\n    React.useEffect(function () {\n        valueRef.current = currentValue;\n        onChangeRef.current = onChange;\n    });\n    // To match the behavior of the setter returned by React.useState, this callback's identity\n    // should never change. This means it MUST NOT directly reference variables that can change.\n    var setValueOrCallOnChange = useConst(function () { return function (update, ev) {\n        // Assuming here that TValue is not a function, because a controllable value will typically\n        // be something a user can enter as input\n        var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n        if (onChangeRef.current) {\n            onChangeRef.current(ev, newValue);\n        }\n        if (!isControlled) {\n            setValue(newValue);\n        }\n    }; });\n    return [currentValue, setValueOrCallOnChange];\n}\n//# sourceMappingURL=useControllableValue.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n *  without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n    // getId should only be called once since it updates the global constant for the next ID value.\n    // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n    var ref = React.useRef(providedId);\n    if (!ref.current) {\n        ref.current = getId(prefix);\n    }\n    return ref.current;\n}\n//# sourceMappingURL=useId.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n    var refs = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        refs[_i] = arguments[_i];\n    }\n    var mergedCallback = React.useCallback(function (value) {\n        // Update the \"current\" prop hanging on the function.\n        mergedCallback.current = value;\n        for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n            var ref = refs_1[_i];\n            if (typeof ref === 'function') {\n                ref(value);\n            }\n            else if (ref) {\n                // work around the immutability of the React.Ref type\n                ref.current = value;\n            }\n        }\n    }, __spreadArray([], refs, true));\n    return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n    // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n    var callbackRef = React.useRef(callback);\n    callbackRef.current = callback;\n    React.useEffect(function () {\n        var actualElement = element && 'current' in element ? element.current : element;\n        if (!actualElement) {\n            return;\n        }\n        var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n        return dispose;\n    }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n    var ref = useRef();\n    useEffect(function () {\n        ref.current = value;\n    });\n    return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n *  Returns a wrapper function for `setTimeout` which automatically handles disposal.\n */\nexport var useSetTimeout = function () {\n    var timeoutIds = useConst({});\n    // Cleanup function.\n    React.useEffect(function () { return function () {\n        for (var _i = 0, _a = Object.keys(timeoutIds); _i < _a.length; _i++) {\n            var id = _a[_i];\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            clearTimeout(id);\n        }\n    }; }, \n    // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n    [timeoutIds]);\n    // Return wrapper which will auto cleanup.\n    return useConst({\n        setTimeout: function (func, duration) {\n            var id = setTimeout(func, duration);\n            timeoutIds[id] = 1;\n            return id;\n        },\n        clearTimeout: function (id) {\n            delete timeoutIds[id];\n            clearTimeout(id);\n        },\n    });\n};\n//# sourceMappingURL=useSetTimeout.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n    var previousTargetProp = React.useRef();\n    var targetRef = React.useRef(null);\n    /**\n     * Stores an instance of Window, used to check\n     * for server side rendering and if focus was lost.\n     */\n    var targetWindow = useWindow();\n    // If the target element changed, find the new one. If we are tracking\n    // target with class name, always find element because we do not know if\n    // fabric has rendered a new element and disposed the old element.\n    if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n        var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n        if (target) {\n            if (typeof target === 'string') {\n                var currentDoc = getDocument(currentElement);\n                targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n            }\n            else if ('stopPropagation' in target) {\n                targetRef.current = target;\n            }\n            else if ('getBoundingClientRect' in target) {\n                targetRef.current = target;\n            }\n            else if ('current' in target) {\n                targetRef.current = target.current;\n            }\n            else {\n                targetRef.current = target;\n            }\n        }\n        previousTargetProp.current = target;\n    }\n    return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n    var unmountRef = React.useRef(callback);\n    unmountRef.current = callback;\n    React.useEffect(function () { return function () {\n        var _a;\n        (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n    }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","import * as React from 'react';\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport var WindowContext = React.createContext({\n    window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n    return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map","export var DirectionalHint = {\n    /**\n     * Appear above the target element, with the left edges of the callout and target aligning.\n     */\n    topLeftEdge: 0,\n    /**\n     * Appear above the target element, with the centers of the callout and target aligning.\n     */\n    topCenter: 1,\n    /**\n     * Appear above the target element, with the right edges of the callout and target aligning.\n     */\n    topRightEdge: 2,\n    /**\n     * Appear above the target element, aligning with the target element such that the callout tends toward\n     * the center of the screen.\n     */\n    topAutoEdge: 3,\n    /**\n     * Appear below the target element, with the left edges of the callout and target aligning.\n     */\n    bottomLeftEdge: 4,\n    /**\n     * Appear below the target element, with the centers of the callout and target aligning.\n     */\n    bottomCenter: 5,\n    /**\n     * Appear below the target element, with the right edges of the callout and target aligning.\n     */\n    bottomRightEdge: 6,\n    /**\n     * Appear below the target element, aligning with the target element such that the callout tends toward\n     * the center of the screen.\n     */\n    bottomAutoEdge: 7,\n    /**\n     * Appear to the left of the target element, with the top edges of the callout and target aligning.\n     */\n    leftTopEdge: 8,\n    /**\n     * Appear to the left of the target element, with the centers of the callout and target aligning.\n     */\n    leftCenter: 9,\n    /**\n     * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n     */\n    leftBottomEdge: 10,\n    /**\n     * Appear to the right of the target element, with the top edges of the callout and target aligning.\n     */\n    rightTopEdge: 11,\n    /**\n     * Appear to the right of the target element, with the centers of the callout and target aligning.\n     */\n    rightCenter: 12,\n    /**\n     * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n     */\n    rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, getDocument, getNativeProps, initializeComponentRef, inputProperties, isIE11, KeyCodes, } from '../../Utilities';\nimport { WindowContext } from '@fluentui/react-window-provider';\nvar SELECTION_FORWARD = 'forward';\nvar SELECTION_BACKWARD = 'backward';\n/**\n * {@docCategory Autofill}\n */\nvar Autofill = /** @class */ (function (_super) {\n    __extends(Autofill, _super);\n    function Autofill(props) {\n        var _this = _super.call(this, props) || this;\n        _this._inputElement = React.createRef();\n        _this._autoFillEnabled = true;\n        // Composition events are used when the character/text requires several keystrokes to be completed.\n        // Some examples of this are mobile text input and languages like Japanese or Arabic.\n        // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n        _this._onCompositionStart = function (ev) {\n            _this.setState({ isComposing: true });\n            _this._autoFillEnabled = false;\n        };\n        // Composition events are used when the character/text requires several keystrokes to be completed.\n        // Some examples of this are mobile text input and languages like Japanese or Arabic.\n        // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n        _this._onCompositionUpdate = function () {\n            if (isIE11()) {\n                _this._updateValue(_this._getCurrentInputValue(), true);\n            }\n        };\n        // Composition events are used when the character/text requires several keystrokes to be completed.\n        // Some examples of this are mobile text input and languages like Japanese or Arabic.\n        // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n        _this._onCompositionEnd = function (ev) {\n            var inputValue = _this._getCurrentInputValue();\n            _this._tryEnableAutofill(inputValue, _this.value, false, true);\n            _this.setState({ isComposing: false });\n            // Due to timing, this needs to be async, otherwise no text will be selected.\n            _this._async.setTimeout(function () {\n                // it's technically possible that the value of isComposing is reset during this timeout,\n                // so explicitly trigger this with composing=true here, since it is supposed to be the\n                // update for composition end\n                _this._updateValue(_this._getCurrentInputValue(), false);\n            }, 0);\n        };\n        _this._onClick = function () {\n            if (_this.value && _this.value !== '' && _this._autoFillEnabled) {\n                _this._autoFillEnabled = false;\n            }\n        };\n        _this._onKeyDown = function (ev) {\n            if (_this.props.onKeyDown) {\n                _this.props.onKeyDown(ev);\n            }\n            // If the event is actively being composed, then don't alert autofill.\n            // Right now typing does not have isComposing, once that has been fixed any should be removed.\n            if (!ev.nativeEvent.isComposing) {\n                // eslint-disable-next-line deprecation/deprecation\n                switch (ev.which) {\n                    case KeyCodes.backspace:\n                        _this._autoFillEnabled = false;\n                        break;\n                    case KeyCodes.left:\n                    case KeyCodes.right:\n                        if (_this._autoFillEnabled) {\n                            _this.setState(function (prev) { return ({\n                                inputValue: _this.props.suggestedDisplayValue || prev.inputValue,\n                            }); });\n                            _this._autoFillEnabled = false;\n                        }\n                        break;\n                    default:\n                        if (!_this._autoFillEnabled) {\n                            // eslint-disable-next-line deprecation/deprecation\n                            if (_this.props.enableAutofillOnKeyPress.indexOf(ev.which) !== -1) {\n                                _this._autoFillEnabled = true;\n                            }\n                        }\n                        break;\n                }\n            }\n        };\n        _this._onInputChanged = function (ev) {\n            var value = _this._getCurrentInputValue(ev);\n            if (!_this.state.isComposing) {\n                _this._tryEnableAutofill(value, _this.value, ev.nativeEvent.isComposing);\n            }\n            // If it is not IE11 and currently composing, update the value\n            if (!(isIE11() && _this.state.isComposing)) {\n                var nativeEventComposing = ev.nativeEvent.isComposing;\n                var isComposing = nativeEventComposing === undefined ? _this.state.isComposing : nativeEventComposing;\n                _this._updateValue(value, isComposing);\n            }\n        };\n        _this._onChanged = function () {\n            // Swallow this event, we don't care about it\n            // We must provide it because React PropTypes marks it as required, but onInput serves the correct purpose\n            return;\n        };\n        /**\n         * Updates the current input value as well as getting a new display value.\n         * @param newValue - The new value from the input\n         */\n        _this._updateValue = function (newValue, composing) {\n            // Only proceed if the value is nonempty and is different from the old value\n            // This is to work around the fact that, in IE 11, inputs with a placeholder fire an onInput event on focus\n            if (!newValue && newValue === _this.value) {\n                return;\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = _this.props, onInputChange = _a.onInputChange, onInputValueChange = _a.onInputValueChange;\n            if (onInputChange) {\n                newValue = (onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(newValue, composing)) || '';\n            }\n            _this.setState({ inputValue: newValue }, function () { return onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(newValue, composing); });\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this.state = {\n            inputValue: props.defaultVisibleValue || '',\n            isComposing: false,\n        };\n        return _this;\n    }\n    Autofill.getDerivedStateFromProps = function (props, state) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (props.updateValueInWillReceiveProps) {\n            // eslint-disable-next-line deprecation/deprecation\n            var updatedInputValue = props.updateValueInWillReceiveProps();\n            // Don't update if we have a null value or the value isn't changing\n            // the value should still update if an empty string is passed in\n            if (updatedInputValue !== null && updatedInputValue !== state.inputValue && !state.isComposing) {\n                return __assign(__assign({}, state), { inputValue: updatedInputValue });\n            }\n        }\n        return null;\n    };\n    Object.defineProperty(Autofill.prototype, \"cursorLocation\", {\n        get: function () {\n            if (this._inputElement.current) {\n                var inputElement = this._inputElement.current;\n                if (inputElement.selectionDirection !== SELECTION_FORWARD) {\n                    return inputElement.selectionEnd;\n                }\n                else {\n                    return inputElement.selectionStart;\n                }\n            }\n            else {\n                return -1;\n            }\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Autofill.prototype, \"isValueSelected\", {\n        get: function () {\n            return Boolean(this.inputElement && this.inputElement.selectionStart !== this.inputElement.selectionEnd);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Autofill.prototype, \"value\", {\n        get: function () {\n            return this._getControlledValue() || this.state.inputValue || '';\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Autofill.prototype, \"selectionStart\", {\n        get: function () {\n            return this._inputElement.current ? this._inputElement.current.selectionStart : -1;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Autofill.prototype, \"selectionEnd\", {\n        get: function () {\n            return this._inputElement.current ? this._inputElement.current.selectionEnd : -1;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Autofill.prototype, \"inputElement\", {\n        get: function () {\n            return this._inputElement.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Autofill.prototype.componentDidUpdate = function (_, _1, cursor) {\n        var _a;\n        var _b = this.props, suggestedDisplayValue = _b.suggestedDisplayValue, shouldSelectFullInputValueInComponentDidUpdate = _b.shouldSelectFullInputValueInComponentDidUpdate, preventValueSelection = _b.preventValueSelection;\n        var differenceIndex = 0;\n        if (preventValueSelection) {\n            return;\n        }\n        var document = ((_a = this.context) === null || _a === void 0 ? void 0 : _a.window.document) || getDocument(this._inputElement.current);\n        var isFocused = this._inputElement.current && this._inputElement.current === (document === null || document === void 0 ? void 0 : document.activeElement);\n        if (isFocused &&\n            this._autoFillEnabled &&\n            this.value &&\n            suggestedDisplayValue &&\n            _doesTextStartWith(suggestedDisplayValue, this.value)) {\n            var shouldSelectFullRange = false;\n            if (shouldSelectFullInputValueInComponentDidUpdate) {\n                shouldSelectFullRange = shouldSelectFullInputValueInComponentDidUpdate();\n            }\n            if (shouldSelectFullRange) {\n                this._inputElement.current.setSelectionRange(0, suggestedDisplayValue.length, SELECTION_BACKWARD);\n            }\n            else {\n                while (differenceIndex < this.value.length &&\n                    this.value[differenceIndex].toLocaleLowerCase() === suggestedDisplayValue[differenceIndex].toLocaleLowerCase()) {\n                    differenceIndex++;\n                }\n                if (differenceIndex > 0) {\n                    this._inputElement.current.setSelectionRange(differenceIndex, suggestedDisplayValue.length, SELECTION_BACKWARD);\n                }\n            }\n        }\n        else if (this._inputElement.current) {\n            if (cursor !== null && !this._autoFillEnabled && !this.state.isComposing) {\n                this._inputElement.current.setSelectionRange(cursor.start, cursor.end, cursor.dir);\n            }\n        }\n    };\n    Autofill.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n    };\n    Autofill.prototype.render = function () {\n        var nativeProps = getNativeProps(this.props, inputProperties);\n        var style = __assign(__assign({}, this.props.style), { fontFamily: 'inherit' });\n        return (React.createElement(\"input\", __assign({ autoCapitalize: \"off\", autoComplete: \"off\", \"aria-autocomplete\": 'both' }, nativeProps, { style: style, ref: this._inputElement, value: this._getDisplayValue(), onCompositionStart: this._onCompositionStart, onCompositionUpdate: this._onCompositionUpdate, onCompositionEnd: this._onCompositionEnd, \n            // TODO (Fabric 8?) - switch to calling only onChange. See notes in TextField._onInputChange.\n            onChange: this._onChanged, onInput: this._onInputChanged, onKeyDown: this._onKeyDown, onClick: this.props.onClick ? this.props.onClick : this._onClick, \"data-lpignore\": true })));\n    };\n    Autofill.prototype.focus = function () {\n        this._inputElement.current && this._inputElement.current.focus();\n    };\n    Autofill.prototype.clear = function () {\n        this._autoFillEnabled = true;\n        this._updateValue('', false);\n        this._inputElement.current && this._inputElement.current.setSelectionRange(0, 0);\n    };\n    Autofill.prototype.getSnapshotBeforeUpdate = function () {\n        var _a, _b;\n        var inel = this._inputElement.current;\n        if (inel && inel.selectionStart !== this.value.length) {\n            return {\n                start: (_a = inel.selectionStart) !== null && _a !== void 0 ? _a : inel.value.length,\n                end: (_b = inel.selectionEnd) !== null && _b !== void 0 ? _b : inel.value.length,\n                dir: inel.selectionDirection || 'backward' || 'none',\n            };\n        }\n        return null;\n    };\n    Autofill.prototype._getCurrentInputValue = function (ev) {\n        if (ev && ev.target && ev.target.value) {\n            return ev.target.value;\n        }\n        else if (this.inputElement && this.inputElement.value) {\n            return this.inputElement.value;\n        }\n        else {\n            return '';\n        }\n    };\n    /**\n     * Attempts to enable autofill. Whether or not autofill is enabled depends on the input value,\n     * whether or not any text is selected, and only if the new input value is longer than the old input value.\n     * Autofill should never be set to true if the value is composing. Once compositionEnd is called, then\n     * it should be completed.\n     * See https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent for more information on composition.\n     * @param newValue - new input value\n     * @param oldValue - old input value\n     * @param isComposing - if true then the text is actively being composed and it has not completed.\n     * @param isComposed - if the text is a composed text value.\n     */\n    Autofill.prototype._tryEnableAutofill = function (newValue, oldValue, isComposing, isComposed) {\n        if (!isComposing &&\n            newValue &&\n            this._inputElement.current &&\n            this._inputElement.current.selectionStart === newValue.length &&\n            !this._autoFillEnabled &&\n            (newValue.length > oldValue.length || isComposed)) {\n            this._autoFillEnabled = true;\n        }\n    };\n    Autofill.prototype._getDisplayValue = function () {\n        if (this._autoFillEnabled) {\n            return _getDisplayValue(this.value, this.props.suggestedDisplayValue);\n        }\n        return this.value;\n    };\n    Autofill.prototype._getControlledValue = function () {\n        var value = this.props.value;\n        if (value === undefined || typeof value === 'string') {\n            return value;\n        }\n        // eslint-disable-next-line no-console\n        console.warn(\"props.value of Autofill should be a string, but it is \".concat(value, \" with type of \").concat(typeof value));\n        return value.toString();\n    };\n    Autofill.defaultProps = {\n        enableAutofillOnKeyPress: [KeyCodes.down, KeyCodes.up],\n    };\n    // need to check WindowContext to get the provided document\n    Autofill.contextType = WindowContext;\n    return Autofill;\n}(React.Component));\nexport { Autofill };\n/**\n * Returns a string that should be used as the display value.\n * It evaluates this based on whether or not the suggested value starts with the input value\n * and whether or not autofill is enabled.\n * @param inputValue - the value that the input currently has.\n * @param suggestedDisplayValue - the possible full value\n */\nfunction _getDisplayValue(inputValue, suggestedDisplayValue) {\n    var displayValue = inputValue;\n    if (suggestedDisplayValue && inputValue && _doesTextStartWith(suggestedDisplayValue, displayValue)) {\n        displayValue = suggestedDisplayValue;\n    }\n    return displayValue;\n}\nfunction _doesTextStartWith(text, startWith) {\n    if (!text || !startWith) {\n        return false;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n        for (var _i = 0, _a = [text, startWith]; _i < _a.length; _i++) {\n            var val = _a[_i];\n            if (typeof val !== 'string') {\n                throw new Error(\"\".concat(Autofill.name\n                // eslint-disable-next-line @fluentui/max-len\n                , \" received non-string value \\\"\").concat(val, \"\\\" of type \").concat(typeof val, \" from either input's value or suggestedDisplayValue\"));\n            }\n        }\n    }\n    return text.toLocaleLowerCase().indexOf(startWith.toLocaleLowerCase()) === 0;\n}\n//# sourceMappingURL=Autofill.js.map","import { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, getRTL, classNamesFunction, getNativeProps, htmlElementProperties, } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Link } from '../../Link';\nimport { Icon } from '../../Icon';\nimport { IconButton } from '../../Button';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ResizeGroup } from '../../ResizeGroup';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { composeRenderFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OVERFLOW_KEY = 'overflow';\nvar nullFunction = function () { return null; };\nvar nonActionableItemProps = {\n    styles: function (props) {\n        var theme = props.theme;\n        return {\n            root: {\n                selectors: {\n                    '&.is-disabled': {\n                        color: theme.semanticColors.bodyText,\n                    },\n                },\n            },\n        };\n    },\n};\n/**\n * {@docCategory Breadcrumb}\n */\nvar BreadcrumbBase = /** @class */ (function (_super) {\n    __extends(BreadcrumbBase, _super);\n    function BreadcrumbBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._focusZone = React.createRef();\n        /**\n         * Remove the first rendered item past the overlow point and put it and the end the overflow set.\n         */\n        _this._onReduceData = function (data) {\n            var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n            var overflowIndex = data.props.overflowIndex;\n            var movedItem = renderedItems[overflowIndex];\n            if (!movedItem) {\n                return undefined;\n            }\n            renderedItems = __spreadArray([], renderedItems, true);\n            renderedItems.splice(overflowIndex, 1);\n            renderedOverflowItems = __spreadArray(__spreadArray([], renderedOverflowItems, true), [movedItem], false);\n            return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n        };\n        /**\n         * Remove the last item of the overflow set and insert the item as the start of the rendered set past the overflow\n         * point.\n         */\n        _this._onGrowData = function (data) {\n            var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n            var _a = data.props, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems;\n            renderedOverflowItems = __spreadArray([], renderedOverflowItems, true);\n            var movedItem = renderedOverflowItems.pop();\n            if (!movedItem || renderedItems.length >= maxDisplayedItems) {\n                return undefined;\n            }\n            renderedItems = __spreadArray([], renderedItems, true);\n            renderedItems.splice(overflowIndex, 0, movedItem);\n            return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n        };\n        _this._onRenderBreadcrumb = function (data) {\n            var _a = data.props, ariaLabel = _a.ariaLabel, _b = _a.dividerAs, DividerType = _b === void 0 ? Icon : _b, onRenderItem = _a.onRenderItem, overflowAriaLabel = _a.overflowAriaLabel, overflowIndex = _a.overflowIndex, onRenderOverflowIcon = _a.onRenderOverflowIcon, overflowButtonAs = _a.overflowButtonAs;\n            var renderedOverflowItems = data.renderedOverflowItems, renderedItems = data.renderedItems;\n            var contextualItems = renderedOverflowItems.map(function (item) {\n                var isActionable = !!(item.onClick || item.href);\n                return {\n                    text: item.text,\n                    name: item.text,\n                    key: item.key,\n                    onClick: item.onClick ? _this._onBreadcrumbClicked.bind(_this, item) : null,\n                    href: item.href,\n                    disabled: !isActionable,\n                    itemProps: isActionable ? undefined : nonActionableItemProps,\n                };\n            });\n            // Find index of last rendered item so the divider icon\n            // knows not to render on that item\n            var lastItemIndex = renderedItems.length - 1;\n            var hasOverflowItems = renderedOverflowItems && renderedOverflowItems.length !== 0;\n            var itemElements = renderedItems.map(function (item, index) {\n                var finalOnRenderItem = _this._onRenderItem;\n                if (item.onRender) {\n                    finalOnRenderItem = composeRenderFunction(item.onRender, finalOnRenderItem);\n                }\n                if (onRenderItem) {\n                    finalOnRenderItem = composeRenderFunction(onRenderItem, finalOnRenderItem);\n                }\n                return (React.createElement(\"li\", { className: _this._classNames.listItem, key: item.key || String(index) },\n                    finalOnRenderItem(item),\n                    (index !== lastItemIndex || (hasOverflowItems && index === overflowIndex - 1)) && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: item }))));\n            });\n            if (hasOverflowItems) {\n                var iconProps = !onRenderOverflowIcon ? { iconName: 'More' } : {};\n                var onRenderMenuIcon = onRenderOverflowIcon ? onRenderOverflowIcon : nullFunction;\n                var OverflowButton = overflowButtonAs ? overflowButtonAs : IconButton;\n                itemElements.splice(overflowIndex, 0, React.createElement(\"li\", { className: _this._classNames.overflow, key: OVERFLOW_KEY },\n                    React.createElement(OverflowButton, { className: _this._classNames.overflowButton, iconProps: iconProps, role: \"button\", \"aria-haspopup\": \"true\", ariaLabel: overflowAriaLabel, onRenderMenuIcon: onRenderMenuIcon, menuProps: {\n                            items: contextualItems,\n                            directionalHint: DirectionalHint.bottomLeftEdge,\n                        } }),\n                    overflowIndex !== lastItemIndex + 1 && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: renderedOverflowItems[renderedOverflowItems.length - 1] }))));\n            }\n            var nativeProps = getNativeProps(_this.props, htmlElementProperties, [\n                'className',\n            ]);\n            return (React.createElement(\"div\", __assign({ className: _this._classNames.root, role: \"navigation\", \"aria-label\": ariaLabel }, nativeProps),\n                React.createElement(FocusZone, __assign({ componentRef: _this._focusZone, direction: FocusZoneDirection.horizontal }, _this.props.focusZoneProps),\n                    React.createElement(\"ol\", { className: _this._classNames.list }, itemElements))));\n        };\n        _this._onRenderItem = function (item) {\n            if (!item) {\n                return null;\n            }\n            var as = item.as, href = item.href, onClick = item.onClick, isCurrentItem = item.isCurrentItem, text = item.text, onRenderContent = item.onRenderContent, additionalProps = __rest(item, [\"as\", \"href\", \"onClick\", \"isCurrentItem\", \"text\", \"onRenderContent\"]);\n            var finalOnRenderContent = defaultOnRenderCrumbContent;\n            if (onRenderContent) {\n                finalOnRenderContent = composeRenderFunction(onRenderContent, finalOnRenderContent);\n            }\n            if (_this.props.onRenderItemContent) {\n                finalOnRenderContent = composeRenderFunction(_this.props.onRenderItemContent, finalOnRenderContent);\n            }\n            if (onClick || href) {\n                return (React.createElement(Link, __assign({}, additionalProps, { as: as, className: _this._classNames.itemLink, href: href, \"aria-current\": isCurrentItem ? 'page' : undefined, \n                    // eslint-disable-next-line react/jsx-no-bind\n                    onClick: _this._onBreadcrumbClicked.bind(_this, item) }),\n                    React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n            }\n            else {\n                var Tag = as || 'span';\n                return (React.createElement(Tag, __assign({}, additionalProps, { className: _this._classNames.item }),\n                    React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n            }\n        };\n        _this._onBreadcrumbClicked = function (item, ev) {\n            if (item.onClick) {\n                item.onClick(ev, item);\n            }\n        };\n        initializeComponentRef(_this);\n        _this._validateProps(props);\n        return _this;\n    }\n    /**\n     * Sets focus to the first breadcrumb link.\n     */\n    BreadcrumbBase.prototype.focus = function () {\n        if (this._focusZone.current) {\n            this._focusZone.current.focus();\n        }\n    };\n    BreadcrumbBase.prototype.render = function () {\n        this._validateProps(this.props);\n        var _a = this.props, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems, items = _a.items, className = _a.className, theme = _a.theme, styles = _a.styles;\n        var renderedItems = __spreadArray([], items, true);\n        var renderedOverflowItems = renderedItems.splice(overflowIndex, renderedItems.length - maxDisplayedItems);\n        var breadcrumbData = {\n            props: this.props,\n            renderedItems: renderedItems,\n            renderedOverflowItems: renderedOverflowItems,\n        };\n        this._classNames = getClassNames(styles, {\n            className: className,\n            theme: theme,\n        });\n        return (React.createElement(ResizeGroup, { onRenderData: this._onRenderBreadcrumb, onReduceData: onReduceData, onGrowData: onGrowData, data: breadcrumbData }));\n    };\n    /**\n     * Validate incoming props\n     * @param props - Props to validate\n     */\n    BreadcrumbBase.prototype._validateProps = function (props) {\n        var maxDisplayedItems = props.maxDisplayedItems, overflowIndex = props.overflowIndex, items = props.items;\n        if (overflowIndex < 0 ||\n            (maxDisplayedItems > 1 && overflowIndex > maxDisplayedItems - 1) ||\n            (items.length > 0 && overflowIndex > items.length - 1)) {\n            throw new Error('Breadcrumb: overflowIndex out of range');\n        }\n    };\n    BreadcrumbBase.defaultProps = {\n        items: [],\n        maxDisplayedItems: 999,\n        overflowIndex: 0,\n    };\n    return BreadcrumbBase;\n}(React.Component));\nexport { BreadcrumbBase };\nfunction defaultOnRenderCrumbContent(item) {\n    return item ? React.createElement(React.Fragment, null, item.text) : null;\n}\n//# sourceMappingURL=Breadcrumb.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, ScreenWidthMaxMedium, ScreenWidthMaxSmall, ScreenWidthMinMedium, getFocusStyle, getScreenSelector, getGlobalClassNames, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-Breadcrumb',\n    list: 'ms-Breadcrumb-list',\n    listItem: 'ms-Breadcrumb-listItem',\n    chevron: 'ms-Breadcrumb-chevron',\n    overflow: 'ms-Breadcrumb-overflow',\n    overflowButton: 'ms-Breadcrumb-overflowButton',\n    itemLink: 'ms-Breadcrumb-itemLink',\n    item: 'ms-Breadcrumb-item',\n};\nvar SingleLineTextStyle = {\n    whiteSpace: 'nowrap',\n    textOverflow: 'ellipsis',\n    overflow: 'hidden',\n};\nvar overflowButtonFontSize = 16;\nvar chevronSmallFontSize = 8;\nvar itemLineHeight = 36;\nvar itemFontSize = 18;\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\nvar MediumScreenSelector = getScreenSelector(ScreenWidthMinMedium, ScreenWidthMaxMedium);\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e;\n    var className = props.className, theme = props.theme;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    // Tokens\n    var itemBackgroundHoveredColor = semanticColors.menuItemBackgroundHovered;\n    var itemBackgroundPressedColor = semanticColors.menuItemBackgroundPressed;\n    var itemTextColor = palette.neutralSecondary;\n    var itemTextFontWeight = FontWeights.regular;\n    var itemTextHoveredOrPressedColor = palette.neutralPrimary;\n    var itemLastChildTextColor = palette.neutralPrimary;\n    var itemLastChildTextFontWeight = FontWeights.semibold;\n    var chevronButtonColor = palette.neutralSecondary;\n    var overflowButtonColor = palette.neutralSecondary;\n    var lastChildItemStyles = {\n        fontWeight: itemLastChildTextFontWeight,\n        color: itemLastChildTextColor,\n    };\n    var itemStateSelectors = {\n        ':hover': {\n            color: itemTextHoveredOrPressedColor,\n            backgroundColor: itemBackgroundHoveredColor,\n            cursor: 'pointer',\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    color: 'Highlight',\n                    backgroundColor: 'transparent',\n                },\n                _a),\n        },\n        ':active': {\n            backgroundColor: itemBackgroundPressedColor,\n            color: itemTextHoveredOrPressedColor,\n        },\n        '&:active:hover': {\n            color: itemTextHoveredOrPressedColor,\n            backgroundColor: itemBackgroundPressedColor,\n        },\n        '&:active, &:hover, &:active:hover': {\n            textDecoration: 'none',\n        },\n    };\n    var commonItemStyles = {\n        color: itemTextColor,\n        padding: '0 8px',\n        lineHeight: itemLineHeight,\n        fontSize: itemFontSize,\n        fontWeight: itemTextFontWeight,\n    };\n    var overflowButtonHighContrastFocus = {\n        left: 1,\n        right: 1,\n        top: 1,\n        bottom: 1,\n    };\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            {\n                margin: '11px 0 1px',\n            },\n            className,\n        ],\n        list: [\n            classNames.list,\n            {\n                whiteSpace: 'nowrap',\n                padding: 0,\n                margin: 0,\n                display: 'flex',\n                alignItems: 'stretch',\n            },\n        ],\n        listItem: [\n            classNames.listItem,\n            {\n                listStyleType: 'none',\n                margin: '0',\n                padding: '0',\n                display: 'flex',\n                position: 'relative',\n                alignItems: 'center',\n                selectors: {\n                    '&:last-child .ms-Breadcrumb-itemLink': __assign(__assign({}, lastChildItemStyles), (_b = {}, _b[HighContrastSelector] = {\n                        MsHighContrastAdjust: 'auto',\n                        forcedColorAdjust: 'auto',\n                    }, _b)),\n                    '&:last-child .ms-Breadcrumb-item': lastChildItemStyles,\n                },\n            },\n        ],\n        chevron: [\n            classNames.chevron,\n            {\n                color: chevronButtonColor,\n                fontSize: fonts.small.fontSize,\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = __assign({ color: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                    _c[MediumScreenSelector] = {\n                        fontSize: chevronSmallFontSize,\n                    },\n                    _c[MinimumScreenSelector] = {\n                        fontSize: chevronSmallFontSize,\n                    },\n                    _c),\n            },\n        ],\n        overflow: [\n            classNames.overflow,\n            {\n                position: 'relative',\n                display: 'flex',\n                alignItems: 'center',\n            },\n        ],\n        overflowButton: [\n            classNames.overflowButton,\n            getFocusStyle(theme, { highContrastStyle: overflowButtonHighContrastFocus }),\n            SingleLineTextStyle,\n            {\n                fontSize: overflowButtonFontSize,\n                color: overflowButtonColor,\n                height: '100%',\n                cursor: 'pointer',\n                selectors: __assign(__assign({}, itemStateSelectors), (_d = {}, _d[MinimumScreenSelector] = {\n                    padding: '4px 6px',\n                }, _d[MediumScreenSelector] = {\n                    fontSize: fonts.mediumPlus.fontSize,\n                }, _d)),\n            },\n        ],\n        itemLink: [\n            classNames.itemLink,\n            getFocusStyle(theme),\n            SingleLineTextStyle,\n            __assign(__assign({}, commonItemStyles), { selectors: __assign((_e = { ':focus': {\n                            color: palette.neutralDark,\n                        } }, _e[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n                    outline: \"none\",\n                }, _e), itemStateSelectors) }),\n        ],\n        item: [\n            classNames.item,\n            __assign(__assign({}, commonItemStyles), { selectors: {\n                    ':hover': {\n                        cursor: 'default',\n                    },\n                } }),\n        ],\n    };\n};\n//# sourceMappingURL=Breadcrumb.styles.js.map","import { styled } from '../../Utilities';\nimport { BreadcrumbBase } from './Breadcrumb.base';\nimport { getStyles } from './Breadcrumb.styles';\nexport var Breadcrumb = styled(BreadcrumbBase, getStyles, undefined, { scope: 'Breadcrumb' });\n//# sourceMappingURL=Breadcrumb.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n    __extends(ActionButton, _super);\n    function ActionButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ActionButton.prototype.render = function () {\n        var _a = this.props, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n    };\n    ActionButton = __decorate([\n        customizable('ActionButton', ['theme', 'styles'], true)\n    ], ActionButton);\n    return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n    var _a, _b, _c;\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var actionButtonStyles = {\n        root: {\n            padding: DEFAULT_PADDING,\n            height: DEFAULT_BUTTON_HEIGHT,\n            color: theme.palette.neutralPrimary,\n            backgroundColor: 'transparent',\n            border: '1px solid transparent',\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    borderColor: 'Window',\n                },\n                _a),\n        },\n        rootHovered: {\n            color: theme.palette.themePrimary,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'Highlight',\n                },\n                _b),\n        },\n        iconHovered: {\n            color: theme.palette.themePrimary,\n        },\n        rootPressed: {\n            color: theme.palette.black,\n        },\n        rootExpanded: {\n            color: theme.palette.themePrimary,\n        },\n        iconPressed: {\n            color: theme.palette.themeDarker,\n        },\n        rootDisabled: {\n            color: theme.palette.neutralTertiary,\n            backgroundColor: 'transparent',\n            borderColor: 'transparent',\n            selectors: (_c = {},\n                _c[HighContrastSelector] = {\n                    color: 'GrayText',\n                },\n                _c),\n        },\n        rootChecked: {\n            color: theme.palette.black,\n        },\n        iconChecked: {\n            color: theme.palette.themeDarker,\n        },\n        flexContainer: {\n            justifyContent: 'flex-start',\n        },\n        icon: {\n            color: theme.palette.themeDarkAlt,\n        },\n        iconDisabled: {\n            color: 'inherit',\n        },\n        menuIcon: {\n            color: theme.palette.neutralSecondary,\n        },\n        textContainer: {\n            flexGrow: 0,\n        },\n    };\n    return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n    msButton: 'ms-Button',\n    msButtonHasMenu: 'ms-Button--hasMenu',\n    msButtonIcon: 'ms-Button-icon',\n    msButtonMenuIcon: 'ms-Button-menuIcon',\n    msButtonLabel: 'ms-Button-label',\n    msButtonDescription: 'ms-Button-description',\n    msButtonScreenReaderText: 'ms-Button-screenReaderText',\n    msButtonFlexContainer: 'ms-Button-flexContainer',\n    msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n    var _a, _b;\n    var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n    var isExpanded = expanded && !isSplit;\n    return mergeStyleSets({\n        root: [\n            classNames.msButton,\n            styles.root,\n            variantClassName,\n            checked && ['is-checked', styles.rootChecked],\n            isExpanded && [\n                'is-expanded',\n                styles.rootExpanded,\n                {\n                    selectors: (_a = {},\n                        _a[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconExpandedHovered,\n                        // menuIcon falls back to rootExpandedHovered to support original behavior\n                        _a[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n                        _a[':hover'] = styles.rootExpandedHovered,\n                        _a),\n                },\n            ],\n            hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n            disabled && ['is-disabled', styles.rootDisabled],\n            !disabled &&\n                !isExpanded &&\n                !checked && {\n                selectors: (_b = {\n                        ':hover': styles.rootHovered\n                    },\n                    _b[\":hover .\".concat(classNames.msButtonLabel)] = styles.labelHovered,\n                    _b[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconHovered,\n                    _b[\":hover .\".concat(classNames.msButtonDescription)] = styles.descriptionHovered,\n                    _b[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconHovered,\n                    _b[':focus'] = styles.rootFocused,\n                    _b[':active'] = styles.rootPressed,\n                    _b[\":active .\".concat(classNames.msButtonIcon)] = styles.iconPressed,\n                    _b[\":active .\".concat(classNames.msButtonDescription)] = styles.descriptionPressed,\n                    _b[\":active .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconPressed,\n                    _b),\n            },\n            disabled && checked && [styles.rootCheckedDisabled],\n            !disabled &&\n                checked && {\n                selectors: {\n                    ':hover': styles.rootCheckedHovered,\n                    ':active': styles.rootCheckedPressed,\n                },\n            },\n            className,\n        ],\n        flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n        textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n        icon: [\n            classNames.msButtonIcon,\n            iconClassName,\n            styles.icon,\n            isExpanded && styles.iconExpanded,\n            checked && styles.iconChecked,\n            disabled && styles.iconDisabled,\n        ],\n        label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n        menuIcon: [\n            classNames.msButtonMenuIcon,\n            menuIconClassName,\n            styles.menuIcon,\n            checked && styles.menuIconChecked,\n            disabled && !isSplit && styles.menuIconDisabled,\n            !disabled &&\n                !isExpanded &&\n                !checked && {\n                selectors: {\n                    ':hover': styles.menuIconHovered,\n                    ':active': styles.menuIconPressed,\n                },\n            },\n            isExpanded && ['is-expanded', styles.menuIconExpanded],\n        ],\n        description: [\n            classNames.msButtonDescription,\n            styles.description,\n            checked && styles.descriptionChecked,\n            disabled && styles.descriptionDisabled,\n        ],\n        screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n    });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n    var className = props.className, imageProps = props.imageProps;\n    var nativeProps = getNativeProps(props, htmlElementProperties, [\n        'aria-label',\n        'aria-labelledby',\n        'title',\n        'aria-describedby',\n    ]);\n    var altText = imageProps.alt || props['aria-label'];\n    var hasName = altText ||\n        props['aria-labelledby'] ||\n        props.title ||\n        imageProps['aria-label'] ||\n        imageProps['aria-labelledby'] ||\n        imageProps.title;\n    // move naming or describing attributes from the container (where they are invalid) to the image\n    var imageNameProps = {\n        'aria-labelledby': props['aria-labelledby'],\n        'aria-describedby': props['aria-describedby'],\n        title: props.title,\n    };\n    var containerProps = hasName\n        ? {}\n        : {\n            'aria-hidden': true,\n        };\n    return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n        React.createElement(Image, __assign({}, imageNameProps, imageProps, { alt: hasName ? altText : '' }))));\n};\n//# sourceMappingURL=ImageIcon.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n    return {\n        root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n            !disabled && [\n            {\n                selectors: {\n                    ':focus': styles.splitButtonMenuFocused,\n                },\n            },\n        ]),\n        splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n            checked && [\n            styles.splitButtonContainerChecked,\n            {\n                selectors: {\n                    ':hover': styles.splitButtonContainerCheckedHovered,\n                },\n            },\n        ], !disabled &&\n            !checked && [\n            {\n                selectors: {\n                    ':hover': styles.splitButtonContainerHovered,\n                    ':focus': styles.splitButtonContainerFocused,\n                },\n            },\n        ], disabled && styles.splitButtonContainerDisabled),\n        icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n        flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n        divider: mergeStyles(styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n    };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, FocusRectsContext, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n    __extends(BaseButton, _super);\n    function BaseButton(props) {\n        var _this = _super.call(this, props) || this;\n        _this._buttonElement = React.createRef();\n        _this._splitButtonContainer = React.createRef();\n        _this._mergedRef = createMergedRef();\n        _this._renderedVisibleMenu = false;\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._onRenderIcon = function (buttonProps, defaultRender) {\n            var iconProps = _this.props.iconProps;\n            if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n                var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n                // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n                // do not have this prop.\n                if (iconProps.styles) {\n                    return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n                }\n                if (iconProps.iconName) {\n                    return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n                }\n                if (imageProps) {\n                    return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n                }\n            }\n            return null;\n        };\n        _this._onRenderTextContents = function () {\n            var _a = _this.props, text = _a.text, children = _a.children, \n            // eslint-disable-next-line deprecation/deprecation\n            _b = _a.secondaryText, \n            // eslint-disable-next-line deprecation/deprecation\n            secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n            if (text || typeof children === 'string' || secondaryText) {\n                return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n                    onRenderText(_this.props, _this._onRenderText),\n                    onRenderDescription(_this.props, _this._onRenderDescription)));\n            }\n            return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n        };\n        _this._onRenderText = function () {\n            var text = _this.props.text;\n            var children = _this.props.children;\n            // For backwards compat, we should continue to take in the text content from children.\n            if (text === undefined && typeof children === 'string') {\n                text = children;\n            }\n            if (_this._hasText()) {\n                return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n            }\n            return null;\n        };\n        _this._onRenderChildren = function () {\n            var children = _this.props.children;\n            // If children is just a string, either it or the text will be rendered via onRenderLabel\n            // If children is another component, it will be rendered after text\n            if (typeof children === 'string') {\n                return null;\n            }\n            return children;\n        };\n        _this._onRenderDescription = function (props) {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n            // ms-Button-description is only shown when the button type is compound.\n            // In other cases it will not be displayed.\n            return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n        };\n        _this._onRenderAriaDescription = function () {\n            var ariaDescription = _this.props.ariaDescription;\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n            // otherwise it will be assigned to descriptionSpan.\n            return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n        };\n        _this._onRenderMenuIcon = function (props) {\n            var menuIconProps = _this.props.menuIconProps;\n            return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n        };\n        _this._onRenderMenu = function (menuProps) {\n            var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n            return React.createElement(MenuType, __assign({}, menuProps));\n        };\n        _this._onDismissMenu = function (ev) {\n            var menuProps = _this.props.menuProps;\n            if (menuProps && menuProps.onDismiss) {\n                menuProps.onDismiss(ev);\n            }\n            if (!ev || !ev.defaultPrevented) {\n                _this._dismissMenu();\n            }\n        };\n        _this._dismissMenu = function () {\n            _this._menuShouldFocusOnMount = undefined;\n            _this._menuShouldFocusOnContainer = undefined;\n            _this.setState({ menuHidden: true });\n        };\n        _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n            if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n            if (_this.props.menuProps) {\n                _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n                _this._menuShouldFocusOnMount = shouldFocusOnMount;\n                _this._renderedVisibleMenu = true;\n                _this.setState({ menuHidden: false });\n            }\n        };\n        _this._onToggleMenu = function (shouldFocusOnContainer) {\n            var shouldFocusOnMount = true;\n            if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n                shouldFocusOnMount = false;\n            }\n            _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n        };\n        _this._onSplitContainerFocusCapture = function (ev) {\n            var container = _this._splitButtonContainer.current;\n            // If the target is coming from the portal we do not need to set focus on the container.\n            if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n                return;\n            }\n            // We should never be able to focus the individual buttons in a split button. Focus\n            // should always remain on the container.\n            container.focus();\n        };\n        _this._onSplitButtonPrimaryClick = function (ev) {\n            if (!_this.state.menuHidden) {\n                _this._dismissMenu();\n            }\n            // toggle split buttons need two separate targets, even for touch\n            var singleTouchTarget = _this._processingTouch && !_this.props.toggle;\n            if (!singleTouchTarget && _this.props.onClick) {\n                _this.props.onClick(ev);\n            }\n            else if (singleTouchTarget) {\n                _this._onMenuClick(ev);\n            }\n        };\n        _this._onKeyDown = function (ev) {\n            // explicity cancelling event so click won't fire after this\n            // eslint-disable-next-line deprecation/deprecation\n            if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n            else if (!_this.props.disabled) {\n                if (_this.props.menuProps) {\n                    _this._onMenuKeyDown(ev);\n                }\n                else if (_this.props.onKeyDown !== undefined) {\n                    _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n                }\n            }\n        };\n        _this._onKeyUp = function (ev) {\n            if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n                _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onKeyPress = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n                // eslint-disable-next-line deprecation/deprecation\n                _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onMouseUp = function (ev) {\n            if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n                _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onMouseDown = function (ev) {\n            if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n                _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onClick = function (ev) {\n            if (!_this.props.disabled) {\n                if (_this.props.menuProps) {\n                    _this._onMenuClick(ev);\n                }\n                else if (_this.props.onClick !== undefined) {\n                    _this.props.onClick(ev); // not cancelling event because it's not disabled\n                }\n            }\n        };\n        _this._onSplitButtonContainerKeyDown = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n                if (_this._buttonElement.current) {\n                    _this._buttonElement.current.click();\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n            }\n            else {\n                _this._onMenuKeyDown(ev);\n            }\n        };\n        _this._onMenuKeyDown = function (ev) {\n            var _a;\n            if (_this.props.disabled) {\n                return;\n            }\n            if (_this.props.onKeyDown) {\n                _this.props.onKeyDown(ev);\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            var isUp = ev.which === KeyCodes.up;\n            // eslint-disable-next-line deprecation/deprecation\n            var isDown = ev.which === KeyCodes.down;\n            if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n                var onMenuClick = _this.props.onMenuClick;\n                if (onMenuClick) {\n                    onMenuClick(ev, _this.props);\n                }\n                _this._onToggleMenu(false);\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n                // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n                // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n                // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n                setFocusVisibility(true, ev.target, (_a = _this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n            }\n            if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n                // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n                // We need to re-render the menu with shouldFocusOnMount as true.\n                if (!_this.state.menuHidden && _this.props.menuProps) {\n                    var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n                        ? _this._menuShouldFocusOnMount\n                        : _this.props.menuProps.shouldFocusOnMount;\n                    if (!currentShouldFocusOnMount) {\n                        ev.preventDefault();\n                        ev.stopPropagation();\n                        _this._menuShouldFocusOnMount = true;\n                        _this.forceUpdate();\n                    }\n                }\n            }\n        };\n        _this._onTouchStart = function () {\n            if (_this._isSplitButton &&\n                _this._splitButtonContainer.current &&\n                !('onpointerdown' in _this._splitButtonContainer.current)) {\n                _this._handleTouchAndPointerEvent();\n            }\n        };\n        _this._onMenuClick = function (ev) {\n            var _a = _this.props, onMenuClick = _a.onMenuClick, menuProps = _a.menuProps;\n            if (onMenuClick) {\n                onMenuClick(ev, _this.props);\n            }\n            // focus on the container by default when the menu is opened with a click event\n            // this differentiates from a keyboard interaction triggering the click event\n            var shouldFocusOnContainer = typeof (menuProps === null || menuProps === void 0 ? void 0 : menuProps.shouldFocusOnContainer) === 'boolean'\n                ? menuProps.shouldFocusOnContainer\n                : ev.nativeEvent.pointerType === 'mouse';\n            if (!ev.defaultPrevented) {\n                _this._onToggleMenu(shouldFocusOnContainer);\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n        warnDeprecations(COMPONENT_NAME, props, {\n            rootProps: undefined,\n            description: 'secondaryText',\n            toggled: 'checked',\n        });\n        _this._labelId = getId();\n        _this._descriptionId = getId();\n        _this._ariaDescriptionId = getId();\n        _this.state = {\n            menuHidden: true,\n        };\n        return _this;\n    }\n    Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n        get: function () {\n            return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    BaseButton.prototype.render = function () {\n        var _a;\n        var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n        // eslint-disable-next-line deprecation/deprecation\n        _c = _b.secondaryText, \n        // eslint-disable-next-line deprecation/deprecation\n        secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n        var menuHidden = this.state.menuHidden;\n        // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n        var isPrimaryButtonDisabled = disabled || primaryDisabled;\n        this._classNames = getClassNames\n            ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n            : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n        var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n        // Anchor tag cannot be disabled hence in disabled state rendering\n        // anchor button as normal button\n        var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n        var tag = renderAsAnchor ? 'a' : 'button';\n        var nativeProps = getNativeProps(\n        // eslint-disable-next-line deprecation/deprecation\n        assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n            'disabled', // let disabled buttons be focused and styled as disabled.\n        ]);\n        // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n        var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n        // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n        // aria-describedby. Otherwise default to undefined so property does not appear in output.\n        var ariaDescribedBy = undefined;\n        if (ariaDescription) {\n            ariaDescribedBy = _ariaDescriptionId;\n        }\n        else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n            // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n            // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n            ariaDescribedBy = _descriptionId;\n        }\n        else if (nativeProps['aria-describedby']) {\n            ariaDescribedBy = nativeProps['aria-describedby'];\n        }\n        // If an explicit aria-labelledby is given, use that and we're done.\n        // If any kind of description is given (which will end up as an aria-describedby attribute)\n        // and no ariaLabel is specified, set the labelledby element.\n        // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n        var ariaLabelledBy = undefined;\n        if (nativeProps['aria-labelledby']) {\n            ariaLabelledBy = nativeProps['aria-labelledby'];\n        }\n        else if (ariaDescribedBy && !resolvedAriaLabel) {\n            ariaLabelledBy = this._hasText() ? _labelId : undefined;\n        }\n        var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n            ? false\n            : true;\n        var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n        // if isCheckboxTypeRole, always return a checked value.\n        // Otherwise only return checked value if toggle is set to true.\n        // This is because role=\"checkbox\" always needs to have an aria-checked value\n        // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n        var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n        var buttonProps = assign(nativeProps, (_a = {\n                className: this._classNames.root,\n                // eslint-disable-next-line deprecation/deprecation\n                ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n                disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n                onKeyDown: this._onKeyDown,\n                onKeyPress: this._onKeyPress,\n                onKeyUp: this._onKeyUp,\n                onMouseDown: this._onMouseDown,\n                onMouseUp: this._onMouseUp,\n                onClick: this._onClick,\n                'aria-label': resolvedAriaLabel,\n                'aria-labelledby': ariaLabelledBy,\n                'aria-describedby': ariaDescribedBy,\n                'aria-disabled': isPrimaryButtonDisabled,\n                'data-is-focusable': dataIsFocusable\n            },\n            // aria-pressed attribute should only be present for toggle buttons\n            // aria-checked attribute should only be present for toggle buttons with checkbox type role\n            _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n            _a));\n        if (ariaHidden) {\n            buttonProps['aria-hidden'] = true;\n        }\n        if (this._isSplitButton) {\n            return this._onRenderSplitButtonContent(tag, buttonProps);\n        }\n        else if (this.props.menuProps) {\n            var _e = this.props.menuProps.id, id = _e === void 0 ? \"\".concat(this._labelId, \"-menu\") : _e;\n            assign(buttonProps, {\n                'aria-expanded': !menuHidden,\n                'aria-controls': !menuHidden ? id : null,\n                'aria-haspopup': true,\n            });\n        }\n        return this._onRenderContent(tag, buttonProps);\n    };\n    BaseButton.prototype.componentDidMount = function () {\n        // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n        // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n        // because React does not support Pointer events yet.\n        if (this._isSplitButton && this._splitButtonContainer.current) {\n            if ('onpointerdown' in this._splitButtonContainer.current) {\n                this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n            }\n            if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n                this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n            }\n        }\n    };\n    BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n        // If Button's menu was closed, run onAfterMenuDismiss.\n        if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n            this.props.onAfterMenuDismiss();\n        }\n    };\n    BaseButton.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n    };\n    BaseButton.prototype.focus = function () {\n        var _a, _b;\n        if (this._isSplitButton && this._splitButtonContainer.current) {\n            setFocusVisibility(true, undefined, (_a = this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n            this._splitButtonContainer.current.focus();\n        }\n        else if (this._buttonElement.current) {\n            setFocusVisibility(true, undefined, (_b = this.context) === null || _b === void 0 ? void 0 : _b.registeredProviders);\n            this._buttonElement.current.focus();\n        }\n    };\n    BaseButton.prototype.dismissMenu = function () {\n        this._dismissMenu();\n    };\n    BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n        this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n    };\n    BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n        var _this = this;\n        var props = this.props;\n        var Tag = tag;\n        var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n        // eslint-disable-next-line deprecation/deprecation\n        _d = props.onRenderMenu, \n        // eslint-disable-next-line deprecation/deprecation\n        onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n        var keytipProps = props.keytipProps;\n        if (keytipProps && menuProps) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n            React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n                onRenderIcon(props, _this._onRenderIcon),\n                _this._onRenderTextContents(),\n                onRenderAriaDescription(props, _this._onRenderAriaDescription),\n                onRenderChildren(props, _this._onRenderChildren),\n                !_this._isSplitButton &&\n                    (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n                    onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n                menuProps &&\n                    !menuProps.doNotLayer &&\n                    _this._shouldRenderMenu() &&\n                    onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n        var Content = keytipProps ? (\n        // If we're making a split button, we won't put the keytip here\n        React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n        if (menuProps && menuProps.doNotLayer) {\n            return (React.createElement(React.Fragment, null,\n                Content,\n                this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n        }\n        return (React.createElement(React.Fragment, null,\n            Content,\n            React.createElement(FocusRects, null)));\n    };\n    /**\n     * Method to help determine if the menu's component tree should\n     * be rendered. It takes into account whether the menu is expanded,\n     * whether it is a persisted menu and whether it has been shown to the user.\n     */\n    BaseButton.prototype._shouldRenderMenu = function () {\n        var menuHidden = this.state.menuHidden;\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n        if (!menuHidden) {\n            // Always should render a menu when it is expanded\n            return true;\n        }\n        else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n            // _renderedVisibleMenu ensures that the first rendering of\n            // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n            return true;\n        }\n        return false;\n    };\n    BaseButton.prototype._hasText = function () {\n        // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n        // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n        // text to be undefined in order for props.children to be used as a fallback.\n        // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n        return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n    };\n    BaseButton.prototype._getMenuProps = function (menuProps) {\n        var persistMenu = this.props.persistMenu;\n        var menuHidden = this.state.menuHidden;\n        // the accessible menu label (accessible name) has a relationship to the button.\n        // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n        // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n        if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n            menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n        }\n        return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n    };\n    BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n        var _this = this;\n        var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n        var keytipProps = this.props.keytipProps;\n        var menuHidden = this.state.menuHidden;\n        var classNames = getSplitButtonClassNames\n            ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n            : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n        assign(buttonProps, {\n            onClick: undefined,\n            onPointerDown: undefined,\n            onPointerUp: undefined,\n            tabIndex: -1,\n            'data-is-focusable': false,\n        });\n        if (keytipProps && menuProps) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n        // Add additional props to apply on primary action button\n        if (primaryActionButtonProps) {\n            assign(buttonProps, primaryActionButtonProps);\n        }\n        var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n            React.createElement(\"span\", { style: { display: 'flex', width: '100%' } },\n                _this._onRenderContent(tag, buttonProps),\n                _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n                _this._onRenderSplitButtonDivider(classNames)))); };\n        return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n    };\n    BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n        if (classNames && classNames.divider) {\n            var onClick = function (ev) {\n                ev.stopPropagation();\n            };\n            return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n        }\n        return null;\n    };\n    BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n        var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n        var menuHidden = this.state.menuHidden;\n        var menuIconProps = this.props.menuIconProps;\n        if (menuIconProps === undefined) {\n            menuIconProps = {\n                iconName: 'ChevronDown',\n            };\n        }\n        var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n        // Add data-ktp-execute-target to the split button if the keytip is defined\n        return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n    };\n    BaseButton.prototype._onPointerDown = function (ev) {\n        var onPointerDown = this.props.onPointerDown;\n        if (onPointerDown) {\n            onPointerDown(ev);\n        }\n        if (ev.pointerType === 'touch') {\n            this._handleTouchAndPointerEvent();\n            ev.preventDefault();\n            ev.stopImmediatePropagation();\n        }\n    };\n    BaseButton.prototype._handleTouchAndPointerEvent = function () {\n        var _this = this;\n        // If we already have an existing timeout from a previous touch and pointer event\n        // cancel that timeout so we can set a new one.\n        if (this._lastTouchTimeoutId !== undefined) {\n            this._async.clearTimeout(this._lastTouchTimeoutId);\n            this._lastTouchTimeoutId = undefined;\n        }\n        this._processingTouch = true;\n        this._lastTouchTimeoutId = this._async.setTimeout(function () {\n            _this._processingTouch = false;\n            _this._lastTouchTimeoutId = undefined;\n            // Touch and pointer events don't focus the button naturally,\n            // so adding an imperative focus call to guarantee this behavior.\n            // Only focus the button if a splitbutton menu is not open\n            if (_this.state.menuHidden) {\n                _this.focus();\n            }\n        }, TouchIdleDelay);\n    };\n    /**\n     * Returns if the user hits a valid keyboard key to open the menu\n     * @param ev - the keyboard event\n     * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n     */\n    BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n        if (this.props.menuTriggerKeyCode) {\n            // eslint-disable-next-line deprecation/deprecation\n            return ev.which === this.props.menuTriggerKeyCode;\n        }\n        else if (this.props.menuProps) {\n            // eslint-disable-next-line deprecation/deprecation\n            return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n        }\n        // Note: When enter is pressed, we will let the event continue to propagate\n        // to trigger the onClick event on the button\n        return false;\n    };\n    BaseButton.defaultProps = {\n        baseClassName: 'ms-Button',\n        styles: {},\n        split: false,\n    };\n    // needed to access registeredProviders when manually setting focus visibility\n    BaseButton.contextType = FocusRectsContext;\n    return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n    outline: 0,\n};\nvar iconStyle = function (fontSize) {\n    return {\n        fontSize: fontSize,\n        margin: '0 4px',\n        height: '16px',\n        lineHeight: '16px',\n        textAlign: 'center',\n        flexShrink: 0,\n    };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n    var _a, _b;\n    var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n    var border = semanticColors.buttonBorder;\n    var disabledBackground = semanticColors.disabledBackground;\n    var disabledText = semanticColors.disabledText;\n    var buttonHighContrastFocus = {\n        left: -2,\n        top: -2,\n        bottom: -2,\n        right: -2,\n        outlineColor: 'ButtonText',\n    };\n    return {\n        root: [\n            getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n            theme.fonts.medium,\n            {\n                border: '1px solid ' + border,\n                borderRadius: effects.roundedCorner2,\n                boxSizing: 'border-box',\n                cursor: 'pointer',\n                display: 'inline-block',\n                padding: '0 16px',\n                textDecoration: 'none',\n                textAlign: 'center',\n                userSelect: 'none',\n                selectors: {\n                    // IE11 workaround for preventing shift of child elements of a button when active.\n                    ':active > span': {\n                        position: 'relative',\n                        left: 0,\n                        top: 0,\n                    },\n                },\n            },\n        ],\n        rootDisabled: [\n            getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n            {\n                backgroundColor: disabledBackground,\n                borderColor: disabledBackground,\n                color: disabledText,\n                cursor: 'default',\n                selectors: {\n                    ':hover': noOutline,\n                    ':focus': noOutline,\n                },\n            },\n        ],\n        iconDisabled: {\n            color: disabledText,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    color: 'GrayText',\n                },\n                _a),\n        },\n        menuIconDisabled: {\n            color: disabledText,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'GrayText',\n                },\n                _b),\n        },\n        flexContainer: {\n            display: 'flex',\n            height: '100%',\n            flexWrap: 'nowrap',\n            justifyContent: 'center',\n            alignItems: 'center',\n        },\n        description: {\n            display: 'block',\n        },\n        textContainer: {\n            flexGrow: 1,\n            display: 'block',\n        },\n        icon: iconStyle(fonts.mediumPlus.fontSize),\n        menuIcon: iconStyle(fonts.small.fontSize),\n        label: {\n            margin: '0 4px',\n            lineHeight: '100%',\n            display: 'block',\n        },\n        screenReaderText: hiddenContentStyle,\n    };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar splitButtonDividerBaseStyles = function () {\n    return {\n        position: 'absolute',\n        width: 1,\n        right: 31,\n        top: 8,\n        bottom: 8,\n    };\n};\nexport function standardStyles(theme) {\n    var _a, _b, _c, _d, _e;\n    var s = theme.semanticColors, p = theme.palette;\n    var buttonBackground = s.buttonBackground;\n    var buttonBackgroundPressed = s.buttonBackgroundPressed;\n    var buttonBackgroundHovered = s.buttonBackgroundHovered;\n    var buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n    var buttonText = s.buttonText;\n    var buttonTextHovered = s.buttonTextHovered;\n    var buttonTextDisabled = s.buttonTextDisabled;\n    var buttonTextChecked = s.buttonTextChecked;\n    var buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n    return {\n        root: {\n            backgroundColor: buttonBackground,\n            color: buttonText,\n        },\n        rootHovered: {\n            backgroundColor: buttonBackgroundHovered,\n            color: buttonTextHovered,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    borderColor: 'Highlight',\n                    color: 'Highlight',\n                },\n                _a),\n        },\n        rootPressed: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextChecked,\n        },\n        rootExpanded: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextChecked,\n        },\n        rootChecked: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextChecked,\n        },\n        rootCheckedHovered: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextCheckedHovered,\n        },\n        rootDisabled: {\n            color: buttonTextDisabled,\n            backgroundColor: buttonBackgroundDisabled,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'GrayText',\n                    borderColor: 'GrayText',\n                    backgroundColor: 'Window',\n                },\n                _b),\n        },\n        // Split button styles\n        splitButtonContainer: {\n            selectors: (_c = {},\n                _c[HighContrastSelector] = {\n                    border: 'none',\n                },\n                _c),\n        },\n        splitButtonMenuButton: {\n            color: p.white,\n            backgroundColor: 'transparent',\n            selectors: {\n                ':hover': {\n                    backgroundColor: p.neutralLight,\n                    selectors: (_d = {},\n                        _d[HighContrastSelector] = {\n                            color: 'Highlight',\n                        },\n                        _d),\n                },\n            },\n        },\n        splitButtonMenuButtonDisabled: {\n            backgroundColor: s.buttonBackgroundDisabled,\n            selectors: {\n                ':hover': {\n                    backgroundColor: s.buttonBackgroundDisabled,\n                },\n            },\n        },\n        splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.neutralTertiaryAlt, selectors: (_e = {},\n                _e[HighContrastSelector] = {\n                    backgroundColor: 'WindowText',\n                },\n                _e) }),\n        splitButtonDividerDisabled: {\n            backgroundColor: theme.palette.neutralTertiaryAlt,\n        },\n        splitButtonMenuButtonChecked: {\n            backgroundColor: p.neutralQuaternaryAlt,\n            selectors: {\n                ':hover': {\n                    backgroundColor: p.neutralQuaternaryAlt,\n                },\n            },\n        },\n        splitButtonMenuButtonExpanded: {\n            backgroundColor: p.neutralQuaternaryAlt,\n            selectors: {\n                ':hover': {\n                    backgroundColor: p.neutralQuaternaryAlt,\n                },\n            },\n        },\n        splitButtonMenuIcon: {\n            color: s.buttonText,\n        },\n        splitButtonMenuIconDisabled: {\n            color: s.buttonTextDisabled,\n        },\n    };\n}\nexport function primaryStyles(theme) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n    var p = theme.palette, s = theme.semanticColors;\n    return {\n        root: {\n            backgroundColor: s.primaryButtonBackground,\n            border: \"1px solid \".concat(s.primaryButtonBackground),\n            color: s.primaryButtonText,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n                    selectors: {\n                        ':after': {\n                            border: \"none\",\n                            outlineColor: p.white,\n                        },\n                    },\n                },\n                _a),\n        },\n        rootHovered: {\n            backgroundColor: s.primaryButtonBackgroundHovered,\n            border: \"1px solid \".concat(s.primaryButtonBackgroundHovered),\n            color: s.primaryButtonTextHovered,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'Window',\n                    backgroundColor: 'Highlight',\n                    borderColor: 'Highlight',\n                },\n                _b),\n        },\n        rootPressed: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            border: \"1px solid \".concat(s.primaryButtonBackgroundPressed),\n            color: s.primaryButtonTextPressed,\n            selectors: (_c = {},\n                _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _c),\n        },\n        rootExpanded: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            color: s.primaryButtonTextPressed,\n        },\n        rootChecked: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            color: s.primaryButtonTextPressed,\n        },\n        rootCheckedHovered: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            color: s.primaryButtonTextPressed,\n        },\n        rootDisabled: {\n            color: s.primaryButtonTextDisabled,\n            backgroundColor: s.primaryButtonBackgroundDisabled,\n            selectors: (_d = {},\n                _d[HighContrastSelector] = {\n                    color: 'GrayText',\n                    borderColor: 'GrayText',\n                    backgroundColor: 'Window',\n                },\n                _d),\n        },\n        // Split button styles\n        splitButtonContainer: {\n            selectors: (_e = {},\n                _e[HighContrastSelector] = {\n                    border: 'none',\n                },\n                _e),\n        },\n        splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.white, selectors: (_f = {},\n                _f[HighContrastSelector] = {\n                    backgroundColor: 'Window',\n                },\n                _f) }),\n        splitButtonMenuButton: {\n            backgroundColor: s.primaryButtonBackground,\n            color: s.primaryButtonText,\n            selectors: (_g = {},\n                _g[HighContrastSelector] = {\n                    backgroundColor: 'Canvas',\n                },\n                _g[':hover'] = {\n                    backgroundColor: s.primaryButtonBackgroundHovered,\n                    selectors: (_h = {},\n                        _h[HighContrastSelector] = {\n                            color: 'Highlight',\n                        },\n                        _h),\n                },\n                _g),\n        },\n        splitButtonMenuButtonDisabled: {\n            backgroundColor: s.primaryButtonBackgroundDisabled,\n            selectors: {\n                ':hover': {\n                    backgroundColor: s.primaryButtonBackgroundDisabled,\n                },\n            },\n        },\n        splitButtonMenuButtonChecked: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            selectors: {\n                ':hover': {\n                    backgroundColor: s.primaryButtonBackgroundPressed,\n                },\n            },\n        },\n        splitButtonMenuButtonExpanded: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            selectors: {\n                ':hover': {\n                    backgroundColor: s.primaryButtonBackgroundPressed,\n                },\n            },\n        },\n        splitButtonMenuIcon: {\n            color: s.primaryButtonText,\n        },\n        splitButtonMenuIconDisabled: {\n            color: p.neutralTertiary,\n            selectors: (_j = {},\n                _j[HighContrastSelector] = {\n                    color: 'GrayText',\n                },\n                _j),\n        },\n    };\n}\n//# sourceMappingURL=ButtonThemes.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { ButtonGlobalClassNames } from '../BaseButton.classNames';\nexport var getStyles = memoizeFunction(function (theme, customStyles, focusInset, focusColor) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var baseSplitButtonStyles = getSplitButtonStyles(theme);\n    var p = theme.palette, semanticColors = theme.semanticColors;\n    var commandButtonHighContrastFocus = {\n        left: 4,\n        top: 4,\n        bottom: 4,\n        right: 4,\n        border: 'none',\n    };\n    var commandButtonStyles = {\n        root: [\n            getFocusStyle(theme, {\n                inset: 2,\n                highContrastStyle: commandButtonHighContrastFocus,\n                borderColor: 'transparent',\n            }),\n            theme.fonts.medium,\n            {\n                minWidth: '40px',\n                backgroundColor: p.white,\n                color: p.neutralPrimary,\n                padding: '0 4px',\n                border: 'none',\n                borderRadius: 0,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        border: 'none',\n                    },\n                    _a),\n            },\n        ],\n        rootHovered: {\n            backgroundColor: p.neutralLighter,\n            color: p.neutralDark,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'Highlight',\n                },\n                _b[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                    color: p.themeDarkAlt,\n                },\n                _b[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n                    color: p.neutralPrimary,\n                },\n                _b),\n        },\n        rootPressed: {\n            backgroundColor: p.neutralLight,\n            color: p.neutralDark,\n            selectors: (_c = {},\n                _c[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                    color: p.themeDark,\n                },\n                _c[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n                    color: p.neutralPrimary,\n                },\n                _c),\n        },\n        rootChecked: {\n            backgroundColor: p.neutralLight,\n            color: p.neutralDark,\n            selectors: (_d = {},\n                _d[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                    color: p.themeDark,\n                },\n                _d[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n                    color: p.neutralPrimary,\n                },\n                _d),\n        },\n        rootCheckedHovered: {\n            backgroundColor: p.neutralQuaternaryAlt,\n            selectors: (_e = {},\n                _e[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                    color: p.themeDark,\n                },\n                _e[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n                    color: p.neutralPrimary,\n                },\n                _e),\n        },\n        rootExpanded: {\n            backgroundColor: p.neutralLight,\n            color: p.neutralDark,\n            selectors: (_f = {},\n                _f[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                    color: p.themeDark,\n                },\n                _f[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n                    color: p.neutralPrimary,\n                },\n                _f),\n        },\n        rootExpandedHovered: {\n            backgroundColor: p.neutralQuaternaryAlt,\n        },\n        rootDisabled: {\n            backgroundColor: p.white,\n            selectors: (_g = {},\n                _g[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                    color: semanticColors.disabledBodySubtext,\n                    selectors: (_h = {},\n                        _h[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                        _h),\n                },\n                _g[HighContrastSelector] = __assign({ color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n                _g),\n        },\n        // Split button styles\n        splitButtonContainer: {\n            height: '100%',\n            selectors: (_j = {},\n                _j[HighContrastSelector] = {\n                    border: 'none',\n                },\n                _j),\n        },\n        splitButtonDividerDisabled: {\n            selectors: (_k = {},\n                _k[HighContrastSelector] = {\n                    backgroundColor: 'Window',\n                },\n                _k),\n        },\n        splitButtonDivider: {\n            backgroundColor: p.neutralTertiaryAlt,\n        },\n        splitButtonMenuButton: {\n            backgroundColor: p.white,\n            border: 'none',\n            borderTopRightRadius: '0',\n            borderBottomRightRadius: '0',\n            color: p.neutralSecondary,\n            selectors: {\n                ':hover': {\n                    backgroundColor: p.neutralLighter,\n                    color: p.neutralDark,\n                    selectors: (_l = {},\n                        _l[HighContrastSelector] = {\n                            color: 'Highlight',\n                        },\n                        _l[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                            color: p.neutralPrimary,\n                        },\n                        _l),\n                },\n                ':active': {\n                    backgroundColor: p.neutralLight,\n                    selectors: (_m = {},\n                        _m[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                            color: p.neutralPrimary,\n                        },\n                        _m),\n                },\n            },\n        },\n        splitButtonMenuButtonDisabled: {\n            backgroundColor: p.white,\n            selectors: (_o = {},\n                _o[HighContrastSelector] = __assign({ color: 'GrayText', border: 'none', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n                _o),\n        },\n        splitButtonMenuButtonChecked: {\n            backgroundColor: p.neutralLight,\n            color: p.neutralDark,\n            selectors: {\n                ':hover': {\n                    backgroundColor: p.neutralQuaternaryAlt,\n                },\n            },\n        },\n        splitButtonMenuButtonExpanded: {\n            backgroundColor: p.neutralLight,\n            color: p.black,\n            selectors: {\n                ':hover': {\n                    backgroundColor: p.neutralQuaternaryAlt,\n                },\n            },\n        },\n        splitButtonMenuIcon: {\n            color: p.neutralPrimary,\n        },\n        splitButtonMenuIconDisabled: {\n            color: p.neutralTertiary,\n        },\n        label: {\n            fontWeight: 'normal', // theme.fontWeights.semibold,\n        },\n        icon: {\n            color: p.themePrimary,\n        },\n        menuIcon: (_p = {\n                color: p.neutralSecondary\n            },\n            _p[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _p),\n    };\n    return concatStyleSets(baseButtonStyles, baseSplitButtonStyles, commandButtonStyles, customStyles);\n});\n//# sourceMappingURL=CommandBarButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './CommandBarButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CommandBarButton = /** @class */ (function (_super) {\n    __extends(CommandBarButton, _super);\n    function CommandBarButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    CommandBarButton.prototype.render = function () {\n        var _a = this.props, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--commandBar\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n    };\n    CommandBarButton = __decorate([\n        customizable('CommandBarButton', ['theme', 'styles'], true)\n    ], CommandBarButton);\n    return CommandBarButton;\n}(React.Component));\nexport { CommandBarButton };\n//# sourceMappingURL=CommandBarButton.js.map","import { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, FontWeights, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n    var _a, _b, _c, _d, _e;\n    var fonts = theme.fonts, palette = theme.palette;\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var splitButtonStyles = getSplitButtonStyles(theme);\n    var compoundButtonStyles = {\n        root: {\n            maxWidth: '280px',\n            minHeight: '72px',\n            height: 'auto',\n            padding: '16px 12px',\n        },\n        flexContainer: {\n            flexDirection: 'row',\n            alignItems: 'flex-start',\n            minWidth: '100%',\n            margin: '',\n        },\n        textContainer: {\n            textAlign: 'left',\n        },\n        icon: {\n            fontSize: '2em',\n            lineHeight: '1em',\n            height: '1em',\n            margin: '0px 8px 0px 0px',\n            flexBasis: '1em',\n            flexShrink: '0',\n        },\n        label: {\n            margin: '0 0 5px',\n            lineHeight: '100%',\n            fontWeight: FontWeights.semibold,\n        },\n        description: [\n            fonts.small,\n            {\n                lineHeight: '100%',\n            },\n        ],\n    };\n    var standardCompoundTheme = {\n        description: {\n            color: palette.neutralSecondary,\n        },\n        descriptionHovered: {\n            color: palette.neutralDark,\n        },\n        descriptionPressed: {\n            color: 'inherit',\n        },\n        descriptionChecked: {\n            color: 'inherit',\n        },\n        descriptionDisabled: {\n            color: 'inherit',\n        },\n    };\n    var primaryCompoundTheme = {\n        description: {\n            color: palette.white,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n                _a),\n        },\n        descriptionHovered: {\n            color: palette.white,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    backgroundColor: 'Highlight',\n                    color: 'Window',\n                },\n                _b),\n        },\n        descriptionPressed: {\n            color: 'inherit',\n            selectors: (_c = {},\n                _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _c),\n        },\n        descriptionChecked: {\n            color: 'inherit',\n            selectors: (_d = {},\n                _d[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _d),\n        },\n        descriptionDisabled: {\n            color: 'inherit',\n            selectors: (_e = {},\n                _e[HighContrastSelector] = {\n                    color: 'inherit',\n                },\n                _e),\n        },\n    };\n    return concatStyleSets(baseButtonStyles, compoundButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), primary ? primaryCompoundTheme : standardCompoundTheme, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=CompoundButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable } from '../../../Utilities';\nimport { getStyles } from './CompoundButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CompoundButton = /** @class */ (function (_super) {\n    __extends(CompoundButton, _super);\n    function CompoundButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    CompoundButton.prototype.render = function () {\n        var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--compoundPrimary' : 'ms-Button--compound', styles: getStyles(theme, styles, primary) })));\n    };\n    CompoundButton = __decorate([\n        customizable('CompoundButton', ['theme', 'styles'], true)\n    ], CompoundButton);\n    return CompoundButton;\n}(React.Component));\nexport { CompoundButton };\n//# sourceMappingURL=CompoundButton.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nvar DEFAULT_BUTTON_HEIGHT = '32px';\nvar DEFAULT_BUTTON_MIN_WIDTH = '80px';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var splitButtonStyles = getSplitButtonStyles(theme);\n    var defaultButtonStyles = {\n        root: {\n            minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n            height: DEFAULT_BUTTON_HEIGHT,\n        },\n        label: {\n            fontWeight: FontWeights.semibold,\n        },\n    };\n    return concatStyleSets(baseButtonStyles, defaultButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=DefaultButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\n/**\n * {@docCategory Button}\n */\nvar DefaultButton = /** @class */ (function (_super) {\n    __extends(DefaultButton, _super);\n    function DefaultButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    DefaultButton.prototype.render = function () {\n        var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: getStyles(theme, styles, primary), onRenderDescription: nullRender })));\n    };\n    DefaultButton = __decorate([\n        customizable('DefaultButton', ['theme', 'styles'], true)\n    ], DefaultButton);\n    return DefaultButton;\n}(React.Component));\nexport { DefaultButton };\n//# sourceMappingURL=DefaultButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n    var _a;\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var splitButtonStyles = getSplitButtonStyles(theme);\n    var palette = theme.palette, semanticColors = theme.semanticColors;\n    var iconButtonStyles = {\n        root: {\n            padding: '0 4px',\n            width: '32px',\n            height: '32px',\n            backgroundColor: 'transparent',\n            border: 'none',\n            color: semanticColors.link,\n        },\n        rootHovered: {\n            color: palette.themeDarkAlt,\n            backgroundColor: palette.neutralLighter,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    borderColor: 'Highlight',\n                    color: 'Highlight',\n                },\n                _a),\n        },\n        rootHasMenu: {\n            width: 'auto',\n        },\n        rootPressed: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralLight,\n        },\n        rootExpanded: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralLight,\n        },\n        rootChecked: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralLight,\n        },\n        rootCheckedHovered: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralQuaternaryAlt,\n        },\n        rootDisabled: {\n            color: palette.neutralTertiaryAlt,\n        },\n    };\n    return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n    __extends(IconButton, _super);\n    function IconButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IconButton.prototype.render = function () {\n        var _a = this.props, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n    };\n    IconButton = __decorate([\n        customizable('IconButton', ['theme', 'styles'], true)\n    ], IconButton);\n    return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { DefaultButton } from '../DefaultButton/DefaultButton';\n/**\n * {@docCategory Button}\n */\nvar PrimaryButton = /** @class */ (function (_super) {\n    __extends(PrimaryButton, _super);\n    function PrimaryButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    PrimaryButton.prototype.render = function () {\n        return React.createElement(DefaultButton, __assign({}, this.props, { primary: true, onRenderDescription: nullRender }));\n    };\n    PrimaryButton = __decorate([\n        customizable('PrimaryButton', ['theme', 'styles'], true)\n    ], PrimaryButton);\n    return PrimaryButton;\n}(React.Component));\nexport { PrimaryButton };\n//# sourceMappingURL=PrimaryButton.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n    var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n    var buttonHighContrastFocus = {\n        left: -2,\n        top: -2,\n        bottom: -2,\n        right: -2,\n        border: 'none',\n    };\n    var splitButtonDividerBaseStyles = {\n        position: 'absolute',\n        width: 1,\n        right: 31,\n        top: 8,\n        bottom: 8,\n    };\n    var splitButtonStyles = {\n        splitButtonContainer: [\n            getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2, pointerEvents: 'none' }),\n            {\n                display: 'inline-flex',\n                selectors: {\n                    '.ms-Button--default': {\n                        borderTopRightRadius: '0',\n                        borderBottomRightRadius: '0',\n                        borderRight: 'none',\n                        flexGrow: '1',\n                    },\n                    '.ms-Button--primary': {\n                        borderTopRightRadius: '0',\n                        borderBottomRightRadius: '0',\n                        border: 'none',\n                        flexGrow: '1',\n                        selectors: (_a = {},\n                            _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()),\n                            _a[':hover'] = {\n                                border: 'none',\n                            },\n                            _a[':active'] = {\n                                border: 'none',\n                            },\n                            _a),\n                    },\n                    '.ms-Button--primary + .ms-Button': {\n                        border: 'none',\n                        selectors: (_b = {},\n                            _b[HighContrastSelector] = {\n                                border: '1px solid WindowText',\n                                borderLeftWidth: '0',\n                            },\n                            _b),\n                    },\n                },\n            },\n        ],\n        splitButtonContainerHovered: {\n            selectors: {\n                '.ms-Button--primary': {\n                    selectors: (_c = {},\n                        _c[HighContrastSelector] = {\n                            color: 'Window',\n                            backgroundColor: 'Highlight',\n                        },\n                        _c),\n                },\n                '.ms-Button.is-disabled': {\n                    color: semanticColors.buttonTextDisabled,\n                    selectors: (_d = {},\n                        _d[HighContrastSelector] = {\n                            color: 'GrayText',\n                            borderColor: 'GrayText',\n                            backgroundColor: 'Window',\n                        },\n                        _d),\n                },\n            },\n        },\n        splitButtonContainerChecked: {\n            selectors: {\n                '.ms-Button--primary': {\n                    selectors: (_e = {},\n                        _e[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                        _e),\n                },\n            },\n        },\n        splitButtonContainerCheckedHovered: {\n            selectors: {\n                '.ms-Button--primary': {\n                    selectors: (_f = {},\n                        _f[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                        _f),\n                },\n            },\n        },\n        splitButtonContainerFocused: {\n            outline: 'none!important',\n        },\n        splitButtonMenuButton: (_g = {\n                padding: 6,\n                height: 'auto',\n                boxSizing: 'border-box',\n                borderRadius: 0,\n                borderTopRightRadius: effects.roundedCorner2,\n                borderBottomRightRadius: effects.roundedCorner2,\n                border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n                borderLeft: 'none',\n                outline: 'transparent',\n                userSelect: 'none',\n                display: 'inline-block',\n                textDecoration: 'none',\n                textAlign: 'center',\n                cursor: 'pointer',\n                verticalAlign: 'top',\n                width: 32,\n                marginLeft: -1,\n                marginTop: 0,\n                marginRight: 0,\n                marginBottom: 0\n            },\n            _g[HighContrastSelector] = {\n                '.ms-Button-menuIcon': {\n                    color: 'WindowText',\n                },\n            },\n            _g),\n        splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_h = {},\n                _h[HighContrastSelector] = {\n                    backgroundColor: 'WindowText',\n                },\n                _h) }),\n        splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_j = {},\n                _j[HighContrastSelector] = {\n                    backgroundColor: 'GrayText',\n                },\n                _j) }),\n        splitButtonMenuButtonDisabled: {\n            pointerEvents: 'none',\n            border: 'none',\n            selectors: (_k = {\n                    ':hover': {\n                        cursor: 'default',\n                    },\n                    '.ms-Button--primary': {\n                        selectors: (_l = {},\n                            _l[HighContrastSelector] = {\n                                color: 'GrayText',\n                                borderColor: 'GrayText',\n                                backgroundColor: 'Window',\n                            },\n                            _l),\n                    },\n                    '.ms-Button-menuIcon': {\n                        selectors: (_m = {},\n                            _m[HighContrastSelector] = {\n                                color: 'GrayText',\n                            },\n                            _m),\n                    }\n                },\n                _k[HighContrastSelector] = {\n                    color: 'GrayText',\n                    border: '1px solid GrayText',\n                    backgroundColor: 'Window',\n                },\n                _k),\n        },\n        splitButtonFlexContainer: {\n            display: 'flex',\n            height: '100%',\n            flexWrap: 'nowrap',\n            justifyContent: 'center',\n            alignItems: 'center',\n        },\n        splitButtonContainerDisabled: {\n            outline: 'none',\n            border: 'none',\n            selectors: (_o = {},\n                _o[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n                _o),\n        },\n        splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n    };\n    return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n    return {\n        targetEdge: targetEdge,\n        alignmentEdge: alignmentEdge,\n        isAuto: isAuto,\n    };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n    _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n    _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n    _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n    _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n    _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n    _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n    _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n    _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n    _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n    _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n    _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n    _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n    _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n    _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n    _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n    if (rect.top < boundingRect.top) {\n        return false;\n    }\n    if (rect.bottom > boundingRect.bottom) {\n        return false;\n    }\n    if (rect.left < boundingRect.left) {\n        return false;\n    }\n    if (rect.right > boundingRect.right) {\n        return false;\n    }\n    return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n    var outOfBounds = [];\n    if (rect.top < boundingRect.top) {\n        outOfBounds.push(RectangleEdge.top);\n    }\n    if (rect.bottom > boundingRect.bottom) {\n        outOfBounds.push(RectangleEdge.bottom);\n    }\n    if (rect.left < boundingRect.left) {\n        outOfBounds.push(RectangleEdge.left);\n    }\n    if (rect.right > boundingRect.right) {\n        outOfBounds.push(RectangleEdge.right);\n    }\n    return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n    return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n    rect[RectangleEdge[edge]] = value;\n    return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n    var edges = _getFlankingEdges(edge);\n    return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n    if (edge > 0) {\n        return value;\n    }\n    else {\n        return value * -1;\n    }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n    return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n    var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n    return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect, edge, newValue, maintainSize) {\n    if (maintainSize === void 0) { maintainSize = true; }\n    var difference = _getEdgeValue(rect, edge) - newValue;\n    var returnRect = _setEdgeValue(rect, edge, newValue);\n    if (maintainSize) {\n        returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n    }\n    return returnRect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n    if (gap === void 0) { gap = 0; }\n    return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n    if (gap === void 0) { gap = 0; }\n    var oppositeEdge = targetEdge * -1;\n    var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n    return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n    var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n    return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect, bounds) {\n    var breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n    var total = 0;\n    for (var _i = 0, breakingEdges_1 = breakingEdges; _i < breakingEdges_1.length; _i++) {\n        var edge = breakingEdges_1[_i];\n        total += Math.pow(_getRelativeEdgeDifference(rect, bounds, edge), 2);\n    }\n    return total;\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, gap) {\n    if (gap === void 0) { gap = 0; }\n    var directions = [\n        RectangleEdge.left,\n        RectangleEdge.right,\n        RectangleEdge.bottom,\n        RectangleEdge.top,\n    ];\n    // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n    if (getRTL()) {\n        directions[0] *= -1;\n        directions[1] *= -1;\n    }\n    var currentEstimate = rect;\n    var currentEdge = positionData.targetEdge;\n    var currentAlignment = positionData.alignmentEdge;\n    // keep track of least bad option, in case no sides fit\n    var oobDegree;\n    var bestEdge = currentEdge;\n    var bestAlignment = currentAlignment;\n    // Keep switching sides until one is found with enough space.\n    // If all sides don't fit then return the unmodified element.\n    for (var i = 0; i < 4; i++) {\n        if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n            // update least-bad edges\n            var currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n            if (!oobDegree || currentOOBDegree < oobDegree) {\n                oobDegree = currentOOBDegree;\n                bestEdge = currentEdge;\n                bestAlignment = currentAlignment;\n            }\n            directions.splice(directions.indexOf(currentEdge), 1);\n            if (directions.length > 0) {\n                if (directions.indexOf(currentEdge * -1) > -1) {\n                    currentEdge = currentEdge * -1;\n                }\n                else {\n                    currentAlignment = currentEdge;\n                    currentEdge = directions.slice(-1)[0];\n                }\n                currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n            }\n        }\n        else {\n            return {\n                elementRectangle: currentEstimate,\n                targetEdge: currentEdge,\n                alignmentEdge: currentAlignment,\n            };\n        }\n    }\n    // nothing fits, use least-bad option\n    currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n    return {\n        elementRectangle: currentEstimate,\n        targetEdge: bestEdge,\n        alignmentEdge: bestAlignment,\n    };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n    var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n    var oppositeEdge = alignmentEdge * -1;\n    var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n    return {\n        elementRectangle: newEstimate,\n        targetEdge: targetEdge,\n        alignmentEdge: oppositeEdge,\n    };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n    if (gap === void 0) { gap = 0; }\n    var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n    var elementEstimate = {\n        elementRectangle: element,\n        targetEdge: positionData.targetEdge,\n        alignmentEdge: alignmentEdge,\n    };\n    if (!directionalHintFixed && !coverTarget) {\n        elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n    }\n    var outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n    // if directionalHintFixed is specified, we need to force the target edge to not change\n    // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n    var fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n    if (outOfBounds.length > 0) {\n        if (alignTargetEdge) {\n            // The edge opposite to the alignment edge might be out of bounds.\n            // Flip alignment to see if we can get it within bounds.\n            if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n                var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n                if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n                    return flippedElementEstimate;\n                }\n                else {\n                    // If the flipped elements edges are still out of bounds, try nudging it.\n                    elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding, fixedEdge);\n                }\n            }\n            else {\n                elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n            }\n        }\n        else {\n            elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n        }\n    }\n    return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding, preserveEdge) {\n    for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n        var direction = outOfBoundsEdges_1[_i];\n        var edgeAttempt = void 0;\n        // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n        // this is because _alignEdges will move the opposite edge\n        if (preserveEdge && preserveEdge === direction * -1) {\n            edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n            elementEstimate.forcedInBounds = true;\n        }\n        else {\n            edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n            var inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n            // only update estimate if the attempt didn't break out of the opposite bounding edge\n            if (!inBounds) {\n                edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n                elementEstimate.forcedInBounds = true;\n            }\n        }\n        elementEstimate.elementRectangle = edgeAttempt;\n    }\n    return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n    var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n    var elementMiddle = _getCenterValue(rect, edge);\n    var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n    return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n    if (gap === void 0) { gap = 0; }\n    var estimatedElementPosition = new Rectangle(elementToPosition.left, elementToPosition.right, elementToPosition.top, elementToPosition.bottom);\n    var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n    var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n    estimatedElementPosition = coverTarget\n        ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n        : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n    // if no alignment edge is provided it's supposed to be centered.\n    if (!alignmentEdge) {\n        var targetMiddlePoint = _getCenterValue(target, targetEdge);\n        estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n    }\n    else {\n        estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n    }\n    return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n    if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n        return {\n            positiveEdge: RectangleEdge.left,\n            negativeEdge: RectangleEdge.right,\n        };\n    }\n    else {\n        return {\n            positiveEdge: RectangleEdge.top,\n            negativeEdge: RectangleEdge.bottom,\n        };\n    }\n}\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n    if (bounds &&\n        Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n            Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n        return returnEdge * -1;\n    }\n    return returnEdge;\n}\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle, edge, bounds) {\n    return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge, forceWithinBounds) {\n    var returnValue = {};\n    var hostRect = _getRectangleFromElement(hostElement);\n    var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n    var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n    // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n    // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n    // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n    // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n    // in the usual direction\n    if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n        returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n    }\n    returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n    returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n    // if the positioned element will still overflow, return all four edges with in-bounds values\n    if (forceWithinBounds) {\n        returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge * -1);\n        returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge * -1);\n    }\n    return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n    return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n    if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n    if (previousPositions) {\n        return {\n            alignmentEdge: previousPositions.alignmentEdge,\n            isAuto: previousPositions.isAuto,\n            targetEdge: previousPositions.targetEdge,\n        };\n    }\n    var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n    if (getRTL()) {\n        // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n        if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n            positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n        }\n        return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n    }\n    return positionInformation;\n}\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n    if (positionData.isAuto) {\n        positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n    }\n    positionData.alignTargetEdge = alignTargetEdge;\n    return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n    var targetCenter = _getCenterValue(target, targetEdge);\n    var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n    var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n    if (targetCenter <= boundingCenter) {\n        return positiveEdge;\n    }\n    else {\n        return negativeEdge;\n    }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n    var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n    if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n        return {\n            elementRectangle: estimatedElementPosition,\n            targetEdge: positionData.targetEdge,\n            alignmentEdge: positionData.alignmentEdge,\n        };\n    }\n    else {\n        return _adjustFitWithinBounds(estimatedElementPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget);\n    }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n    var targetEdge = elementPosition.targetEdge * -1;\n    // The \"host\" element that we will use to help position the beak.\n    var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n    var returnValue = {};\n    var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n    // only show the beak if the callout is not fully covering the target\n    var beakEdgeDifference = _getRelativeEdgeDifference(elementPosition.elementRectangle, elementPosition.targetRectangle, targetEdge);\n    var showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n    returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n    returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n    return {\n        elementPosition: __assign({}, returnValue),\n        closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n        targetEdge: targetEdge,\n        hideBeak: !showBeak,\n    };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n    var target = elementPosition.targetRectangle;\n    /**\n     * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n     * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n     * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n     * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n     */\n    var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n    var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n    var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n    var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n    beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n    beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n    if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n        beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n    }\n    else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n        beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n    }\n    return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n    // eslint-disable-next-line deprecation/deprecation\n    var clientRect = element.getBoundingClientRect();\n    return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n    return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n    var targetRectangle;\n    if (target) {\n        // eslint-disable-next-line no-extra-boolean-cast\n        if (!!target.preventDefault) {\n            var ev = target;\n            targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n            // eslint-disable-next-line no-extra-boolean-cast\n        }\n        else if (!!target.getBoundingClientRect) {\n            targetRectangle = _getRectangleFromElement(target);\n            // HTMLImgElements can have x and y values. The check for it being a point must go last.\n        }\n        else {\n            var rectOrPoint = target;\n            // eslint-disable-next-line deprecation/deprecation\n            var left = rectOrPoint.left || rectOrPoint.x;\n            // eslint-disable-next-line deprecation/deprecation\n            var top_1 = rectOrPoint.top || rectOrPoint.y;\n            var right = rectOrPoint.right || left;\n            var bottom = rectOrPoint.bottom || top_1;\n            targetRectangle = new Rectangle(left, right, top_1, bottom);\n        }\n        if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n            var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n            for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n                var direction = outOfBounds_1[_i];\n                targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n            }\n        }\n    }\n    else {\n        targetRectangle = new Rectangle(0, 0, 0, 0);\n    }\n    return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n    var maxHeight = 0;\n    var directionalHint = DirectionalDictionary[targetEdge];\n    // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n    // that's the direction that the callout will expand in.\n    // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n    // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n    // is (bottom of target) - (top of screen) - gapSpace.\n    var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n    if (target === RectangleEdge.top) {\n        maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n    }\n    else if (target === RectangleEdge.bottom) {\n        maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n    }\n    else {\n        maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n    }\n    return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions) {\n    var gap = props.gapSpace ? props.gapSpace : 0;\n    var targetRect = _getTargetRect(boundingRect, props.target);\n    var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n    var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, props.directionalHintFixed, props.coverTarget);\n    return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n    var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge, positionedElement.forcedInBounds);\n    return {\n        elementPosition: finalizedElement,\n        targetEdge: positionedElement.targetEdge,\n        alignmentEdge: positionedElement.alignmentEdge,\n    };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions) {\n    var boundingRect = props.bounds\n        ? _getRectangleFromIRect(props.bounds)\n        : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n    var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n    return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, doNotFinalizeReturnEdge) {\n    var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n    var gap = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n    var positionProps = props;\n    positionProps.gapSpace = gap;\n    var boundingRect = props.bounds\n        ? _getRectangleFromIRect(props.bounds)\n        : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n    var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions);\n    var beakPositioned = _positionBeak(beakWidth, positionedElement);\n    var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n    return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions) {\n    return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n    _finalizePositionData: _finalizePositionData,\n    _finalizeBeakPosition: _finalizeBeakPosition,\n    _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n    _positionElementWithinBounds: _positionElementWithinBounds,\n    _positionBeak: _positionBeak,\n    _getPositionData: _getPositionData,\n    _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions) {\n    return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions) {\n    return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions) {\n    return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget) {\n    if (gapSpace === void 0) { gapSpace = 0; }\n    var mouseTarget = target;\n    var elementTarget = target;\n    var rectOrPointTarget = target;\n    var targetRect;\n    var boundingRectangle = bounds\n        ? _getRectangleFromIRect(bounds)\n        : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n    // eslint-disable-next-line deprecation/deprecation\n    var left = rectOrPointTarget.left || rectOrPointTarget.x;\n    // eslint-disable-next-line deprecation/deprecation\n    var top = rectOrPointTarget.top || rectOrPointTarget.y;\n    var right = rectOrPointTarget.right || left;\n    var bottom = rectOrPointTarget.bottom || top;\n    // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n    if (!!mouseTarget.stopPropagation) {\n        targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n    }\n    else if (left !== undefined && top !== undefined) {\n        targetRect = new Rectangle(left, right, top, bottom);\n    }\n    else {\n        targetRect = _getRectangleFromElement(elementTarget);\n    }\n    return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n    return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n    var segments = undefined;\n    if (targetWindow.getWindowSegments) {\n        segments = targetWindow.getWindowSegments();\n    }\n    // Identify if we're dealing with single screen scenarios.\n    if (segments === undefined || segments.length <= 1) {\n        return {\n            top: 0,\n            left: 0,\n            right: targetWindow.innerWidth,\n            bottom: targetWindow.innerHeight,\n            width: targetWindow.innerWidth,\n            height: targetWindow.innerHeight,\n        };\n    }\n    // Logic for determining dual screen scenarios.\n    var x = 0;\n    var y = 0;\n    // If the target is an Element get coordinates for its center.\n    if (target !== null && !!target.getBoundingClientRect) {\n        var clientRect = target.getBoundingClientRect();\n        x = (clientRect.left + clientRect.right) / 2;\n        y = (clientRect.top + clientRect.bottom) / 2;\n    }\n    // If the target is not null get x-axis and y-axis coordinates directly.\n    else if (target !== null) {\n        // eslint-disable-next-line deprecation/deprecation\n        x = target.left || target.x;\n        // eslint-disable-next-line deprecation/deprecation\n        y = target.top || target.y;\n    }\n    var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n    // Define which window segment are the coordinates in and calculate bounds based on that.\n    for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n        var segment = segments_1[_i];\n        if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n            bounds = {\n                top: segment.top,\n                left: segment.left,\n                right: segment.right,\n                bottom: segment.bottom,\n                width: segment.width,\n                height: segment.height,\n            };\n        }\n    }\n    return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n    return _getBoundsFromTargetWindow(target, targetWindow);\n}\n//# sourceMappingURL=positioning.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n    function Rectangle(left, right, top, bottom) {\n        if (left === void 0) { left = 0; }\n        if (right === void 0) { right = 0; }\n        if (top === void 0) { top = 0; }\n        if (bottom === void 0) { bottom = 0; }\n        this.top = top;\n        this.bottom = bottom;\n        this.left = left;\n        this.right = right;\n    }\n    Object.defineProperty(Rectangle.prototype, \"width\", {\n        /**\n         * Calculated automatically by subtracting the right from left\n         */\n        get: function () {\n            return this.right - this.left;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rectangle.prototype, \"height\", {\n        /**\n         * Calculated automatically by subtracting the bottom from top.\n         */\n        get: function () {\n            return this.bottom - this.top;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n     */\n    Rectangle.prototype.equals = function (rect) {\n        // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n        // should be rounded, like .999999 should round to 1.\n        return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n            parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n            parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n            parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n    };\n    return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { css, divProperties, elementContains, focusFirstChild, getNativeProps, on, shallowCompare, getPropsWithDefaults, } from '../../Utilities';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'CalloutContentBase';\nvar ANIMATIONS = (_a = {},\n    _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n    _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n    _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n    _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n    _a);\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = {\n    opacity: 0,\n    filter: 'opacity(0)',\n    pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar DEFAULT_PROPS = {\n    preventDismissOnLostFocus: false,\n    preventDismissOnScroll: false,\n    preventDismissOnResize: false,\n    isBeakVisible: true,\n    beakWidth: 16,\n    gapSpace: 0,\n    minPagePadding: 8,\n    directionalHint: DirectionalHint.bottomAutoEdge,\n};\nvar getClassNames = classNamesFunction({\n    disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(_a, targetRef, targetWindow) {\n    var bounds = _a.bounds, _b = _a.minPagePadding, minPagePadding = _b === void 0 ? DEFAULT_PROPS.minPagePadding : _b, target = _a.target;\n    var _c = React.useState(false), targetWindowResized = _c[0], setTargetWindowResized = _c[1];\n    var cachedBounds = React.useRef();\n    var getBounds = React.useCallback(function () {\n        if (!cachedBounds.current || targetWindowResized) {\n            var currentBounds = typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n            if (!currentBounds && targetWindow) {\n                currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n                currentBounds = {\n                    top: currentBounds.top + minPagePadding,\n                    left: currentBounds.left + minPagePadding,\n                    right: currentBounds.right - minPagePadding,\n                    bottom: currentBounds.bottom - minPagePadding,\n                    width: currentBounds.width - minPagePadding * 2,\n                    height: currentBounds.height - minPagePadding * 2,\n                };\n            }\n            cachedBounds.current = currentBounds;\n            targetWindowResized && setTargetWindowResized(false);\n        }\n        return cachedBounds.current;\n    }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n    var async = useAsync();\n    useOnEvent(targetWindow, 'resize', async.debounce(function () {\n        setTargetWindowResized(true);\n    }, 500, { leading: true }));\n    return getBounds;\n}\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(_a, getBounds, positions) {\n    var _b;\n    var calloutMaxHeight = _a.calloutMaxHeight, finalHeight = _a.finalHeight, directionalHint = _a.directionalHint, directionalHintFixed = _a.directionalHintFixed, hidden = _a.hidden;\n    var _c = React.useState(), maxHeight = _c[0], setMaxHeight = _c[1];\n    var _d = (_b = positions === null || positions === void 0 ? void 0 : positions.elementPosition) !== null && _b !== void 0 ? _b : {}, top = _d.top, bottom = _d.bottom;\n    React.useEffect(function () {\n        var _a;\n        var _b = (_a = getBounds()) !== null && _a !== void 0 ? _a : {}, topBounds = _b.top, bottomBounds = _b.bottom;\n        var calculatedHeight;\n        if (typeof top === 'number' && bottomBounds) {\n            calculatedHeight = bottomBounds - top;\n        }\n        else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n            calculatedHeight = bottomBounds - topBounds - bottom;\n        }\n        if ((!calloutMaxHeight && !hidden) ||\n            (calloutMaxHeight && calculatedHeight && calloutMaxHeight > calculatedHeight)) {\n            setMaxHeight(calculatedHeight);\n        }\n        else if (calloutMaxHeight) {\n            setMaxHeight(calloutMaxHeight);\n        }\n        else {\n            setMaxHeight(undefined);\n        }\n    }, [bottom, calloutMaxHeight, finalHeight, directionalHint, directionalHintFixed, getBounds, hidden, positions, top]);\n    return maxHeight;\n}\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(props, hostElement, calloutElement, targetRef, getBounds) {\n    var _a = React.useState(), positions = _a[0], setPositions = _a[1];\n    var positionAttempts = React.useRef(0);\n    var previousTarget = React.useRef();\n    var async = useAsync();\n    var hidden = props.hidden, target = props.target, finalHeight = props.finalHeight, calloutMaxHeight = props.calloutMaxHeight, onPositioned = props.onPositioned, directionalHint = props.directionalHint;\n    React.useEffect(function () {\n        if (!hidden) {\n            var timerId_1 = async.requestAnimationFrame(function () {\n                var _a, _b;\n                if (hostElement.current && calloutElement) {\n                    var currentProps = __assign(__assign({}, props), { target: targetRef.current, bounds: getBounds() });\n                    // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n                    var dupeCalloutElement = calloutElement.cloneNode(true);\n                    dupeCalloutElement.style.maxHeight = calloutMaxHeight ? \"\".concat(calloutMaxHeight) : '';\n                    dupeCalloutElement.style.visibility = 'hidden';\n                    (_a = calloutElement.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(dupeCalloutElement);\n                    var previousPositions = previousTarget.current === target ? positions : undefined;\n                    // If there is a finalHeight given then we assume that the user knows and will handle\n                    // additional positioning adjustments so we should call positionCard\n                    var newPositions = finalHeight\n                        ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions)\n                        : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions);\n                    // clean up duplicate calloutElement\n                    (_b = calloutElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(dupeCalloutElement);\n                    // Set the new position only when the positions do not exist or one of the new callout positions\n                    // is different. The position should not change if the position is within 2 decimal places.\n                    if ((!positions && newPositions) ||\n                        (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)) {\n                        // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n                        // and we should stop trying to reposition to prevent a stack overflow.\n                        positionAttempts.current++;\n                        setPositions(newPositions);\n                    }\n                    else if (positionAttempts.current > 0) {\n                        // Only call the onPositioned callback if the callout has been re-positioned at least once.\n                        positionAttempts.current = 0;\n                        onPositioned === null || onPositioned === void 0 ? void 0 : onPositioned(positions);\n                    }\n                }\n            }, calloutElement);\n            previousTarget.current = target;\n            return function () {\n                async.cancelAnimationFrame(timerId_1);\n                previousTarget.current = undefined;\n            };\n        }\n        else {\n            // When the callout is hidden, clear position state so that it is not accidentally used next render.\n            setPositions(undefined);\n            positionAttempts.current = 0;\n        }\n    }, [\n        hidden,\n        directionalHint,\n        async,\n        calloutElement,\n        calloutMaxHeight,\n        hostElement,\n        targetRef,\n        finalHeight,\n        getBounds,\n        onPositioned,\n        positions,\n        props,\n        target,\n    ]);\n    return positions;\n}\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(_a, positions, calloutElement) {\n    var hidden = _a.hidden, setInitialFocus = _a.setInitialFocus;\n    var async = useAsync();\n    var hasPositions = !!positions;\n    React.useEffect(function () {\n        if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n            var timerId_2 = async.requestAnimationFrame(function () { return focusFirstChild(calloutElement); }, calloutElement);\n            return function () { return async.cancelAnimationFrame(timerId_2); };\n        }\n    }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(_a, positions, hostElement, targetRef, targetWindow) {\n    var hidden = _a.hidden, onDismiss = _a.onDismiss, \n    // eslint-disable-next-line deprecation/deprecation\n    preventDismissOnScroll = _a.preventDismissOnScroll, \n    // eslint-disable-next-line deprecation/deprecation\n    preventDismissOnResize = _a.preventDismissOnResize, \n    // eslint-disable-next-line deprecation/deprecation\n    preventDismissOnLostFocus = _a.preventDismissOnLostFocus, dismissOnTargetClick = _a.dismissOnTargetClick, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus, preventDismissOnEvent = _a.preventDismissOnEvent;\n    var isMouseDownOnPopup = React.useRef(false);\n    var async = useAsync();\n    var mouseDownHandlers = useConst([\n        function () {\n            isMouseDownOnPopup.current = true;\n        },\n        function () {\n            isMouseDownOnPopup.current = false;\n        },\n    ]);\n    var positionsExists = !!positions;\n    React.useEffect(function () {\n        var dismissOnScroll = function (ev) {\n            if (positionsExists && !preventDismissOnScroll) {\n                dismissOnClickOrScroll(ev);\n            }\n        };\n        var dismissOnResize = function (ev) {\n            if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n                onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n            }\n        };\n        var dismissOnLostFocus = function (ev) {\n            if (!preventDismissOnLostFocus) {\n                dismissOnClickOrScroll(ev);\n            }\n        };\n        var dismissOnClickOrScroll = function (ev) {\n            var eventPaths = ev.composedPath ? ev.composedPath() : [];\n            var target = eventPaths.length > 0 ? eventPaths[0] : ev.target;\n            var isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n            // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n            if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n                isMouseDownOnPopup.current = false;\n                return;\n            }\n            if ((!targetRef.current && isEventTargetOutsideCallout) ||\n                (ev.target !== targetWindow &&\n                    isEventTargetOutsideCallout &&\n                    (!targetRef.current ||\n                        'stopPropagation' in targetRef.current ||\n                        dismissOnTargetClick ||\n                        (target !== targetRef.current && !elementContains(targetRef.current, target))))) {\n                if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n                    return;\n                }\n                onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n            }\n        };\n        var dismissOnTargetWindowBlur = function (ev) {\n            // Do nothing\n            if (!shouldDismissOnWindowFocus) {\n                return;\n            }\n            if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n                (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n                !(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.hasFocus()) &&\n                ev.relatedTarget === null) {\n                onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n            }\n        };\n        // This is added so the callout will dismiss when the window is scrolled\n        // but not when something inside the callout is scrolled. The delay seems\n        // to be required to avoid React firing an async focus event in IE from\n        // the target changing focus quickly prior to rendering the callout.\n        var disposablesPromise = new Promise(function (resolve) {\n            async.setTimeout(function () {\n                if (!hidden && targetWindow) {\n                    var disposables_1 = [\n                        on(targetWindow, 'scroll', dismissOnScroll, true),\n                        on(targetWindow, 'resize', dismissOnResize, true),\n                        on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n                        on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n                        on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n                    ];\n                    resolve(function () {\n                        disposables_1.forEach(function (dispose) { return dispose(); });\n                    });\n                }\n            }, 0);\n        });\n        return function () {\n            disposablesPromise.then(function (dispose) { return dispose(); });\n        };\n    }, [\n        hidden,\n        async,\n        hostElement,\n        targetRef,\n        targetWindow,\n        onDismiss,\n        shouldDismissOnWindowFocus,\n        dismissOnTargetClick,\n        preventDismissOnLostFocus,\n        preventDismissOnResize,\n        preventDismissOnScroll,\n        positionsExists,\n        preventDismissOnEvent,\n    ]);\n    return mouseDownHandlers;\n}\nexport var CalloutContentBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.shouldRestoreFocus, \n    // eslint-disable-next-line deprecation/deprecation\n    shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted, popupProps = props.popupProps;\n    var hostElement = React.useRef(null);\n    var _c = React.useState(null), calloutElement = _c[0], setCalloutElement = _c[1];\n    var calloutCallback = React.useCallback(function (calloutEl) {\n        setCalloutElement(calloutEl);\n    }, []);\n    var rootRef = useMergedRefs(hostElement, forwardedRef);\n    var _d = useTarget(props.target, {\n        current: calloutElement,\n    }), targetRef = _d[0], targetWindow = _d[1];\n    var getBounds = useBounds(props, targetRef, targetWindow);\n    var positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds);\n    var maxHeight = useMaxHeight(props, getBounds, positions);\n    var _e = useDismissHandlers(props, positions, hostElement, targetRef, targetWindow), mouseDownOnPopup = _e[0], mouseUpOnPopup = _e[1];\n    // do not set both top and bottom css props from positions\n    // instead, use maxHeight\n    var isForcedInBounds = (positions === null || positions === void 0 ? void 0 : positions.elementPosition.top) && (positions === null || positions === void 0 ? void 0 : positions.elementPosition.bottom);\n    var cssPositions = __assign(__assign({}, positions === null || positions === void 0 ? void 0 : positions.elementPosition), { maxHeight: maxHeight });\n    if (isForcedInBounds) {\n        cssPositions.bottom = undefined;\n    }\n    useAutoFocus(props, positions, calloutElement);\n    React.useEffect(function () {\n        if (!hidden) {\n            onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n    }, [hidden]);\n    // If there is no target window then we are likely in server side rendering and we should not render anything.\n    if (!targetWindow) {\n        return null;\n    }\n    var overflowYHidden = hideOverflow;\n    var beakVisible = isBeakVisible && !!target;\n    var classNames = getClassNames(styles, {\n        theme: props.theme,\n        className: className,\n        overflowYHidden: overflowYHidden,\n        calloutWidth: calloutWidth,\n        positions: positions,\n        beakWidth: beakWidth,\n        backgroundColor: backgroundColor,\n        calloutMaxWidth: calloutMaxWidth,\n        calloutMinWidth: calloutMinWidth,\n        doNotLayer: doNotLayer,\n    });\n    var overflowStyle = __assign(__assign({ maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%' }, style), (overflowYHidden && { overflowY: 'hidden' }));\n    var visibilityStyle = props.hidden ? { visibility: 'hidden' } : undefined;\n    // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n    return (React.createElement(\"div\", { ref: rootRef, className: classNames.container, style: visibilityStyle },\n        React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? __assign({}, cssPositions) : OFF_SCREEN_STYLE, \n            // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n            // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n            tabIndex: -1, ref: calloutCallback }),\n            beakVisible && React.createElement(\"div\", { className: classNames.beak, style: getBeakPosition(positions) }),\n            beakVisible && React.createElement(\"div\", { className: classNames.beakCurtain }),\n            React.createElement(Popup\n            // don't use getNativeElementProps for role and roledescription because it will also\n            // pass through data-* props (resulting in them being used in two places)\n            , __assign({ \n                // don't use getNativeElementProps for role and roledescription because it will also\n                // pass through data-* props (resulting in them being used in two places)\n                role: props.role, \"aria-roledescription\": props['aria-roledescription'], ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, className: classNames.calloutMain, onDismiss: props.onDismiss, onMouseDown: mouseDownOnPopup, onMouseUp: mouseUpOnPopup, onRestoreFocus: props.onRestoreFocus, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle }, popupProps), children))));\n}), function (previousProps, nextProps) {\n    if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n        // Do not update when hidden.\n        return true;\n    }\n    return shallowCompare(previousProps, nextProps);\n});\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions) {\n    var _a, _b;\n    var beakPositionStyle = __assign(__assign({}, (_a = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _a === void 0 ? void 0 : _a.elementPosition), { display: ((_b = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _b === void 0 ? void 0 : _b.hideBeak) ? 'none' : undefined });\n    if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n        beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n        beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n    }\n    return beakPositionStyle;\n}\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(prevElementPositions, newElementPosition) {\n    return (comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n        comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition));\n}\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions, newElementPositions) {\n    for (var key in newElementPositions) {\n        if (newElementPositions.hasOwnProperty(key)) {\n            var oldPositionEdge = prevElementPositions[key];\n            var newPositionEdge = newElementPositions[key];\n            if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n                if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n                    return false;\n                }\n            }\n            else {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nCalloutContentBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n    return {\n        height: beakWidth,\n        width: beakWidth,\n    };\n}\nvar GlobalClassNames = {\n    container: 'ms-Callout-container',\n    root: 'ms-Callout',\n    beak: 'ms-Callout-beak',\n    beakCurtain: 'ms-Callout-beakCurtain',\n    calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var semanticColors = theme.semanticColors, effects = theme.effects;\n    return {\n        container: [\n            classNames.container,\n            {\n                position: 'relative',\n            },\n        ],\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                position: 'absolute',\n                display: 'flex',\n                zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n                boxSizing: 'border-box',\n                borderRadius: effects.roundedCorner2,\n                boxShadow: effects.elevation16,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderWidth: 1,\n                        borderStyle: 'solid',\n                        borderColor: 'WindowText',\n                    },\n                    _a),\n            },\n            focusClear(),\n            className,\n            !!calloutWidth && { width: calloutWidth },\n            !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n            !!calloutMinWidth && { minWidth: calloutMinWidth },\n        ],\n        beak: [\n            classNames.beak,\n            {\n                position: 'absolute',\n                backgroundColor: semanticColors.menuBackground,\n                boxShadow: 'inherit',\n                border: 'inherit',\n                boxSizing: 'border-box',\n                transform: 'rotate(45deg)',\n            },\n            getBeakStyle(beakWidth),\n            backgroundColor && {\n                backgroundColor: backgroundColor,\n            },\n        ],\n        beakCurtain: [\n            classNames.beakCurtain,\n            {\n                position: 'absolute',\n                top: 0,\n                right: 0,\n                bottom: 0,\n                left: 0,\n                backgroundColor: semanticColors.menuBackground,\n                borderRadius: effects.roundedCorner2,\n            },\n        ],\n        calloutMain: [\n            classNames.calloutMain,\n            {\n                backgroundColor: semanticColors.menuBackground,\n                overflowX: 'hidden',\n                overflowY: 'auto',\n                position: 'relative',\n                width: '100%',\n                borderRadius: effects.roundedCorner2,\n            },\n            overflowYHidden && {\n                overflowY: 'hidden',\n            },\n            backgroundColor && {\n                backgroundColor: backgroundColor,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, {\n    scope: 'CalloutContent',\n});\n//# sourceMappingURL=CalloutContent.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nexport var Callout = React.forwardRef(function (_a, forwardedRef) {\n    var layerProps = _a.layerProps, doNotLayer = _a.doNotLayer, rest = __rest(_a, [\"layerProps\", \"doNotLayer\"]);\n    var content = React.createElement(CalloutContent, __assign({}, rest, { doNotLayer: doNotLayer, ref: forwardedRef }));\n    return doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n});\nCallout.displayName = 'Callout';\n//# sourceMappingURL=Callout.js.map","import * as React from 'react';\nimport { Icon, FontIcon } from '../../Icon';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var CheckBase = React.forwardRef(function (props, ref) {\n    var _a = props.checked, checked = _a === void 0 ? false : _a, className = props.className, theme = props.theme, styles = props.styles, _b = props.useFastIcons, useFastIcons = _b === void 0 ? true : _b;\n    var classNames = getClassNames(styles, { theme: theme, className: className, checked: checked });\n    var IconComponent = useFastIcons ? FontIcon : Icon;\n    return (React.createElement(\"div\", { className: classNames.root, ref: ref },\n        React.createElement(IconComponent, { iconName: \"CircleRing\", className: classNames.circle }),\n        React.createElement(IconComponent, { iconName: \"StatusCircleCheckmark\", className: classNames.check })));\n});\nCheckBase.displayName = 'CheckBase';\n//# sourceMappingURL=Check.base.js.map","import { styled } from '../../Utilities';\nimport { CheckBase } from './Check.base';\nimport { getStyles } from './Check.styles';\nexport var Check = styled(CheckBase, getStyles, undefined, {\n    scope: 'Check',\n}, true);\n//# sourceMappingURL=Check.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, IconFontSizes, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { getRTL } from '../../Utilities';\nexport var CheckGlobalClassNames = {\n    root: 'ms-Check',\n    circle: 'ms-Check-circle',\n    check: 'ms-Check-check',\n    /** Must be manually applied to the parent element of the check. */\n    checkHost: 'ms-Check-checkHost',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e;\n    // eslint-disable-next-line deprecation/deprecation\n    var _f = props.height, height = _f === void 0 ? props.checkBoxHeight || '18px' : _f, checked = props.checked, className = props.className, theme = props.theme;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var isRTL = getRTL(theme);\n    var classNames = getGlobalClassNames(CheckGlobalClassNames, theme);\n    var sharedCircleCheck = {\n        fontSize: height,\n        position: 'absolute',\n        left: 0,\n        top: 0,\n        width: height,\n        height: height,\n        textAlign: 'center',\n        // inline-flex prevents the check from shifting with custom line height styles\n        display: 'inline-flex',\n        alignItems: 'center',\n        justifyContent: 'center',\n        verticalAlign: 'middle',\n    };\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            {\n                // lineHeight currently needs to be a string to output without 'px'\n                lineHeight: '1',\n                width: height,\n                height: height,\n                verticalAlign: 'top',\n                position: 'relative',\n                userSelect: 'none',\n                selectors: (_a = {\n                        ':before': {\n                            content: '\"\"',\n                            position: 'absolute',\n                            top: '1px',\n                            right: '1px',\n                            bottom: '1px',\n                            left: '1px',\n                            borderRadius: '50%',\n                            opacity: 1,\n                            background: semanticColors.bodyBackground,\n                        }\n                    },\n                    _a[\".\".concat(classNames.checkHost, \":hover &, .\").concat(classNames.checkHost, \":focus &, &:hover, &:focus\")] = {\n                        opacity: 1,\n                    },\n                    _a),\n            },\n            checked && [\n                'is-checked',\n                {\n                    selectors: {\n                        ':before': {\n                            background: palette.themePrimary,\n                            opacity: 1,\n                            selectors: (_b = {},\n                                _b[HighContrastSelector] = {\n                                    background: 'Window',\n                                },\n                                _b),\n                        },\n                    },\n                },\n            ],\n            className,\n        ],\n        circle: [\n            classNames.circle,\n            sharedCircleCheck,\n            {\n                color: palette.neutralSecondary,\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = {\n                        color: 'WindowText',\n                    },\n                    _c),\n            },\n            checked && {\n                color: palette.white,\n            },\n        ],\n        check: [\n            classNames.check,\n            sharedCircleCheck,\n            {\n                opacity: 0,\n                color: palette.neutralSecondary,\n                fontSize: IconFontSizes.medium,\n                left: isRTL ? '-0.5px' : '.5px',\n                top: '-1px',\n                selectors: (_d = {\n                        ':hover': {\n                            opacity: 1,\n                        }\n                    },\n                    _d[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n                    _d),\n            },\n            checked && {\n                opacity: 1,\n                color: palette.white,\n                fontWeight: 900,\n                selectors: (_e = {},\n                    _e[HighContrastSelector] = {\n                        border: 'none',\n                        color: 'WindowText',\n                    },\n                    _e),\n            },\n        ],\n        checkHost: classNames.checkHost,\n    };\n};\n//# sourceMappingURL=Check.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { useFocusRects, classNamesFunction } from '@fluentui/utilities';\nimport { Icon } from '../Icon/Icon';\nvar getClassNames = classNamesFunction();\nexport var CheckboxBase = React.forwardRef(function (props, forwardedRef) {\n    var disabled = props.disabled, required = props.required, inputProps = props.inputProps, name = props.name, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, ariaPositionInSet = props.ariaPositionInSet, ariaSetSize = props.ariaSetSize, title = props.title, checkmarkIconProps = props.checkmarkIconProps, styles = props.styles, theme = props.theme, className = props.className, _a = props.boxSide, boxSide = _a === void 0 ? 'start' : _a;\n    var id = useId('checkbox-', props.id);\n    var rootRef = React.useRef(null);\n    var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n    var inputRef = React.useRef(null);\n    var _b = useControllableValue(props.checked, props.defaultChecked, props.onChange), isChecked = _b[0], setIsChecked = _b[1];\n    var _c = useControllableValue(props.indeterminate, props.defaultIndeterminate), isIndeterminate = _c[0], setIsIndeterminate = _c[1];\n    useFocusRects(rootRef);\n    useDebugWarning(props);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        disabled: disabled,\n        indeterminate: isIndeterminate,\n        checked: isChecked,\n        reversed: boxSide !== 'start',\n        isUsingCustomLabelRender: !!props.onRenderLabel,\n    });\n    var onChange = React.useCallback(function (event) {\n        if (isIndeterminate) {\n            // If indeterminate, clicking the checkbox *only* removes the indeterminate state (or if\n            // controlled, lets the consumer know to change it by calling onChange). It doesn't\n            // change the checked state.\n            setIsChecked(!!isChecked, event);\n            setIsIndeterminate(false);\n        }\n        else {\n            setIsChecked(!isChecked, event);\n        }\n    }, [setIsChecked, setIsIndeterminate, isIndeterminate, isChecked]);\n    var defaultLabelRenderer = React.useCallback(function (checkboxProps) {\n        if (!checkboxProps) {\n            return null;\n        }\n        return checkboxProps.label ? (React.createElement(\"span\", { className: classNames.text, title: checkboxProps.title }, checkboxProps.label)) : null;\n    }, [classNames.text]);\n    var setNativeIndeterminate = React.useCallback(function (indeterminate) {\n        if (!inputRef.current) {\n            return;\n        }\n        var value = !!indeterminate;\n        inputRef.current.indeterminate = value;\n        setIsIndeterminate(value);\n    }, [setIsIndeterminate]);\n    useComponentRef(props, isChecked, isIndeterminate, setNativeIndeterminate, inputRef);\n    React.useEffect(function () { return setNativeIndeterminate(isIndeterminate); }, [setNativeIndeterminate, isIndeterminate]);\n    var onRenderLabel = props.onRenderLabel || defaultLabelRenderer;\n    var ariaChecked = isIndeterminate\n        ? 'mixed'\n        : undefined;\n    var mergedInputProps = __assign(__assign({ className: classNames.input, type: 'checkbox' }, inputProps), { checked: !!isChecked, disabled: disabled, required: required, name: name, id: id, title: title, onChange: onChange, 'aria-disabled': disabled, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-posinset': ariaPositionInSet, 'aria-setsize': ariaSetSize, 'aria-checked': ariaChecked });\n    return (React.createElement(\"div\", { className: classNames.root, title: title, ref: mergedRootRefs },\n        React.createElement(\"input\", __assign({}, mergedInputProps, { ref: inputRef, title: title, \"data-ktp-execute-target\": true })),\n        React.createElement(\"label\", { className: classNames.label, htmlFor: id },\n            React.createElement(\"div\", { className: classNames.checkbox, \"data-ktp-target\": true },\n                React.createElement(Icon, __assign({ iconName: \"CheckMark\" }, checkmarkIconProps, { className: classNames.checkmark }))),\n            onRenderLabel(props, defaultLabelRenderer))));\n});\nCheckboxBase.displayName = 'CheckboxBase';\nfunction useDebugWarning(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'Checkbox',\n            props: props,\n            mutuallyExclusive: {\n                checked: 'defaultChecked',\n                indeterminate: 'defaultIndeterminate',\n            },\n        });\n    }\n}\nfunction useComponentRef(props, isChecked, isIndeterminate, setIndeterminate, checkBoxRef) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        get checked() {\n            return !!isChecked;\n        },\n        get indeterminate() {\n            return !!isIndeterminate;\n        },\n        set indeterminate(indeterminate) {\n            setIndeterminate(indeterminate);\n        },\n        focus: function () {\n            if (checkBoxRef.current) {\n                checkBoxRef.current.focus();\n            }\n        },\n    }); }, [checkBoxRef, isChecked, isIndeterminate, setIndeterminate]);\n}\n//# sourceMappingURL=Checkbox.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '@fluentui/style-utilities';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nvar GlobalClassNames = {\n    root: 'ms-Checkbox',\n    label: 'ms-Checkbox-label',\n    checkbox: 'ms-Checkbox-checkbox',\n    checkmark: 'ms-Checkbox-checkmark',\n    text: 'ms-Checkbox-text',\n};\nvar MS_CHECKBOX_LABEL_SIZE = '20px';\nvar MS_CHECKBOX_TRANSITION_DURATION = '200ms';\nvar MS_CHECKBOX_TRANSITION_TIMING = 'cubic-bezier(.4, 0, .23, 1)';\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n    var className = props.className, theme = props.theme, reversed = props.reversed, checked = props.checked, disabled = props.disabled, isUsingCustomLabelRender = props.isUsingCustomLabelRender, indeterminate = props.indeterminate;\n    var semanticColors = theme.semanticColors, effects = theme.effects, palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var checkmarkFontColor = semanticColors.inputForegroundChecked;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBorder\n    var checkmarkFontColorHovered = palette.neutralSecondary;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n    var checkboxBorderColor = palette.neutralPrimary;\n    var checkboxBorderIndeterminateColor = semanticColors.inputBackgroundChecked;\n    var checkboxBorderColorChecked = semanticColors.inputBackgroundChecked;\n    var checkboxBorderColorDisabled = semanticColors.disabledBodySubtext;\n    var checkboxBorderHoveredColor = semanticColors.inputBorderHovered;\n    var checkboxBorderIndeterminateHoveredColor = semanticColors.inputBackgroundCheckedHovered;\n    var checkboxBackgroundChecked = semanticColors.inputBackgroundChecked;\n    // TODO: after updating the semanticColors slots mapping the following 2 tokens need to be\n    // semanticColors.inputBackgroundCheckedHovered\n    var checkboxBackgroundCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n    var checkboxBorderColorCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n    var checkboxHoveredTextColor = semanticColors.inputTextHovered;\n    var checkboxBackgroundDisabledChecked = semanticColors.disabledBodySubtext;\n    var checkboxTextColor = semanticColors.bodyText;\n    var checkboxTextColorDisabled = semanticColors.disabledText;\n    var indeterminateDotStyles = [\n        (_a = {\n                content: '\"\"',\n                borderRadius: effects.roundedCorner2,\n                position: 'absolute',\n                width: 10,\n                height: 10,\n                top: 4,\n                left: 4,\n                boxSizing: 'border-box',\n                borderWidth: 5,\n                borderStyle: 'solid',\n                borderColor: disabled ? checkboxBorderColorDisabled : checkboxBorderIndeterminateColor,\n                transitionProperty: 'border-width, border, border-color',\n                transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n                transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING\n            },\n            _a[HighContrastSelector] = {\n                borderColor: 'WindowText',\n            },\n            _a),\n    ];\n    return {\n        root: [\n            classNames.root,\n            {\n                position: 'relative',\n                display: 'flex',\n            },\n            reversed && 'reversed',\n            checked && 'is-checked',\n            !disabled && 'is-enabled',\n            disabled && 'is-disabled',\n            !disabled && [\n                !checked && (_b = {},\n                    _b[\":hover .\".concat(classNames.checkbox)] = (_c = {\n                            borderColor: checkboxBorderHoveredColor\n                        },\n                        _c[HighContrastSelector] = {\n                            borderColor: 'Highlight',\n                        },\n                        _c),\n                    _b[\":focus .\".concat(classNames.checkbox)] = { borderColor: checkboxBorderHoveredColor },\n                    _b[\":hover .\".concat(classNames.checkmark)] = (_d = {\n                            color: checkmarkFontColorHovered,\n                            opacity: '1'\n                        },\n                        _d[HighContrastSelector] = {\n                            color: 'Highlight',\n                        },\n                        _d),\n                    _b),\n                checked &&\n                    !indeterminate && (_e = {},\n                    _e[\":hover .\".concat(classNames.checkbox)] = {\n                        background: checkboxBackgroundCheckedHovered,\n                        borderColor: checkboxBorderColorCheckedHovered,\n                    },\n                    _e[\":focus .\".concat(classNames.checkbox)] = {\n                        background: checkboxBackgroundCheckedHovered,\n                        borderColor: checkboxBorderColorCheckedHovered,\n                    },\n                    _e[HighContrastSelector] = (_f = {},\n                        _f[\":hover .\".concat(classNames.checkbox)] = {\n                            background: 'Highlight',\n                            borderColor: 'Highlight',\n                        },\n                        _f[\":focus .\".concat(classNames.checkbox)] = {\n                            background: 'Highlight',\n                        },\n                        _f[\":focus:hover .\".concat(classNames.checkbox)] = {\n                            background: 'Highlight',\n                        },\n                        _f[\":focus:hover .\".concat(classNames.checkmark)] = {\n                            color: 'Window',\n                        },\n                        _f[\":hover .\".concat(classNames.checkmark)] = {\n                            color: 'Window',\n                        },\n                        _f),\n                    _e),\n                indeterminate && (_g = {},\n                    _g[\":hover .\".concat(classNames.checkbox, \", :hover .\").concat(classNames.checkbox, \":after\")] = (_h = {\n                            borderColor: checkboxBorderIndeterminateHoveredColor\n                        },\n                        _h[HighContrastSelector] = {\n                            borderColor: 'WindowText',\n                        },\n                        _h),\n                    _g[\":focus .\".concat(classNames.checkbox)] = {\n                        borderColor: checkboxBorderIndeterminateHoveredColor,\n                    },\n                    _g[\":hover .\".concat(classNames.checkmark)] = {\n                        opacity: '0',\n                    },\n                    _g),\n                (_j = {},\n                    _j[\":hover .\".concat(classNames.text, \", :focus .\").concat(classNames.text)] = (_k = {\n                            color: checkboxHoveredTextColor\n                        },\n                        _k[HighContrastSelector] = {\n                            color: disabled ? 'GrayText' : 'WindowText',\n                        },\n                        _k),\n                    _j),\n            ],\n            className,\n        ],\n        input: (_l = {\n                position: 'absolute',\n                background: 'none',\n                opacity: 0\n            },\n            _l[\".\".concat(IsFocusVisibleClassName, \" &:focus + label::before\")] = (_m = {\n                    outline: '1px solid ' + theme.palette.neutralSecondary,\n                    outlineOffset: '2px'\n                },\n                _m[HighContrastSelector] = {\n                    outline: '1px solid WindowText',\n                },\n                _m),\n            _l),\n        label: [\n            classNames.label,\n            theme.fonts.medium,\n            {\n                display: 'flex',\n                alignItems: isUsingCustomLabelRender ? 'center' : 'flex-start',\n                cursor: disabled ? 'default' : 'pointer',\n                position: 'relative',\n                userSelect: 'none',\n            },\n            reversed && {\n                flexDirection: 'row-reverse',\n                justifyContent: 'flex-end',\n            },\n            {\n                '&::before': {\n                    position: 'absolute',\n                    left: 0,\n                    right: 0,\n                    top: 0,\n                    bottom: 0,\n                    content: '\"\"',\n                    pointerEvents: 'none',\n                },\n            },\n        ],\n        checkbox: [\n            classNames.checkbox,\n            (_o = {\n                    position: 'relative',\n                    display: 'flex',\n                    flexShrink: 0,\n                    alignItems: 'center',\n                    justifyContent: 'center',\n                    height: MS_CHECKBOX_LABEL_SIZE,\n                    width: MS_CHECKBOX_LABEL_SIZE,\n                    border: \"1px solid \".concat(checkboxBorderColor),\n                    borderRadius: effects.roundedCorner2,\n                    boxSizing: 'border-box',\n                    transitionProperty: 'background, border, border-color',\n                    transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n                    transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING,\n                    /* in case the icon is bigger than the box */\n                    overflow: 'hidden',\n                    ':after': indeterminate ? indeterminateDotStyles : null\n                },\n                _o[HighContrastSelector] = __assign({ borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _o),\n            indeterminate && {\n                borderColor: checkboxBorderIndeterminateColor,\n            },\n            !reversed\n                ? // This margin on the checkbox is for backwards compat. Notably it has the effect where a customRender\n                    // is used, there will be only a 4px margin from checkbox to label. The label by default would have\n                    // another 4px margin for a total of 8px margin between checkbox and label. We don't combine the two\n                    // (and move it into the text) to not incur a breaking change for everyone using custom render atm.\n                    {\n                        marginRight: 4,\n                    }\n                : {\n                    marginLeft: 4,\n                },\n            !disabled &&\n                !indeterminate &&\n                checked && (_p = {\n                    background: checkboxBackgroundChecked,\n                    borderColor: checkboxBorderColorChecked\n                },\n                _p[HighContrastSelector] = {\n                    background: 'Highlight',\n                    borderColor: 'Highlight',\n                },\n                _p),\n            disabled && (_q = {\n                    borderColor: checkboxBorderColorDisabled\n                },\n                _q[HighContrastSelector] = {\n                    borderColor: 'GrayText',\n                },\n                _q),\n            checked &&\n                disabled && (_r = {\n                    background: checkboxBackgroundDisabledChecked,\n                    borderColor: checkboxBorderColorDisabled\n                },\n                _r[HighContrastSelector] = {\n                    background: 'Window',\n                },\n                _r),\n        ],\n        checkmark: [\n            classNames.checkmark,\n            (_s = {\n                    opacity: checked && !indeterminate ? '1' : '0',\n                    color: checkmarkFontColor\n                },\n                _s[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'Window' }, getHighContrastNoAdjustStyle()),\n                _s),\n        ],\n        text: [\n            classNames.text,\n            (_t = {\n                    color: disabled ? checkboxTextColorDisabled : checkboxTextColor,\n                    fontSize: fonts.medium.fontSize,\n                    lineHeight: '20px'\n                },\n                _t[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _t),\n            !reversed\n                ? {\n                    marginLeft: 4,\n                }\n                : {\n                    marginRight: 4,\n                },\n        ],\n    };\n};\n//# sourceMappingURL=Checkbox.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { CheckboxBase } from './Checkbox.base';\nimport { getStyles } from './Checkbox.styles';\nexport var Checkbox = styled(CheckboxBase, getStyles, undefined, { scope: 'Checkbox' });\n//# sourceMappingURL=Checkbox.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../../../Image';\nimport { Icon } from '../../../Icon';\nimport { classNamesFunction, getNativeProps, inputProperties, css, composeRenderFunction, getPropsWithDefaults, } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nvar LARGE_IMAGE_SIZE = 71;\nvar DEFAULT_PROPS = {\n    // This ensures default imageSize value doesn't mutate. Mutation can cause style re-calcuation.\n    imageSize: { width: 32, height: 32 },\n};\nexport var ChoiceGroupOptionBase = function (propsWithoutDefaults) {\n    // Mix the `key` prop back in since custom render functions may be expecting it\n    // (React uses `key` internally rather than passing it through to the component)\n    var props = getPropsWithDefaults(__assign(__assign({}, DEFAULT_PROPS), { key: propsWithoutDefaults.itemKey }), propsWithoutDefaults);\n    var ariaLabel = props.ariaLabel, focused = props.focused, required = props.required, theme = props.theme, iconProps = props.iconProps, imageSrc = props.imageSrc, imageSize = props.imageSize, disabled = props.disabled, checked = props.checked, id = props.id, styles = props.styles, name = props.name, rest = __rest(props, [\"ariaLabel\", \"focused\", \"required\", \"theme\", \"iconProps\", \"imageSrc\", \"imageSize\", \"disabled\", \"checked\", \"id\", \"styles\", \"name\"]);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        hasIcon: !!iconProps,\n        hasImage: !!imageSrc,\n        checked: checked,\n        disabled: disabled,\n        imageIsLarge: !!imageSrc && (imageSize.width > LARGE_IMAGE_SIZE || imageSize.height > LARGE_IMAGE_SIZE),\n        imageSize: imageSize,\n        focused: focused,\n    });\n    var _a = getNativeProps(rest, inputProperties), className = _a.className, nativeProps = __rest(_a, [\"className\"]);\n    var defaultOnRenderLabel = function () {\n        return (React.createElement(\"span\", { id: props.labelId, className: \"ms-ChoiceFieldLabel\" }, props.text));\n    };\n    var defaultOnRenderField = function () {\n        var _a = props.imageAlt, imageAlt = _a === void 0 ? '' : _a, selectedImageSrc = props.selectedImageSrc;\n        var onRenderLabel = props.onRenderLabel\n            ? composeRenderFunction(props.onRenderLabel, defaultOnRenderLabel)\n            : defaultOnRenderLabel;\n        var label = onRenderLabel(__assign(__assign({}, props), { key: props.itemKey }));\n        return (React.createElement(\"label\", { htmlFor: id, className: classNames.field },\n            imageSrc && (React.createElement(\"div\", { className: classNames.innerField },\n                React.createElement(\"div\", { className: classNames.imageWrapper },\n                    React.createElement(Image, __assign({ src: imageSrc, alt: imageAlt }, imageSize))),\n                React.createElement(\"div\", { className: classNames.selectedImageWrapper },\n                    React.createElement(Image, __assign({ src: selectedImageSrc, alt: imageAlt }, imageSize))))),\n            iconProps && (React.createElement(\"div\", { className: classNames.innerField },\n                React.createElement(\"div\", { className: classNames.iconWrapper },\n                    React.createElement(Icon, __assign({}, iconProps))))),\n            imageSrc || iconProps ? React.createElement(\"div\", { className: classNames.labelWrapper }, label) : label));\n    };\n    var _b = props.onRenderField, onRenderField = _b === void 0 ? defaultOnRenderField : _b;\n    var onChange = function (evt) {\n        var _a;\n        (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n    };\n    var onBlur = function (evt) {\n        var _a;\n        (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, evt);\n    };\n    var onFocus = function (evt) {\n        var _a;\n        (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n    };\n    return (React.createElement(\"div\", { className: classNames.root },\n        React.createElement(\"div\", { className: classNames.choiceFieldWrapper },\n            React.createElement(\"input\", __assign({ \"aria-label\": ariaLabel, id: id, className: css(classNames.input, className), type: \"radio\", name: name, disabled: disabled, checked: checked, required: required }, nativeProps, { onChange: onChange, onFocus: onFocus, onBlur: onBlur })),\n            onRenderField(__assign(__assign({}, props), { key: props.itemKey }), defaultOnRenderField))));\n};\nChoiceGroupOptionBase.displayName = 'ChoiceGroupOption';\n//# sourceMappingURL=ChoiceGroupOption.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-ChoiceField',\n    choiceFieldWrapper: 'ms-ChoiceField-wrapper',\n    input: 'ms-ChoiceField-input',\n    field: 'ms-ChoiceField-field',\n    innerField: 'ms-ChoiceField-innerField',\n    imageWrapper: 'ms-ChoiceField-imageWrapper',\n    iconWrapper: 'ms-ChoiceField-iconWrapper',\n    labelWrapper: 'ms-ChoiceField-labelWrapper',\n    checked: 'is-checked',\n};\nvar labelWrapperLineHeight = 15;\nvar labelWrapperHeight = labelWrapperLineHeight * 2 + 2; // adding 2px height to ensure text doesn't get cutoff\nvar iconSize = 32;\nvar choiceFieldSize = 20;\nvar choiceFieldTransitionDuration = '200ms';\nvar choiceFieldTransitionTiming = 'cubic-bezier(.4, 0, .23, 1)';\nvar radioButtonSpacing = 3;\nvar radioButtonInnerSize = 5;\nfunction getChoiceGroupFocusStyle(focusBorderColor, hasIconOrImage) {\n    var _a, _b;\n    return [\n        'is-inFocus',\n        {\n            selectors: (_a = {},\n                _a[\".\".concat(IsFocusVisibleClassName, \" &\")] = {\n                    position: 'relative',\n                    outline: 'transparent',\n                    selectors: {\n                        '::-moz-focus-inner': {\n                            border: 0,\n                        },\n                        ':after': {\n                            content: '\"\"',\n                            top: -2,\n                            right: -2,\n                            bottom: -2,\n                            left: -2,\n                            pointerEvents: 'none',\n                            border: \"1px solid \".concat(focusBorderColor),\n                            position: 'absolute',\n                            selectors: (_b = {},\n                                _b[HighContrastSelector] = {\n                                    borderColor: 'WindowText',\n                                    borderWidth: hasIconOrImage ? 1 : 2,\n                                },\n                                _b),\n                        },\n                    },\n                },\n                _a),\n        },\n    ];\n}\nfunction getImageWrapperStyle(isSelectedImageWrapper, className, checked) {\n    return [\n        className,\n        {\n            paddingBottom: 2,\n            transitionProperty: 'opacity',\n            transitionDuration: choiceFieldTransitionDuration,\n            transitionTimingFunction: 'ease',\n            selectors: {\n                '.ms-Image': {\n                    display: 'inline-block',\n                    borderStyle: 'none',\n                },\n            },\n        },\n        (checked ? !isSelectedImageWrapper : isSelectedImageWrapper) && [\n            'is-hidden',\n            {\n                position: 'absolute',\n                left: 0,\n                top: 0,\n                width: '100%',\n                height: '100%',\n                overflow: 'hidden',\n                opacity: 0,\n            },\n        ],\n    ];\n}\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e;\n    var theme = props.theme, hasIcon = props.hasIcon, hasImage = props.hasImage, checked = props.checked, disabled = props.disabled, imageIsLarge = props.imageIsLarge, focused = props.focused, imageSize = props.imageSize;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    // Tokens\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n    var circleBorderColor = palette.neutralPrimary;\n    var circleHoveredBorderColor = semanticColors.inputBorderHovered;\n    var circleCheckedBorderColor = semanticColors.inputBackgroundChecked;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n    var circleCheckedHoveredBorderColor = palette.themeDark;\n    var circleDisabledBorderColor = semanticColors.disabledBodySubtext;\n    var circleBackgroundColor = semanticColors.bodyBackground;\n    var dotUncheckedHoveredColor = palette.neutralSecondary;\n    var dotCheckedColor = semanticColors.inputBackgroundChecked;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n    var dotCheckedHoveredColor = palette.themeDark;\n    var dotDisabledColor = semanticColors.disabledBodySubtext;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.bodyTextChecked\n    var labelHoverFocusColor = palette.neutralDark;\n    var focusBorderColor = semanticColors.focusBorder;\n    var iconOrImageChoiceBorderUncheckedHoveredColor = semanticColors.inputBorderHovered;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n    var iconOrImageChoiceBorderCheckedColor = semanticColors.inputBackgroundChecked;\n    var iconOrImageChoiceBorderCheckedHoveredColor = palette.themeDark;\n    var iconOrImageChoiceBackgroundColor = palette.neutralLighter;\n    var fieldHoverOrFocusProperties = {\n        selectors: {\n            '.ms-ChoiceFieldLabel': {\n                color: labelHoverFocusColor,\n            },\n            ':before': {\n                borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n            },\n            ':after': [\n                !hasIcon &&\n                    !hasImage &&\n                    !checked && {\n                    content: '\"\"',\n                    transitionProperty: 'background-color',\n                    left: 5,\n                    top: 5,\n                    width: 10,\n                    height: 10,\n                    backgroundColor: dotUncheckedHoveredColor,\n                },\n                checked && {\n                    borderColor: dotCheckedHoveredColor,\n                    background: dotCheckedHoveredColor,\n                },\n            ],\n        },\n    };\n    var enabledFieldWithImageHoverOrFocusProperties = {\n        borderColor: checked ? iconOrImageChoiceBorderCheckedHoveredColor : iconOrImageChoiceBorderUncheckedHoveredColor,\n        selectors: {\n            ':before': {\n                opacity: 1,\n                borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n            },\n        },\n    };\n    var circleAreaProperties = [\n        {\n            content: '\"\"',\n            display: 'inline-block',\n            backgroundColor: circleBackgroundColor,\n            borderWidth: 1,\n            borderStyle: 'solid',\n            borderColor: circleBorderColor,\n            width: choiceFieldSize,\n            height: choiceFieldSize,\n            fontWeight: 'normal',\n            position: 'absolute',\n            top: 0,\n            left: 0,\n            boxSizing: 'border-box',\n            transitionProperty: 'border-color',\n            transitionDuration: choiceFieldTransitionDuration,\n            transitionTimingFunction: choiceFieldTransitionTiming,\n            borderRadius: '50%',\n        },\n        disabled && {\n            borderColor: circleDisabledBorderColor,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = __assign({ borderColor: 'GrayText', background: 'Window' }, getHighContrastNoAdjustStyle()),\n                _a),\n        },\n        checked && {\n            borderColor: disabled ? circleDisabledBorderColor : circleCheckedBorderColor,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    borderColor: 'Highlight',\n                    background: 'Window',\n                    forcedColorAdjust: 'none',\n                },\n                _b),\n        },\n        (hasIcon || hasImage) && {\n            top: radioButtonSpacing,\n            right: radioButtonSpacing,\n            left: 'auto',\n            opacity: checked ? 1 : 0,\n        },\n    ];\n    var dotAreaProperties = [\n        {\n            content: '\"\"',\n            width: 0,\n            height: 0,\n            borderRadius: '50%',\n            position: 'absolute',\n            left: choiceFieldSize / 2,\n            right: 0,\n            transitionProperty: 'border-width',\n            transitionDuration: choiceFieldTransitionDuration,\n            transitionTimingFunction: choiceFieldTransitionTiming,\n            boxSizing: 'border-box',\n        },\n        checked && {\n            borderWidth: 5,\n            borderStyle: 'solid',\n            borderColor: disabled ? dotDisabledColor : dotCheckedColor,\n            background: dotCheckedColor,\n            left: 5,\n            top: 5,\n            width: 10,\n            height: 10,\n            selectors: (_c = {},\n                _c[HighContrastSelector] = {\n                    borderColor: 'Highlight',\n                    forcedColorAdjust: 'none',\n                },\n                _c),\n        },\n        checked &&\n            (hasIcon || hasImage) && {\n            top: radioButtonSpacing + radioButtonInnerSize,\n            right: radioButtonSpacing + radioButtonInnerSize,\n            left: 'auto', // To reset the value of 'left' to its default value, so that 'right' works\n        },\n    ];\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                display: 'flex',\n                alignItems: 'center',\n                boxSizing: 'border-box',\n                color: semanticColors.bodyText,\n                minHeight: 26,\n                border: 'none',\n                position: 'relative',\n                marginTop: 8,\n                selectors: {\n                    '.ms-ChoiceFieldLabel': {\n                        display: 'inline-block',\n                    },\n                },\n            },\n            !hasIcon &&\n                !hasImage && {\n                selectors: {\n                    '.ms-ChoiceFieldLabel': {\n                        paddingLeft: '26px',\n                    },\n                },\n            },\n            hasImage && 'ms-ChoiceField--image',\n            hasIcon && 'ms-ChoiceField--icon',\n            (hasIcon || hasImage) && {\n                display: 'inline-flex',\n                fontSize: 0,\n                margin: '0 4px 4px 0',\n                paddingLeft: 0,\n                backgroundColor: iconOrImageChoiceBackgroundColor,\n                height: '100%',\n            },\n        ],\n        choiceFieldWrapper: [\n            classNames.choiceFieldWrapper,\n            focused && getChoiceGroupFocusStyle(focusBorderColor, hasIcon || hasImage),\n        ],\n        // The hidden input\n        input: [\n            classNames.input,\n            {\n                position: 'absolute',\n                opacity: 0,\n                top: 0,\n                right: 0,\n                width: '100%',\n                height: '100%',\n                margin: 0,\n            },\n            disabled && 'is-disabled',\n        ],\n        field: [\n            classNames.field,\n            checked && classNames.checked,\n            {\n                display: 'inline-block',\n                cursor: 'pointer',\n                marginTop: 0,\n                position: 'relative',\n                verticalAlign: 'top',\n                userSelect: 'none',\n                minHeight: 20,\n                selectors: {\n                    ':hover': !disabled && fieldHoverOrFocusProperties,\n                    ':focus': !disabled && fieldHoverOrFocusProperties,\n                    // The circle\n                    ':before': circleAreaProperties,\n                    // The dot\n                    ':after': dotAreaProperties,\n                },\n            },\n            hasIcon && 'ms-ChoiceField--icon',\n            hasImage && 'ms-ChoiceField-field--image',\n            (hasIcon || hasImage) && {\n                boxSizing: 'content-box',\n                cursor: 'pointer',\n                paddingTop: 22,\n                margin: 0,\n                textAlign: 'center',\n                transitionProperty: 'all',\n                transitionDuration: choiceFieldTransitionDuration,\n                transitionTimingFunction: 'ease',\n                border: '1px solid transparent',\n                justifyContent: 'center',\n                alignItems: 'center',\n                display: 'flex',\n                flexDirection: 'column',\n            },\n            checked && {\n                borderColor: iconOrImageChoiceBorderCheckedColor,\n            },\n            (hasIcon || hasImage) &&\n                !disabled && {\n                selectors: {\n                    ':hover': enabledFieldWithImageHoverOrFocusProperties,\n                    ':focus': enabledFieldWithImageHoverOrFocusProperties,\n                },\n            },\n            disabled && {\n                cursor: 'default',\n                selectors: {\n                    '.ms-ChoiceFieldLabel': {\n                        color: semanticColors.disabledBodyText,\n                        selectors: (_d = {},\n                            _d[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                            _d),\n                    },\n                },\n            },\n            checked &&\n                disabled && {\n                borderColor: iconOrImageChoiceBackgroundColor,\n            },\n        ],\n        innerField: [\n            classNames.innerField,\n            hasImage && {\n                // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n                height: imageSize.height,\n                width: imageSize.width,\n            },\n            (hasIcon || hasImage) && {\n                position: 'relative',\n                display: 'inline-block',\n                paddingLeft: 30,\n                paddingRight: 30,\n            },\n            (hasIcon || hasImage) &&\n                imageIsLarge && {\n                paddingLeft: 24,\n                paddingRight: 24,\n            },\n            (hasIcon || hasImage) &&\n                disabled && {\n                opacity: 0.25,\n                selectors: (_e = {},\n                    _e[HighContrastSelector] = {\n                        color: 'GrayText',\n                        opacity: 1,\n                    },\n                    _e),\n            },\n        ],\n        imageWrapper: getImageWrapperStyle(false, classNames.imageWrapper, checked),\n        selectedImageWrapper: getImageWrapperStyle(true, classNames.imageWrapper, checked),\n        iconWrapper: [\n            classNames.iconWrapper,\n            {\n                fontSize: iconSize,\n                lineHeight: iconSize,\n                height: iconSize,\n            },\n        ],\n        labelWrapper: [\n            classNames.labelWrapper,\n            fonts.medium,\n            (hasIcon || hasImage) && {\n                display: 'block',\n                position: 'relative',\n                margin: '4px 8px 2px 8px',\n                height: labelWrapperHeight,\n                lineHeight: labelWrapperLineHeight,\n                // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n                maxWidth: imageSize.width * 2,\n                overflow: 'hidden',\n                whiteSpace: 'pre-wrap',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ChoiceGroupOption.styles.js.map","import { styled } from '../../../Utilities';\nimport { ChoiceGroupOptionBase } from './ChoiceGroupOption.base';\nimport { getStyles } from './ChoiceGroupOption.styles';\nexport var ChoiceGroupOption = styled(ChoiceGroupOptionBase, getStyles, undefined, { scope: 'ChoiceGroupOption' });\n//# sourceMappingURL=ChoiceGroupOption.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { classNamesFunction, find, FocusRectsContext, getNativeProps, divProperties, setFocusVisibility, useFocusRects, } from '../../Utilities';\nimport { ChoiceGroupOption } from './ChoiceGroupOption/index';\nimport { useId, useControllableValue, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getOptionId = function (option, id) {\n    return \"\".concat(id, \"-\").concat(option.key);\n};\nvar findOption = function (options, key) {\n    return key === undefined ? undefined : find(options, function (value) { return value.key === key; });\n};\nvar focusSelectedOption = function (options, keyChecked, id, focusProviders) {\n    var optionToFocus = findOption(options, keyChecked) || options.filter(function (option) { return !option.disabled; })[0];\n    var elementToFocus = optionToFocus && document.getElementById(getOptionId(optionToFocus, id));\n    if (elementToFocus) {\n        elementToFocus.focus();\n        setFocusVisibility(true, elementToFocus, focusProviders);\n    }\n};\nvar focusFromFocusTrapZone = function (evt) {\n    return evt.relatedTarget instanceof HTMLElement && evt.relatedTarget.dataset.isFocusTrapZoneBumper === 'true';\n};\nvar useComponentRef = function (options, keyChecked, id, componentRef, focusProviders) {\n    React.useImperativeHandle(componentRef, function () { return ({\n        get checkedOption() {\n            return findOption(options, keyChecked);\n        },\n        focus: function () {\n            focusSelectedOption(options, keyChecked, id, focusProviders);\n        },\n    }); }, [options, keyChecked, id, focusProviders]);\n};\nvar COMPONENT_NAME = 'ChoiceGroup';\nexport var ChoiceGroupBase = React.forwardRef(function (props, forwardedRef) {\n    var className = props.className, theme = props.theme, styles = props.styles, _a = props.options, options = _a === void 0 ? [] : _a, label = props.label, required = props.required, disabled = props.disabled, name = props.name, defaultSelectedKey = props.defaultSelectedKey, componentRef = props.componentRef, onChange = props.onChange;\n    var id = useId('ChoiceGroup');\n    var labelId = useId('ChoiceGroupLabel');\n    var divProps = getNativeProps(props, divProperties, [\n        'onChange',\n        'className',\n        'required',\n    ]);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        optionsContainIconOrImage: options.some(function (option) { return !!(option.iconProps || option.imageSrc); }),\n    });\n    var ariaLabelledBy = props.ariaLabelledBy || (label ? labelId : props['aria-labelledby']);\n    var _b = useControllableValue(props.selectedKey, defaultSelectedKey), keyChecked = _b[0], setKeyChecked = _b[1];\n    var _c = React.useState(), keyFocused = _c[0], setKeyFocused = _c[1];\n    var rootRef = React.useRef(null);\n    var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n    var focusContext = React.useContext(FocusRectsContext);\n    useDebugWarnings(props);\n    useComponentRef(options, keyChecked, id, componentRef, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n    useFocusRects(rootRef);\n    var onFocus = React.useCallback(function (ev, option) {\n        var _a;\n        if (option) {\n            setKeyFocused(option.itemKey);\n            (_a = option.onFocus) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n        }\n    }, []);\n    var onBlur = React.useCallback(function (ev, option) {\n        var _a;\n        setKeyFocused(undefined);\n        (_a = option === null || option === void 0 ? void 0 : option.onBlur) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n    }, []);\n    var onOptionChange = React.useCallback(function (evt, option) {\n        var _a;\n        if (!option) {\n            return;\n        }\n        setKeyChecked(option.itemKey);\n        (_a = option.onChange) === null || _a === void 0 ? void 0 : _a.call(option, evt);\n        onChange === null || onChange === void 0 ? void 0 : onChange(evt, findOption(options, option.itemKey));\n    }, [onChange, options, setKeyChecked]);\n    var onRadioFocus = React.useCallback(function (evt) {\n        // Handles scenarios like this bug: https://github.com/microsoft/fluentui/issues/20173\n        if (focusFromFocusTrapZone(evt)) {\n            focusSelectedOption(options, keyChecked, id, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n        }\n    }, [options, keyChecked, id, focusContext]);\n    return (React.createElement(\"div\", __assign({ className: classNames.root }, divProps, { ref: mergedRootRefs }),\n        React.createElement(\"div\", __assign({ role: \"radiogroup\" }, (ariaLabelledBy && { 'aria-labelledby': ariaLabelledBy }), { onFocus: onRadioFocus }),\n            label && (React.createElement(Label, { className: classNames.label, required: required, id: labelId, disabled: disabled }, label)),\n            React.createElement(\"div\", { className: classNames.flexContainer }, options.map(function (option) {\n                return (React.createElement(ChoiceGroupOption, __assign({ itemKey: option.key }, option, { key: option.key, onBlur: onBlur, onFocus: onFocus, onChange: onOptionChange, focused: option.key === keyFocused, checked: option.key === keyChecked, disabled: option.disabled || disabled, id: getOptionId(option, id), labelId: option.labelId || \"\".concat(labelId, \"-\").concat(option.key), name: name || id, required: required })));\n            })))));\n});\nChoiceGroupBase.displayName = COMPONENT_NAME;\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            mutuallyExclusive: {\n                selectedKey: 'defaultSelectedKey',\n            },\n        });\n    }\n}\n//# sourceMappingURL=ChoiceGroup.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-ChoiceFieldGroup',\n    flexContainer: 'ms-ChoiceFieldGroup-flexContainer',\n};\nexport var getStyles = function (props) {\n    var className = props.className, optionsContainIconOrImage = props.optionsContainIconOrImage, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            className,\n            classNames.root,\n            theme.fonts.medium,\n            {\n                display: 'block',\n            },\n        ],\n        flexContainer: [\n            classNames.flexContainer,\n            optionsContainIconOrImage && {\n                display: 'flex',\n                flexDirection: 'row',\n                flexWrap: 'wrap',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ChoiceGroup.styles.js.map","import { styled } from '../../Utilities';\nimport { ChoiceGroupBase } from './ChoiceGroup.base';\nimport { getStyles } from './ChoiceGroup.styles';\nexport var ChoiceGroup = styled(ChoiceGroupBase, getStyles, undefined, { scope: 'ChoiceGroup' });\n//# sourceMappingURL=ChoiceGroup.js.map","import { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from './consts';\nimport { hsv2hex } from './hsv2hex';\n/**\n * Converts a color hue to an HTML color string (with # prefix).\n * This implementation ignores all components of `color` except hue.\n */\nexport function getFullColorString(color) {\n    return \"#\".concat(hsv2hex(color.h, MAX_COLOR_SATURATION, MAX_COLOR_VALUE));\n}\n//# sourceMappingURL=getFullColorString.js.map","import { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\n/** Converts HSV components to a hex color string (without # prefix). */\nexport function hsv2hex(h, s, v) {\n    var _a = hsv2rgb(h, s, v), r = _a.r, g = _a.g, b = _a.b;\n    return rgb2hex(r, g, b);\n}\n//# sourceMappingURL=hsv2hex.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same hue as `color` and other components updated to match the given\n * saturation and value.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateSV(color, s, v) {\n    var _a = hsv2rgb(color.h, s, v), r = _a.r, g = _a.g, b = _a.b;\n    var hex = rgb2hex(r, g, b);\n    return __assign(__assign({}, color), { s: s, v: v, r: r, g: g, b: b, hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateSV.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, on, initializeComponentRef, KeyCodes, getId } from '../../../Utilities';\n// These imports are separated to help with bundling\nimport { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from '../../../utilities/color/consts';\nimport { getFullColorString } from '../../../utilities/color/getFullColorString';\nimport { updateSV } from '../../../utilities/color/updateSV';\nimport { clamp } from '../../../utilities/color/clamp';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorRectangleBase = /** @class */ (function (_super) {\n    __extends(ColorRectangleBase, _super);\n    function ColorRectangleBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._disposables = [];\n        _this._root = React.createRef();\n        _this._isAdjustingSaturation = true;\n        _this._descriptionId = getId('ColorRectangle-description');\n        _this._onKeyDown = function (ev) {\n            var color = _this.state.color;\n            var s = color.s, v = color.v;\n            var increment = ev.shiftKey ? 10 : 1;\n            // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n            // and getting all the math and styles flipped correctly is tricky\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.up: {\n                    _this._isAdjustingSaturation = false;\n                    v += increment; // V = 100 (lightest) is at the top\n                    break;\n                }\n                case KeyCodes.down: {\n                    _this._isAdjustingSaturation = false;\n                    v -= increment; // V = 0 (darkest) is at the bottom\n                    break;\n                }\n                case KeyCodes.left: {\n                    _this._isAdjustingSaturation = true;\n                    s -= increment;\n                    break;\n                }\n                case KeyCodes.right: {\n                    _this._isAdjustingSaturation = true;\n                    s += increment;\n                    break;\n                }\n                default:\n                    return;\n            }\n            _this._updateColor(ev, updateSV(color, clamp(s, MAX_COLOR_SATURATION), clamp(v, MAX_COLOR_VALUE)));\n        };\n        _this._onMouseDown = function (ev) {\n            _this._disposables.push(on(window, 'mousemove', _this._onMouseMove, true), on(window, 'mouseup', _this._disposeListeners, true));\n            _this._onMouseMove(ev);\n        };\n        _this._onMouseMove = function (ev) {\n            if (!_this._root.current) {\n                return;\n            }\n            // Leaving the following commented code which is sometimes necessary for debugging:\n            // If the primary button (1) isn't pressed, the user is no longer dragging, so turn off\n            // the event handlers and exit.\n            // if (!(ev.buttons & 1)) {\n            //   this._disposeListeners();\n            //   return;\n            // }\n            var newColor = _getNewColor(ev, _this.state.color, _this._root.current);\n            if (newColor) {\n                _this._updateColor(ev, newColor);\n            }\n        };\n        _this._onTouchStart = function (ev) {\n            if (!_this._root.current) {\n                return;\n            }\n            // prevent touch from scrolling the page so that the touch can be dragged on the color rectangle.\n            ev.stopPropagation();\n        };\n        _this._onTouchMove = function (ev) {\n            if (!_this._root.current) {\n                return;\n            }\n            var newColor = _getNewColor(ev, _this.state.color, _this._root.current);\n            if (newColor) {\n                _this._updateColor(ev, newColor);\n            }\n            ev.preventDefault();\n            ev.stopPropagation();\n        };\n        _this._disposeListeners = function () {\n            _this._disposables.forEach(function (dispose) { return dispose(); });\n            _this._disposables = [];\n        };\n        initializeComponentRef(_this);\n        _this.state = { color: props.color };\n        return _this;\n    }\n    Object.defineProperty(ColorRectangleBase.prototype, \"color\", {\n        get: function () {\n            return this.state.color;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ColorRectangleBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n        // if props changed (as opposed to a state update), set the value\n        // TODO: switch to strict controlled pattern instead\n        if (prevProps !== this.props && this.props.color) {\n            this.setState({ color: this.props.color });\n        }\n    };\n    ColorRectangleBase.prototype.componentDidMount = function () {\n        if (this._root.current) {\n            // with Chrome's passive DOM listeners, stopPropagation and preventDefault only work if passive is false.\n            this._root.current.addEventListener('touchstart', this._onTouchStart, { capture: true, passive: false });\n            this._root.current.addEventListener('touchmove', this._onTouchMove, { capture: true, passive: false });\n        }\n    };\n    ColorRectangleBase.prototype.componentWillUnmount = function () {\n        if (this._root.current) {\n            this._root.current.removeEventListener('touchstart', this._onTouchStart);\n            this._root.current.removeEventListener('touchmove', this._onTouchMove);\n        }\n        this._disposeListeners();\n    };\n    ColorRectangleBase.prototype.render = function () {\n        var _a = this.props, minSize = _a.minSize, theme = _a.theme, className = _a.className, styles = _a.styles, ariaValueFormat = _a.ariaValueFormat, ariaLabel = _a.ariaLabel, ariaDescription = _a.ariaDescription;\n        var color = this.state.color;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            minSize: minSize,\n        });\n        var valueText = ariaValueFormat.replace('{0}', String(color.s)).replace('{1}', String(color.v));\n        return (React.createElement(\"div\", { ref: this._root, tabIndex: 0, className: classNames.root, style: { backgroundColor: getFullColorString(color) }, onMouseDown: this._onMouseDown, onKeyDown: this._onKeyDown, role: \"slider\", \"aria-valuetext\": valueText, \"aria-valuenow\": this._isAdjustingSaturation ? color.s : color.v, \"aria-valuemin\": 0, \"aria-valuemax\": MAX_COLOR_VALUE, \"aria-label\": ariaLabel, \"aria-describedby\": this._descriptionId, \"data-is-focusable\": true },\n            React.createElement(\"div\", { className: classNames.description, id: this._descriptionId }, ariaDescription),\n            React.createElement(\"div\", { className: classNames.light }),\n            React.createElement(\"div\", { className: classNames.dark }),\n            React.createElement(\"div\", { className: classNames.thumb, style: { left: color.s + '%', top: MAX_COLOR_VALUE - color.v + '%', backgroundColor: color.str } })));\n    };\n    ColorRectangleBase.prototype._updateColor = function (ev, color) {\n        var onChange = this.props.onChange;\n        var oldColor = this.state.color;\n        if (color.s === oldColor.s && color.v === oldColor.v) {\n            return; // no change\n        }\n        if (onChange) {\n            onChange(ev, color);\n        }\n        if (!ev.defaultPrevented) {\n            this.setState({ color: color });\n            ev.preventDefault();\n        }\n    };\n    ColorRectangleBase.defaultProps = {\n        minSize: 220,\n        ariaLabel: 'Saturation and brightness',\n        ariaValueFormat: 'Saturation {0} brightness {1}',\n        ariaDescription: 'Use left and right arrow keys to set saturation. Use up and down arrow keys to set brightness.',\n    };\n    return ColorRectangleBase;\n}(React.Component));\nexport { ColorRectangleBase };\n/**\n * Exported for testing only.\n * @internal\n */\nexport function _getNewColor(ev, prevColor, root) {\n    var rectSize = root.getBoundingClientRect();\n    var coords = undefined;\n    var touchEvent = ev;\n    if (touchEvent.touches) {\n        var lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n        if (lastTouch.clientX !== undefined && lastTouch.clientY !== undefined) {\n            coords = {\n                clientX: lastTouch.clientX,\n                clientY: lastTouch.clientY,\n            };\n        }\n    }\n    if (!coords) {\n        var mouseEvent = ev;\n        if (mouseEvent.clientX !== undefined && mouseEvent.clientY !== undefined) {\n            coords = {\n                clientX: mouseEvent.clientX,\n                clientY: mouseEvent.clientY,\n            };\n        }\n    }\n    if (coords) {\n        var sPercentage = (coords.clientX - rectSize.left) / rectSize.width;\n        var vPercentage = (coords.clientY - rectSize.top) / rectSize.height;\n        return updateSV(prevColor, clamp(Math.round(sPercentage * MAX_COLOR_SATURATION), MAX_COLOR_SATURATION), clamp(Math.round(MAX_COLOR_VALUE - vPercentage * MAX_COLOR_VALUE), MAX_COLOR_VALUE));\n    }\n}\n//# sourceMappingURL=ColorRectangle.base.js.map","import { styled } from '../../../Utilities';\nimport { ColorRectangleBase } from './ColorRectangle.base';\nimport { getStyles } from './ColorRectangle.styles';\nexport var ColorRectangle = styled(ColorRectangleBase, getStyles, undefined, { scope: 'ColorRectangle' });\n//# sourceMappingURL=ColorRectangle.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nimport { hiddenContentStyle } from '@fluentui/style-utilities';\nexport var getStyles = function (props) {\n    var _a, _b;\n    var className = props.className, theme = props.theme, minSize = props.minSize;\n    var palette = theme.palette, effects = theme.effects;\n    return {\n        root: [\n            'ms-ColorPicker-colorRect',\n            {\n                position: 'relative',\n                marginBottom: 8,\n                border: \"1px solid \".concat(palette.neutralLighter),\n                borderRadius: effects.roundedCorner2,\n                minWidth: minSize,\n                minHeight: minSize,\n                outline: 'none',\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = (_b = {\n                            outline: \"1px solid \".concat(palette.neutralSecondary)\n                        },\n                        _b[\"\".concat(HighContrastSelector)] = {\n                            outline: '2px solid CanvasText',\n                        },\n                        _b),\n                    _a),\n            },\n            className,\n        ],\n        light: [\n            'ms-ColorPicker-light',\n            {\n                position: 'absolute',\n                left: 0,\n                right: 0,\n                top: 0,\n                bottom: 0,\n                // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n                // and getting all the math and styles flipped correctly is tricky\n                background: 'linear-gradient(to right, white 0%, transparent 100%) /*@noflip*/',\n            },\n        ],\n        dark: [\n            'ms-ColorPicker-dark',\n            {\n                position: 'absolute',\n                left: 0,\n                right: 0,\n                top: 0,\n                bottom: 0,\n                background: 'linear-gradient(to bottom, transparent 0, #000 100%)',\n            },\n        ],\n        thumb: [\n            'ms-ColorPicker-thumb',\n            {\n                position: 'absolute',\n                width: 20,\n                height: 20,\n                background: 'white',\n                border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n                borderRadius: '50%',\n                boxShadow: effects.elevation8,\n                transform: 'translate(-50%, -50%)',\n                selectors: {\n                    ':before': {\n                        position: 'absolute',\n                        left: 0,\n                        right: 0,\n                        top: 0,\n                        bottom: 0,\n                        border: \"2px solid \".concat(palette.white),\n                        borderRadius: '50%',\n                        boxSizing: 'border-box',\n                        content: '\"\"',\n                    },\n                },\n            },\n        ],\n        description: hiddenContentStyle,\n    };\n};\n//# sourceMappingURL=ColorRectangle.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, on, KeyCodes, getWindow, warnDeprecations, warn, } from '../../../Utilities';\nimport { clamp } from '../../../utilities/color/clamp';\nimport { MAX_COLOR_HUE, MAX_COLOR_ALPHA } from '../../../utilities/color/consts';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorSliderBase = /** @class */ (function (_super) {\n    __extends(ColorSliderBase, _super);\n    function ColorSliderBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._disposables = [];\n        _this._root = React.createRef();\n        _this._onKeyDown = function (ev) {\n            var currentValue = _this.value;\n            var maxValue = _this._maxValue;\n            var increment = ev.shiftKey ? 10 : 1;\n            // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n            // and getting all the math and styles flipped correctly is tricky\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.left: {\n                    currentValue -= increment;\n                    break;\n                }\n                case KeyCodes.right: {\n                    currentValue += increment;\n                    break;\n                }\n                case KeyCodes.home: {\n                    currentValue = 0;\n                    break;\n                }\n                case KeyCodes.end: {\n                    currentValue = maxValue;\n                    break;\n                }\n                default: {\n                    return;\n                }\n            }\n            _this._updateValue(ev, clamp(currentValue, maxValue));\n        };\n        _this._onMouseDown = function (ev) {\n            var win = getWindow(_this);\n            if (win) {\n                _this._disposables.push(on(win, 'mousemove', _this._onMouseMove, true), on(win, 'mouseup', _this._disposeListeners, true));\n            }\n            _this._onMouseMove(ev);\n        };\n        _this._onMouseMove = function (ev) {\n            if (!_this._root.current) {\n                return;\n            }\n            var maxValue = _this._maxValue;\n            var rectSize = _this._root.current.getBoundingClientRect();\n            var currentPercentage = (ev.clientX - rectSize.left) / rectSize.width;\n            var newValue = clamp(Math.round(currentPercentage * maxValue), maxValue);\n            _this._updateValue(ev, newValue);\n        };\n        _this._onTouchStart = function (ev) {\n            if (!_this._root.current) {\n                return;\n            }\n            // prevent touch from scrolling the page so that the touch can be dragged on the color rectangle.\n            ev.stopPropagation();\n        };\n        _this._onTouchMove = function (ev) {\n            if (!_this._root.current) {\n                return;\n            }\n            var lastTouch = ev.touches[ev.touches.length - 1];\n            if (lastTouch.clientX !== undefined) {\n                var maxValue = _this._maxValue;\n                var rectSize = _this._root.current.getBoundingClientRect();\n                var currentPercentage = (lastTouch.clientX - rectSize.left) / rectSize.width;\n                var newValue = clamp(Math.round(currentPercentage * maxValue), maxValue);\n                _this._updateValue(ev, newValue);\n            }\n            ev.preventDefault();\n            ev.stopPropagation();\n        };\n        _this._disposeListeners = function () {\n            _this._disposables.forEach(function (dispose) { return dispose(); });\n            _this._disposables = [];\n        };\n        initializeComponentRef(_this);\n        warnDeprecations('ColorSlider', props, {\n            thumbColor: 'styles.sliderThumb',\n            overlayStyle: 'overlayColor',\n            isAlpha: 'type',\n            maxValue: 'type',\n            minValue: 'type',\n        });\n        // eslint-disable-next-line deprecation/deprecation\n        if (_this._type !== 'hue' && !(props.overlayColor || props.overlayStyle)) {\n            warn(\"ColorSlider: 'overlayColor' is required when 'type' is \\\"alpha\\\" or \\\"transparency\\\"\");\n        }\n        _this.state = {\n            currentValue: props.value || 0,\n        };\n        return _this;\n    }\n    Object.defineProperty(ColorSliderBase.prototype, \"value\", {\n        get: function () {\n            return this.state.currentValue;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ColorSliderBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n        // if props changed (as opposed to a state update), set the value\n        // TODO: switch to strict controlled pattern instead\n        if (prevProps !== this.props && this.props.value !== undefined) {\n            this.setState({ currentValue: this.props.value });\n        }\n    };\n    ColorSliderBase.prototype.componentDidMount = function () {\n        if (this._root.current) {\n            // with Chrome's passive DOM listeners, stopPropagation and preventDefault only work if passive is false.\n            this._root.current.addEventListener('touchstart', this._onTouchStart, { capture: true, passive: false });\n            this._root.current.addEventListener('touchmove', this._onTouchMove, { capture: true, passive: false });\n        }\n    };\n    ColorSliderBase.prototype.componentWillUnmount = function () {\n        if (this._root.current) {\n            this._root.current.removeEventListener('touchstart', this._onTouchStart);\n            this._root.current.removeEventListener('touchmove', this._onTouchMove);\n        }\n        this._disposeListeners();\n    };\n    ColorSliderBase.prototype.render = function () {\n        var type = this._type;\n        var maxValue = this._maxValue;\n        var _a = this.props, \n        // eslint-disable-next-line deprecation/deprecation\n        overlayStyle = _a.overlayStyle, overlayColor = _a.overlayColor, theme = _a.theme, className = _a.className, styles = _a.styles, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? type : _b;\n        var currentValue = this.value;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            type: type,\n        });\n        var currentPercentage = (100 * currentValue) / maxValue;\n        return (React.createElement(\"div\", { ref: this._root, className: classNames.root, tabIndex: 0, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, role: \"slider\", \"aria-valuenow\": currentValue, \"aria-valuetext\": String(currentValue), \"aria-valuemin\": 0, \"aria-valuemax\": maxValue, \"aria-label\": ariaLabel, \"data-is-focusable\": true },\n            !!(overlayColor || overlayStyle) && (React.createElement(\"div\", { className: classNames.sliderOverlay, \n                // this isn't included in getStyles because it may change frequently\n                style: overlayColor\n                    ? {\n                        background: type === 'transparency'\n                            ? \"linear-gradient(to right, #\".concat(overlayColor, \", transparent)\")\n                            : \"linear-gradient(to right, transparent, #\".concat(overlayColor, \")\"),\n                    }\n                    : overlayStyle })),\n            React.createElement(\"div\", { className: classNames.sliderThumb, style: { left: currentPercentage + '%' } })));\n    };\n    Object.defineProperty(ColorSliderBase.prototype, \"_type\", {\n        get: function () {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = this.props, isAlpha = _a.isAlpha, _b = _a.type, type = _b === void 0 ? isAlpha ? 'alpha' : 'hue' : _b;\n            return type;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(ColorSliderBase.prototype, \"_maxValue\", {\n        get: function () {\n            return this._type === 'hue' ? MAX_COLOR_HUE : MAX_COLOR_ALPHA;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ColorSliderBase.prototype._updateValue = function (ev, newValue) {\n        if (newValue === this.value) {\n            return;\n        }\n        var onChange = this.props.onChange;\n        if (onChange) {\n            onChange(ev, newValue);\n        }\n        if (!ev.defaultPrevented) {\n            this.setState({\n                currentValue: newValue,\n            });\n            ev.preventDefault();\n        }\n    };\n    ColorSliderBase.defaultProps = {\n        value: 0,\n    };\n    return ColorSliderBase;\n}(React.Component));\nexport { ColorSliderBase };\n//# sourceMappingURL=ColorSlider.base.js.map","import { IsFocusVisibleClassName } from '../../../Utilities';\nimport { HighContrastSelector } from '../../../Styling';\nvar hueStyle = {\n    background: \"linear-gradient(\".concat([\n        'to left',\n        'red 0',\n        '#f09 10%',\n        '#cd00ff 20%',\n        '#3200ff 30%',\n        '#06f 40%',\n        '#00fffd 50%',\n        '#0f6 60%',\n        '#35ff00 70%',\n        '#cdff00 80%',\n        '#f90 90%',\n        'red 100%',\n    ].join(','), \")\"),\n};\nvar alphaStyle = {\n    backgroundImage: 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJUlEQVQYV2N89erVfwY0ICYmxoguxjgUFKI7GsTH5m4M3w1ChQC1/Ca8i2n1WgAAAABJRU5ErkJggg==)',\n};\nexport var getStyles = function (props) {\n    var _a, _b;\n    // eslint-disable-next-line deprecation/deprecation\n    var theme = props.theme, className = props.className, _c = props.type, type = _c === void 0 ? 'hue' : _c, _d = props.isAlpha, useAlphaBackground = _d === void 0 ? type !== 'hue' : _d;\n    var palette = theme.palette, effects = theme.effects;\n    return {\n        root: [\n            'ms-ColorPicker-slider',\n            {\n                position: 'relative',\n                height: 20,\n                marginBottom: 8,\n                border: \"1px solid \".concat(palette.neutralLight),\n                borderRadius: effects.roundedCorner2,\n                boxSizing: 'border-box',\n                outline: 'none',\n                forcedColorAdjust: 'none',\n                selectors: (_a = {},\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = (_b = {\n                            outline: \"1px solid \".concat(palette.neutralSecondary)\n                        },\n                        _b[\"\".concat(HighContrastSelector)] = {\n                            outline: '2px solid CanvasText',\n                        },\n                        _b),\n                    _a),\n            },\n            useAlphaBackground ? alphaStyle : hueStyle,\n            className,\n        ],\n        sliderOverlay: [\n            'ms-ColorPicker-sliderOverlay',\n            {\n                content: '',\n                position: 'absolute',\n                left: 0,\n                right: 0,\n                top: 0,\n                bottom: 0,\n            },\n        ],\n        sliderThumb: [\n            'ms-ColorPicker-thumb',\n            'is-slider',\n            {\n                position: 'absolute',\n                width: 20,\n                height: 20,\n                background: 'white',\n                border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n                borderRadius: '50%',\n                boxShadow: effects.elevation8,\n                transform: 'translate(-50%, -50%)',\n                top: '50%',\n                forcedColorAdjust: 'auto',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ColorSlider.styles.js.map","import { styled } from '../../../Utilities';\nimport { ColorSliderBase } from './ColorSlider.base';\nimport { getStyles } from './ColorSlider.styles';\nexport var ColorSlider = styled(ColorSliderBase, getStyles, undefined, { scope: 'ColorSlider' });\n//# sourceMappingURL=ColorSlider.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given alpha value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateA(color, a) {\n    return __assign(__assign({}, color), { a: a, t: MAX_COLOR_ALPHA - a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateA.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given transparency value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateT(color, t) {\n    var a = MAX_COLOR_ALPHA - t;\n    return __assign(__assign({}, color), { t: t, a: a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateT.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, warnDeprecations, warn } from '../../Utilities';\nimport { TextField } from '../../TextField';\nimport { TooltipHost } from '../../Tooltip';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ColorRectangle } from './ColorRectangle/ColorRectangle';\nimport { ColorSlider } from './ColorSlider/ColorSlider';\nimport { MAX_COLOR_ALPHA, MAX_COLOR_RGB, MAX_HEX_LENGTH, MAX_RGBA_LENGTH, MIN_HEX_LENGTH, MIN_RGBA_LENGTH, HEX_REGEX, RGBA_REGEX, } from '../../utilities/color/consts';\n// These imports are separated to help with bundling\nimport { getColorFromString } from '../../utilities/color/getColorFromString';\nimport { getColorFromRGBA } from '../../utilities/color/getColorFromRGBA';\nimport { clamp } from '../../utilities/color/clamp';\nimport { updateA } from '../../utilities/color/updateA';\nimport { updateT } from '../../utilities/color/updateT';\nimport { updateH } from '../../utilities/color/updateH';\nimport { correctRGB } from '../../utilities/color/correctRGB';\nimport { correctHex } from '../../utilities/color/correctHex';\nimport { ColorRectangleBase } from './ColorRectangle/ColorRectangle.base';\nvar getClassNames = classNamesFunction();\nvar allColorComponents = ['hex', 'r', 'g', 'b', 'a', 't'];\nvar errorKeys = {\n    hex: 'hexError',\n    r: 'redError',\n    g: 'greenError',\n    b: 'blueError',\n    a: 'alphaError',\n    t: 'transparencyError',\n};\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorPickerBase = /** @class */ (function (_super) {\n    __extends(ColorPickerBase, _super);\n    function ColorPickerBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._onSVChanged = function (ev, color) {\n            _this._updateColor(ev, color);\n        };\n        _this._onHChanged = function (ev, h) {\n            _this._updateColor(ev, updateH(_this.state.color, h));\n        };\n        /** Callback for when the alpha/transparency slider changes */\n        _this._onATChanged = function (ev, value) {\n            var updater = _this.props.alphaType === 'transparency' ? updateT : updateA;\n            _this._updateColor(ev, updater(_this.state.color, Math.round(value)));\n        };\n        _this._onBlur = function (event) {\n            var _a;\n            var _b = _this.state, color = _b.color, editingColor = _b.editingColor;\n            if (!editingColor) {\n                return;\n            }\n            // If there was an intermediate incorrect value (such as too large or empty), correct it.\n            var value = editingColor.value, component = editingColor.component;\n            var isHex = component === 'hex';\n            var isAlpha = component === 'a';\n            var isTransparency = component === 't';\n            var minLength = isHex ? MIN_HEX_LENGTH : MIN_RGBA_LENGTH;\n            if (value.length >= minLength && (isHex || !isNaN(Number(value)))) {\n                // Real value. Clamp to appropriate length (hex) or range (rgba).\n                var newColor = void 0;\n                if (isHex) {\n                    newColor = getColorFromString('#' + correctHex(value));\n                }\n                else if (isAlpha || isTransparency) {\n                    var updater = isAlpha ? updateA : updateT;\n                    newColor = updater(color, clamp(Number(value), MAX_COLOR_ALPHA));\n                }\n                else {\n                    newColor = getColorFromRGBA(correctRGB(__assign(__assign({}, color), (_a = {}, _a[component] = Number(value), _a))));\n                }\n                // Update state and call onChange\n                _this._updateColor(event, newColor);\n            }\n            else {\n                // Intermediate value was an empty string or too short (hex only).\n                // Just clear the intermediate state and revert to the previous value.\n                _this.setState({ editingColor: undefined });\n            }\n        };\n        initializeComponentRef(_this);\n        var strings = props.strings; // always defined since it's in defaultProps\n        warnDeprecations('ColorPicker', props, {\n            hexLabel: 'strings.hex',\n            redLabel: 'strings.red',\n            greenLabel: 'strings.green',\n            blueLabel: 'strings.blue',\n            alphaLabel: 'strings.alpha',\n            alphaSliderHidden: 'alphaType',\n        });\n        // eslint-disable-next-line deprecation/deprecation\n        if (strings.hue) {\n            // warnDeprecations can't handle nested deprecated props\n            warn(\"ColorPicker property 'strings.hue' was used but has been deprecated. Use 'strings.hueAriaLabel' instead.\");\n        }\n        _this.state = {\n            color: _getColorFromProps(props) || getColorFromString('#ffffff'),\n        };\n        _this._textChangeHandlers = {};\n        for (var _i = 0, allColorComponents_1 = allColorComponents; _i < allColorComponents_1.length; _i++) {\n            var component = allColorComponents_1[_i];\n            _this._textChangeHandlers[component] = _this._onTextChange.bind(_this, component);\n        }\n        var defaultStrings = ColorPickerBase.defaultProps.strings;\n        _this._textLabels = {\n            /* eslint-disable deprecation/deprecation */\n            r: props.redLabel || strings.red || defaultStrings.red,\n            g: props.greenLabel || strings.green || defaultStrings.green,\n            b: props.blueLabel || strings.blue || defaultStrings.blue,\n            a: props.alphaLabel || strings.alpha || defaultStrings.alpha,\n            hex: props.hexLabel || strings.hex || defaultStrings.hex,\n            t: strings.transparency || defaultStrings.transparency,\n            /* eslint-enable deprecation/deprecation */\n        };\n        _this._strings = __assign(__assign(__assign({}, defaultStrings), { \n            // these aria labels default to the visible labels\n            alphaAriaLabel: _this._textLabels.a, transparencyAriaLabel: _this._textLabels.t }), strings);\n        return _this;\n    }\n    Object.defineProperty(ColorPickerBase.prototype, \"color\", {\n        get: function () {\n            return this.state.color;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ColorPickerBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n        // if props changed (as opposed to a state update), update the color\n        if (prevProps !== this.props) {\n            var color = _getColorFromProps(this.props);\n            if (color) {\n                this._updateColor(undefined, color);\n            }\n        }\n    };\n    ColorPickerBase.prototype.render = function () {\n        var _this = this;\n        var props = this.props;\n        var strings = this._strings;\n        var textLabels = this._textLabels;\n        var theme = props.theme, className = props.className, styles = props.styles, alphaType = props.alphaType, \n        // eslint-disable-next-line deprecation/deprecation\n        _a = props.alphaSliderHidden, \n        // eslint-disable-next-line deprecation/deprecation\n        alphaSliderHidden = _a === void 0 ? alphaType === 'none' : _a, tooltipProps = props.tooltipProps;\n        var color = this.state.color;\n        var useTransparency = alphaType === 'transparency';\n        var colorComponents = ['hex', 'r', 'g', 'b', useTransparency ? 't' : 'a'];\n        var atValue = useTransparency ? color.t : color.a;\n        var atLabel = useTransparency ? textLabels.t : textLabels.a;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            alphaType: alphaType,\n        });\n        var selectedColorAriaParts = [textLabels.r, color.r, textLabels.g, color.g, textLabels.b, color.b];\n        if (!alphaSliderHidden && typeof atValue === 'number') {\n            selectedColorAriaParts.push(atLabel, \"\".concat(atValue, \"%\"));\n        }\n        var ariaLabel = strings.rootAriaLabelFormat.replace('{0}', selectedColorAriaParts.join(' '));\n        return (React.createElement(\"div\", { className: classNames.root, role: \"group\", \"aria-label\": ariaLabel },\n            React.createElement(\"div\", { className: classNames.panel },\n                React.createElement(ColorRectangle, { color: color, onChange: this._onSVChanged, ariaLabel: strings.svAriaLabel, ariaDescription: strings.svAriaDescription, ariaValueFormat: strings.svAriaValueFormat, className: classNames.colorRectangle }),\n                React.createElement(\"div\", { className: classNames.flexContainer },\n                    React.createElement(\"div\", { className: classNames.flexSlider },\n                        React.createElement(ColorSlider, { className: \"is-hue\", type: \"hue\", \n                            // eslint-disable-next-line deprecation/deprecation\n                            ariaLabel: strings.hue || strings.hueAriaLabel, value: color.h, onChange: this._onHChanged }),\n                        !alphaSliderHidden && (React.createElement(ColorSlider, { className: \"is-alpha\", type: alphaType, ariaLabel: useTransparency ? strings.transparencyAriaLabel : strings.alphaAriaLabel, overlayColor: color.hex, value: atValue, onChange: this._onATChanged }))),\n                    props.showPreview && (React.createElement(\"div\", { className: classNames.flexPreviewBox },\n                        React.createElement(\"div\", { className: classNames.colorSquare + ' is-preview', style: {\n                                backgroundColor: color.str,\n                            } })))),\n                React.createElement(\"table\", { className: classNames.table, role: \"group\", cellPadding: \"0\", cellSpacing: \"0\" },\n                    React.createElement(\"thead\", null,\n                        React.createElement(\"tr\", { className: classNames.tableHeader },\n                            React.createElement(\"td\", { className: classNames.tableHexCell }, textLabels.hex),\n                            React.createElement(\"td\", null, textLabels.r),\n                            React.createElement(\"td\", null, textLabels.g),\n                            React.createElement(\"td\", null, textLabels.b),\n                            !alphaSliderHidden && React.createElement(\"td\", { className: classNames.tableAlphaCell }, atLabel))),\n                    React.createElement(\"tbody\", null,\n                        React.createElement(\"tr\", null, colorComponents.map(function (comp) {\n                            if ((comp === 'a' || comp === 't') && alphaSliderHidden) {\n                                return null;\n                            }\n                            var tooltipContent = _this._getTooltipValue(comp);\n                            return (React.createElement(\"td\", { key: comp },\n                                React.createElement(TooltipHost, __assign({ content: tooltipContent, directionalHint: DirectionalHint.bottomCenter, role: \"alert\" }, tooltipProps),\n                                    React.createElement(TextField, { className: classNames.input, onChange: _this._textChangeHandlers[comp], onBlur: _this._onBlur, value: _this._getDisplayValue(comp), spellCheck: false, ariaLabel: textLabels[comp], autoComplete: \"off\", invalid: !!tooltipContent }))));\n                        })))))));\n    };\n    ColorPickerBase.prototype._getDisplayValue = function (component) {\n        var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n        if (editingColor && editingColor.component === component) {\n            return editingColor.value;\n        }\n        if (component === 'hex') {\n            return color[component] || '';\n        }\n        else if (typeof color[component] === 'number' && !isNaN(color[component])) {\n            return String(color[component]);\n        }\n        return '';\n    };\n    /* Get the error tooltip value for a component if the component is in an invalid state */\n    ColorPickerBase.prototype._getTooltipValue = function (component) {\n        var editingColor = this.state.editingColor;\n        // if the component does not have an interim value, it is valid\n        if (!editingColor || editingColor.component !== component) {\n            return undefined;\n        }\n        var value = editingColor.value;\n        // for hex, do not show a tooltip if the value is between 3-6 characters\n        if (component === 'hex' && value.length >= MIN_HEX_LENGTH && value.length <= MAX_HEX_LENGTH) {\n            return undefined;\n        }\n        var errorKey = errorKeys[component];\n        return this._strings[errorKey];\n    };\n    ColorPickerBase.prototype._onTextChange = function (component, event, newValue) {\n        var _a;\n        var color = this.state.color;\n        var isHex = component === 'hex';\n        var isAlpha = component === 'a';\n        var isTransparency = component === 't';\n        // eslint-disable-next-line deprecation/deprecation\n        newValue = (newValue || '').substr(0, isHex ? MAX_HEX_LENGTH : MAX_RGBA_LENGTH);\n        // Ignore what the user typed if it contains invalid characters\n        var validCharsRegex = isHex ? HEX_REGEX : RGBA_REGEX;\n        if (!validCharsRegex.test(newValue)) {\n            return;\n        }\n        // Determine if the entry is valid (different methods for hex, alpha, and RGB)\n        var isValid;\n        if (newValue === '') {\n            // Empty string is obviously not valid\n            isValid = false;\n        }\n        else if (isHex) {\n            // Technically hex values of length 3 are also valid, but committing the value here would\n            // cause it to be automatically converted to a value of length 6, which may not be what the\n            // user wanted if they're not finished typing. (Values of length 3 will be committed on blur.)\n            isValid = newValue.length === MAX_HEX_LENGTH;\n        }\n        else if (isAlpha || isTransparency) {\n            isValid = Number(newValue) <= MAX_COLOR_ALPHA;\n        }\n        else {\n            isValid = Number(newValue) <= MAX_COLOR_RGB;\n        }\n        if (!isValid) {\n            // If the new value is an empty string or other invalid value, save that to display.\n            // (if the user still hasn't entered anything on blur, the last value is restored)\n            this.setState({ editingColor: { component: component, value: newValue } });\n        }\n        else if (String(color[component]) === newValue) {\n            // If the new value is the same as the current value, mostly ignore it.\n            // Exception is that if the user was previously editing the value (but hadn't yet entered\n            // a new valid value), we should clear the intermediate value.\n            if (this.state.editingColor) {\n                this.setState({ editingColor: undefined });\n            }\n        }\n        else {\n            // Should be a valid color. Update the value.\n            var newColor = isHex\n                ? getColorFromString('#' + newValue)\n                : isTransparency\n                    ? updateT(color, Number(newValue))\n                    : getColorFromRGBA(__assign(__assign({}, color), (_a = {}, _a[component] = Number(newValue), _a)));\n            this._updateColor(event, newColor);\n        }\n    };\n    /**\n     * Update the displayed color and call change handlers if appropriate.\n     * @param ev - Event if call was triggered by an event (undefined if triggered by props change)\n     * @param newColor - Updated color\n     */\n    ColorPickerBase.prototype._updateColor = function (ev, newColor) {\n        if (!newColor) {\n            return;\n        }\n        var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n        // For black or white, the hue can change without changing the string.\n        var isDifferentColor = newColor.h !== color.h || newColor.str !== color.str;\n        if (isDifferentColor || editingColor) {\n            // If ev is undefined, it's an update from props (which should be unconditionally respected\n            // and not call onChange).\n            if (ev && this.props.onChange) {\n                this.props.onChange(ev, newColor);\n                if (ev.defaultPrevented) {\n                    return;\n                }\n            }\n            this.setState({ color: newColor, editingColor: undefined });\n        }\n    };\n    ColorPickerBase.defaultProps = {\n        alphaType: 'alpha',\n        strings: {\n            rootAriaLabelFormat: 'Color picker, {0} selected.',\n            hex: 'Hex',\n            red: 'Red',\n            green: 'Green',\n            blue: 'Blue',\n            alpha: 'Alpha',\n            transparency: 'Transparency',\n            hueAriaLabel: 'Hue',\n            svAriaLabel: ColorRectangleBase.defaultProps.ariaLabel,\n            svAriaValueFormat: ColorRectangleBase.defaultProps.ariaValueFormat,\n            svAriaDescription: ColorRectangleBase.defaultProps.ariaDescription,\n            hexError: 'Hex values must be between 3 and 6 characters long',\n            alphaError: 'Alpha must be between 0 and 100',\n            transparencyError: 'Transparency must be between 0 and 100',\n            redError: 'Red must be between 0 and 255',\n            greenError: 'Green must be between 0 and 255',\n            blueError: 'Blue must be between 0 and 255',\n        },\n    };\n    return ColorPickerBase;\n}(React.Component));\nexport { ColorPickerBase };\nfunction _getColorFromProps(props) {\n    var color = props.color;\n    return typeof color === 'string' ? getColorFromString(color) : color;\n}\n//# sourceMappingURL=ColorPicker.base.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same saturation and value as `color` and the other components updated\n * to match the given hue.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateH(color, h) {\n    var _a = hsv2rgb(h, color.s, color.v), r = _a.r, g = _a.g, b = _a.b;\n    var hex = rgb2hex(r, g, b);\n    return __assign(__assign({}, color), { h: h, r: r, g: g, b: b, hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateH.js.map","import { MIN_HEX_LENGTH, MAX_HEX_LENGTH } from './consts';\n/**\n * Corrects a hex color to have length 3 or 6. Defaults to white if too short.\n * Does NOT check anything besides the length (such as valid characters) and does NOT handle\n * hex values starting with # sign.\n */\nexport function correctHex(hex) {\n    if (!hex || hex.length < MIN_HEX_LENGTH) {\n        return 'ffffff'; // not a valid color--default to white\n    }\n    if (hex.length >= MAX_HEX_LENGTH) {\n        return hex.substring(0, MAX_HEX_LENGTH);\n    }\n    return hex.substring(0, MIN_HEX_LENGTH);\n}\n//# sourceMappingURL=correctHex.js.map","import { MAX_COLOR_ALPHA, MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Corrects an RGB color to fall within the valid range.  */\nexport function correctRGB(color) {\n    return {\n        r: clamp(color.r, MAX_COLOR_RGB),\n        g: clamp(color.g, MAX_COLOR_RGB),\n        b: clamp(color.b, MAX_COLOR_RGB),\n        a: typeof color.a === 'number' ? clamp(color.a, MAX_COLOR_ALPHA) : color.a,\n    };\n}\n//# sourceMappingURL=correctRGB.js.map","export var getStyles = function (props) {\n    var className = props.className, theme = props.theme, alphaType = props.alphaType;\n    return {\n        root: [\n            'ms-ColorPicker',\n            theme.fonts.medium,\n            {\n                position: 'relative',\n                maxWidth: 300,\n            },\n            className,\n        ],\n        panel: [\n            'ms-ColorPicker-panel',\n            {\n                padding: '16px',\n            },\n        ],\n        table: [\n            'ms-ColorPicker-table',\n            {\n                tableLayout: 'fixed',\n                width: '100%',\n                selectors: {\n                    'tbody td:last-of-type .ms-ColorPicker-input': {\n                        paddingRight: 0,\n                    },\n                },\n            },\n        ],\n        tableHeader: [\n            theme.fonts.small,\n            {\n                selectors: {\n                    td: {\n                        paddingBottom: 4,\n                    },\n                },\n            },\n        ],\n        tableHexCell: {\n            width: '25%',\n        },\n        // Account for \"Transparency\" being a longer word\n        tableAlphaCell: alphaType === 'transparency' && {\n            width: '22%',\n        },\n        colorSquare: [\n            'ms-ColorPicker-colorSquare',\n            {\n                width: 48,\n                height: 48,\n                margin: '0 0 0 8px',\n                border: '1px solid #c8c6c4',\n                forcedColorAdjust: 'none',\n            },\n        ],\n        flexContainer: {\n            display: 'flex',\n        },\n        flexSlider: {\n            flexGrow: '1',\n        },\n        flexPreviewBox: {\n            flexGrow: '0',\n        },\n        input: [\n            'ms-ColorPicker-input',\n            {\n                width: '100%',\n                border: 'none',\n                boxSizing: 'border-box',\n                height: 30,\n                selectors: {\n                    '&.ms-TextField': {\n                        paddingRight: 4,\n                    },\n                    '& .ms-TextField-field': {\n                        minWidth: 'auto',\n                        padding: 5,\n                        textOverflow: 'clip',\n                    },\n                },\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ColorPicker.styles.js.map","import { styled } from '../../Utilities';\nimport { ColorPickerBase } from './ColorPicker.base';\nimport { getStyles } from './ColorPicker.styles';\nexport var ColorPicker = styled(ColorPickerBase, getStyles, undefined, { scope: 'ColorPicker' });\n//# sourceMappingURL=ColorPicker.js.map","var _a, _b;\nimport { __assign } from \"tslib\";\nimport { FontWeights, concatStyleSets, getFocusStyle, HighContrastSelector, getPlaceholderStyles, hiddenContentStyle, getInputFocusStyle, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar ComboBoxHeight = 32;\nvar ComboBoxLineHeight = 30;\nvar ComboBoxCaretDownWidth = 32;\nvar ComboBoxOptionHeight = 36;\nvar getDisabledStyles = memoizeFunction(function (theme) {\n    var _a;\n    var semanticColors = theme.semanticColors;\n    return {\n        backgroundColor: semanticColors.disabledBackground,\n        color: semanticColors.disabledText,\n        cursor: 'default',\n        selectors: (_a = {\n                ':after': {\n                    borderColor: semanticColors.disabledBackground,\n                }\n            },\n            _a[HighContrastSelector] = {\n                color: 'GrayText',\n                selectors: {\n                    ':after': {\n                        borderColor: 'GrayText',\n                    },\n                },\n            },\n            _a),\n    };\n});\nvar listOptionHighContrastStyles = {\n    selectors: (_a = {},\n        _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n        _a),\n};\nvar inputHighContrastStyles = {\n    selectors: (_b = {},\n        _b[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n        _b),\n};\nexport var getOptionStyles = memoizeFunction(function (theme, customStylesForAllOptions, customOptionStylesForCurrentOption, isPending, isHidden, isSelected) {\n    var _a;\n    var palette = theme.palette, semanticColors = theme.semanticColors;\n    var option = {\n        textHoveredColor: semanticColors.menuItemTextHovered,\n        textSelectedColor: palette.neutralDark,\n        textDisabledColor: semanticColors.disabledText,\n        backgroundHoveredColor: semanticColors.menuItemBackgroundHovered,\n        backgroundPressedColor: semanticColors.menuItemBackgroundPressed,\n    };\n    var optionStyles = {\n        root: [\n            theme.fonts.medium,\n            {\n                backgroundColor: isPending ? option.backgroundHoveredColor : 'transparent',\n                boxSizing: 'border-box',\n                cursor: 'pointer',\n                display: isHidden ? 'none' : 'block',\n                width: '100%',\n                height: 'auto',\n                minHeight: ComboBoxOptionHeight,\n                lineHeight: '20px',\n                padding: '0 8px',\n                position: 'relative',\n                borderWidth: '1px',\n                borderStyle: 'solid',\n                borderColor: 'transparent',\n                borderRadius: 0,\n                wordWrap: 'break-word',\n                overflowWrap: 'break-word',\n                textAlign: 'left',\n                selectors: __assign(__assign((_a = {}, _a[HighContrastSelector] = {\n                    border: 'none',\n                    borderColor: 'Background',\n                }, _a), (!isHidden && {\n                    '&.ms-Checkbox': {\n                        display: 'flex',\n                        alignItems: 'center',\n                    },\n                })), { '&.ms-Button--command:hover:active': {\n                        backgroundColor: option.backgroundPressedColor,\n                    }, '.ms-Checkbox-label': {\n                        width: '100%',\n                    } }),\n            },\n            isSelected\n                ? [\n                    {\n                        backgroundColor: 'transparent',\n                        color: option.textSelectedColor,\n                        selectors: {\n                            ':hover': [\n                                {\n                                    backgroundColor: option.backgroundHoveredColor,\n                                },\n                                listOptionHighContrastStyles,\n                            ],\n                        },\n                    },\n                    getFocusStyle(theme, { inset: -1, isFocusedOnly: false }),\n                    listOptionHighContrastStyles,\n                ]\n                : [],\n        ],\n        rootHovered: {\n            backgroundColor: option.backgroundHoveredColor,\n            color: option.textHoveredColor,\n        },\n        rootFocused: {\n            backgroundColor: option.backgroundHoveredColor,\n        },\n        rootDisabled: {\n            color: option.textDisabledColor,\n            cursor: 'default',\n        },\n        optionText: {\n            overflow: 'hidden',\n            whiteSpace: 'nowrap',\n            textOverflow: 'ellipsis',\n            minWidth: '0px',\n            maxWidth: '100%',\n            wordWrap: 'break-word',\n            overflowWrap: 'break-word',\n            display: 'inline-block',\n        },\n        optionTextWrapper: {\n            maxWidth: '100%',\n            display: 'flex',\n            alignItems: 'center',\n        },\n    };\n    return concatStyleSets(optionStyles, customStylesForAllOptions, customOptionStylesForCurrentOption);\n});\nexport var getCaretDownButtonStyles = memoizeFunction(function (theme, customStyles) {\n    var _a, _b;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var caret = {\n        buttonTextColor: semanticColors.bodySubtext,\n        buttonTextHoveredCheckedColor: semanticColors.buttonTextChecked,\n        buttonBackgroundHoveredColor: semanticColors.listItemBackgroundHovered,\n        buttonBackgroundCheckedColor: semanticColors.listItemBackgroundChecked,\n        buttonBackgroundCheckedHoveredColor: semanticColors.listItemBackgroundCheckedHovered,\n    };\n    var buttonHighContrastStyles = {\n        selectors: (_a = {},\n            _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n            _a),\n    };\n    var styles = {\n        root: {\n            color: caret.buttonTextColor,\n            fontSize: fonts.small.fontSize,\n            position: 'absolute',\n            top: 0,\n            height: '100%',\n            lineHeight: ComboBoxLineHeight,\n            width: ComboBoxCaretDownWidth,\n            textAlign: 'center',\n            cursor: 'default',\n            selectors: (_b = {},\n                _b[HighContrastSelector] = __assign({ backgroundColor: 'ButtonFace', borderColor: 'ButtonText', color: 'ButtonText' }, getHighContrastNoAdjustStyle()),\n                _b),\n        },\n        icon: {\n            fontSize: fonts.small.fontSize,\n        },\n        rootHovered: [\n            {\n                backgroundColor: caret.buttonBackgroundHoveredColor,\n                color: caret.buttonTextHoveredCheckedColor,\n                cursor: 'pointer',\n            },\n            buttonHighContrastStyles,\n        ],\n        rootPressed: [\n            {\n                backgroundColor: caret.buttonBackgroundCheckedColor,\n                color: caret.buttonTextHoveredCheckedColor,\n            },\n            buttonHighContrastStyles,\n        ],\n        rootChecked: [\n            {\n                backgroundColor: caret.buttonBackgroundCheckedColor,\n                color: caret.buttonTextHoveredCheckedColor,\n            },\n            buttonHighContrastStyles,\n        ],\n        rootCheckedHovered: [\n            {\n                backgroundColor: caret.buttonBackgroundCheckedHoveredColor,\n                color: caret.buttonTextHoveredCheckedColor,\n            },\n            buttonHighContrastStyles,\n        ],\n        rootDisabled: [\n            getDisabledStyles(theme),\n            {\n                position: 'absolute',\n            },\n        ],\n    };\n    return concatStyleSets(styles, customStyles);\n});\nexport var getStyles = memoizeFunction(function (theme, customStyles, comboBoxOptionWidth) {\n    var _a, _b, _c, _d, _e, _f;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n    var root = {\n        textColor: semanticColors.inputText,\n        borderColor: semanticColors.inputBorder,\n        borderHoveredColor: semanticColors.inputBorderHovered,\n        borderPressedColor: semanticColors.inputFocusBorderAlt,\n        borderFocusedColor: semanticColors.inputFocusBorderAlt,\n        backgroundColor: semanticColors.inputBackground,\n        erroredColor: semanticColors.errorText,\n    };\n    var option = {\n        headerTextColor: semanticColors.menuHeader,\n        dividerBorderColor: semanticColors.bodyDivider,\n    };\n    // placeholder style variables\n    var placeholderHighContrastStyles = {\n        selectors: (_a = {},\n            _a[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _a),\n    };\n    var placeholderStyles = [\n        {\n            color: semanticColors.inputPlaceholderText,\n        },\n        placeholderHighContrastStyles,\n    ];\n    var placeholderStylesHovered = [\n        {\n            color: semanticColors.inputTextHovered,\n        },\n        placeholderHighContrastStyles,\n    ];\n    var disabledPlaceholderStyles = [\n        {\n            color: semanticColors.disabledText,\n        },\n        placeholderHighContrastStyles,\n    ];\n    var ComboBoxRootHighContrastFocused = __assign(__assign({ color: 'HighlightText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()), { selectors: {\n            ':after': {\n                borderColor: 'Highlight',\n            },\n        } });\n    var focusBorderStyles = getInputFocusStyle(root.borderPressedColor, effects.roundedCorner2, 'border', 0);\n    var styles = {\n        container: {},\n        label: {},\n        labelDisabled: {},\n        root: [\n            theme.fonts.medium,\n            {\n                boxShadow: 'none',\n                marginLeft: '0',\n                paddingRight: ComboBoxCaretDownWidth,\n                paddingLeft: 9,\n                color: root.textColor,\n                position: 'relative',\n                outline: '0',\n                userSelect: 'none',\n                backgroundColor: root.backgroundColor,\n                cursor: 'text',\n                display: 'block',\n                height: ComboBoxHeight,\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n                boxSizing: 'border-box',\n                selectors: {\n                    '.ms-Label': {\n                        display: 'inline-block',\n                        marginBottom: '8px',\n                    },\n                    '&.is-open': {\n                        selectors: (_b = {},\n                            _b[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n                            _b),\n                    },\n                    // setting border using pseudo-element here in order to\n                    // prevent chevron button to overlap ComboBox border under certain resolutions\n                    ':after': {\n                        pointerEvents: 'none',\n                        content: \"''\",\n                        position: 'absolute',\n                        left: 0,\n                        top: 0,\n                        bottom: 0,\n                        right: 0,\n                        borderWidth: '1px',\n                        borderStyle: 'solid',\n                        borderColor: root.borderColor,\n                        borderRadius: effects.roundedCorner2,\n                    },\n                },\n            },\n        ],\n        rootHovered: {\n            selectors: (_c = {\n                    ':after': {\n                        borderColor: root.borderHoveredColor,\n                    },\n                    '.ms-ComboBox-Input': [\n                        {\n                            color: semanticColors.inputTextHovered,\n                        },\n                        getPlaceholderStyles(placeholderStylesHovered),\n                        inputHighContrastStyles,\n                    ]\n                },\n                _c[HighContrastSelector] = __assign(__assign({ color: 'HighlightText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()), { selectors: {\n                        ':after': {\n                            borderColor: 'Highlight',\n                        },\n                    } }),\n                _c),\n        },\n        rootPressed: [\n            {\n                position: 'relative',\n                selectors: (_d = {},\n                    _d[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n                    _d),\n            },\n        ],\n        rootFocused: [\n            {\n                selectors: (_e = {\n                        '.ms-ComboBox-Input': [\n                            {\n                                color: semanticColors.inputTextHovered,\n                            },\n                            inputHighContrastStyles,\n                        ]\n                    },\n                    _e[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n                    _e),\n            },\n            focusBorderStyles,\n        ],\n        rootDisabled: getDisabledStyles(theme),\n        rootError: {\n            selectors: {\n                ':after': {\n                    borderColor: root.erroredColor,\n                },\n                ':hover:after': {\n                    borderColor: semanticColors.inputBorderHovered,\n                },\n            },\n        },\n        rootDisallowFreeForm: {},\n        input: [\n            getPlaceholderStyles(placeholderStyles),\n            {\n                backgroundColor: root.backgroundColor,\n                color: root.textColor,\n                boxSizing: 'border-box',\n                width: '100%',\n                height: '100%',\n                borderStyle: 'none',\n                outline: 'none',\n                font: 'inherit',\n                textOverflow: 'ellipsis',\n                padding: '0',\n                selectors: {\n                    '::-ms-clear': {\n                        display: 'none',\n                    },\n                },\n            },\n            inputHighContrastStyles,\n        ],\n        inputDisabled: [getDisabledStyles(theme), getPlaceholderStyles(disabledPlaceholderStyles)],\n        errorMessage: [\n            theme.fonts.small,\n            {\n                color: root.erroredColor,\n                marginTop: '5px',\n            },\n        ],\n        callout: {\n            boxShadow: effects.elevation8,\n        },\n        optionsContainerWrapper: {\n            width: comboBoxOptionWidth,\n        },\n        optionsContainer: {\n            display: 'block',\n        },\n        screenReaderText: hiddenContentStyle,\n        header: [\n            fonts.medium,\n            {\n                fontWeight: FontWeights.semibold,\n                color: option.headerTextColor,\n                backgroundColor: 'none',\n                borderStyle: 'none',\n                height: ComboBoxOptionHeight,\n                lineHeight: ComboBoxOptionHeight,\n                cursor: 'default',\n                padding: '0 8px',\n                userSelect: 'none',\n                textAlign: 'left',\n                selectors: (_f = {},\n                    _f[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                    _f),\n            },\n        ],\n        divider: {\n            height: 1,\n            backgroundColor: option.dividerBorderColor,\n        },\n    };\n    return concatStyleSets(styles, customStyles);\n});\n//# sourceMappingURL=ComboBox.styles.js.map","import { __assign, __decorate, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { Autofill } from '../../Autofill';\nimport { initializeComponentRef, css, customizable, divProperties, findElementRecursive, findIndex, focusAsync, getId, getNativeProps, isIOS, isMac, KeyCodes, shallowCompare, mergeAriaAttributeValues, warnMutuallyExclusive, Async, EventGroup, getPropsWithDefaults, } from '../../Utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { Checkbox } from '../../Checkbox';\nimport { getCaretDownButtonStyles, getOptionStyles, getStyles } from './ComboBox.styles';\nimport { getClassNames, getComboBoxOptionClassNames } from './ComboBox.classNames';\nimport { Label } from '../../Label';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions } from '../../SelectableOption';\nimport { CommandButton, IconButton } from '../../Button';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { getChildren } from '@fluentui/utilities';\nvar SearchDirection;\n(function (SearchDirection) {\n    SearchDirection[SearchDirection[\"backward\"] = -1] = \"backward\";\n    SearchDirection[SearchDirection[\"none\"] = 0] = \"none\";\n    SearchDirection[SearchDirection[\"forward\"] = 1] = \"forward\";\n})(SearchDirection || (SearchDirection = {}));\nvar HoverStatus;\n(function (HoverStatus) {\n    /** Used when the user was hovering and has since moused out of the menu items */\n    HoverStatus[HoverStatus[\"clearAll\"] = -2] = \"clearAll\";\n    /** Default \"normal\" state, when no hover has happened or a hover is in progress */\n    HoverStatus[HoverStatus[\"default\"] = -1] = \"default\";\n})(HoverStatus || (HoverStatus = {}));\nvar ScrollIdleDelay = 250; /* ms */\nvar TouchIdleDelay = 500; /* ms */\n/**\n * This is used to clear any pending autocomplete text (used when autocomplete is true and\n * allowFreeform is false)\n */\nvar ReadOnlyPendingAutoCompleteTimeout = 1000; /* ms */\n/**\n * Internal component that is used to wrap all ComboBox options.\n * This is used to customize when we want to re-render components,\n * so we don't re-render every option every time render is executed.\n */\nvar ComboBoxOptionWrapper = React.memo(function (_a) {\n    var render = _a.render;\n    return render();\n}, function (_a, _b) {\n    var oldRender = _a.render, oldProps = __rest(_a, [\"render\"]);\n    var newRender = _b.render, newProps = __rest(_b, [\"render\"]);\n    // The render function will always be different, so we ignore that prop\n    return shallowCompare(oldProps, newProps);\n});\nvar COMPONENT_NAME = 'ComboBox';\nvar DEFAULT_PROPS = {\n    options: [],\n    allowFreeform: false,\n    autoComplete: 'on',\n    buttonIconProps: { iconName: 'ChevronDown' },\n};\nfunction useOptionsState(_a) {\n    var options = _a.options, defaultSelectedKey = _a.defaultSelectedKey, selectedKey = _a.selectedKey;\n    /** The currently selected indices */\n    var _b = React.useState(function () {\n        return getSelectedIndices(options, buildDefaultSelectedKeys(defaultSelectedKey, selectedKey));\n    }), selectedIndices = _b[0], setSelectedIndices = _b[1];\n    /** The options currently available for the callout */\n    var _c = React.useState(options), currentOptions = _c[0], setCurrentOptions = _c[1];\n    /** This value is used for the autocomplete hint value */\n    var _d = React.useState(), suggestedDisplayValue = _d[0], setSuggestedDisplayValue = _d[1];\n    React.useEffect(function () {\n        if (selectedKey !== undefined) {\n            var selectedKeys = buildSelectedKeys(selectedKey);\n            var indices = getSelectedIndices(options, selectedKeys);\n            setSelectedIndices(indices);\n        }\n        setCurrentOptions(options);\n    }, [options, selectedKey]);\n    React.useEffect(function () {\n        if (selectedKey === null) {\n            setSuggestedDisplayValue(undefined);\n        }\n    }, [selectedKey]);\n    return [\n        selectedIndices,\n        setSelectedIndices,\n        currentOptions,\n        setCurrentOptions,\n        suggestedDisplayValue,\n        setSuggestedDisplayValue,\n    ];\n}\nexport var ComboBox = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var _a = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _a.ref, props = __rest(_a, [\"ref\"]);\n    var rootRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(rootRef, forwardedRef);\n    var _b = useOptionsState(props), selectedIndices = _b[0], setSelectedIndices = _b[1], currentOptions = _b[2], setCurrentOptions = _b[3], suggestedDisplayValue = _b[4], setSuggestedDisplayValue = _b[5];\n    return (React.createElement(ComboBoxInternal, __assign({}, props, { hoisted: {\n            mergedRootRef: mergedRootRef,\n            rootRef: rootRef,\n            selectedIndices: selectedIndices,\n            setSelectedIndices: setSelectedIndices,\n            currentOptions: currentOptions,\n            setCurrentOptions: setCurrentOptions,\n            suggestedDisplayValue: suggestedDisplayValue,\n            setSuggestedDisplayValue: setSuggestedDisplayValue,\n        } })));\n});\nComboBox.displayName = COMPONENT_NAME;\n/**\n * Depth-first search to find the first descendant element where the match function returns true.\n * @param element - element to start searching at\n * @param match - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nfunction findFirstDescendant(element, match) {\n    var children = getChildren(element);\n    // For loop is used because forEach cannot be stopped.\n    for (var index = 0; index < children.length; index++) {\n        var child = children[index];\n        if (match(child)) {\n            return child;\n        }\n        var candidate = findFirstDescendant(child, match);\n        if (candidate) {\n            return candidate;\n        }\n    }\n    return null;\n}\nvar ComboBoxInternal = /** @class */ (function (_super) {\n    __extends(ComboBoxInternal, _super);\n    function ComboBoxInternal(props) {\n        var _this = _super.call(this, props) || this;\n        /** The input aspect of the combo box */\n        _this._autofill = React.createRef();\n        /** The wrapping div of the input and button */\n        _this._comboBoxWrapper = React.createRef();\n        /** The callout element */\n        _this._comboBoxMenu = React.createRef();\n        /** The menu item element that is currently selected */\n        _this._selectedElement = React.createRef();\n        // props to prevent dismiss on scroll/resize immediately after opening\n        _this._overrideScrollDismiss = false;\n        /**\n         * {@inheritdoc}\n         */\n        _this.focus = function (shouldOpenOnFocus, useFocusAsync) {\n            if (_this.props.disabled) {\n                return;\n            }\n            if (_this._autofill.current) {\n                if (useFocusAsync) {\n                    focusAsync(_this._autofill.current);\n                }\n                else {\n                    _this._autofill.current.focus();\n                }\n                if (shouldOpenOnFocus) {\n                    _this.setState({\n                        isOpen: true,\n                    });\n                }\n            }\n            // Programmatically setting focus means that there is nothing else that needs to be done\n            // Focus is now contained\n            if (!_this._hasFocus()) {\n                _this.setState({ focusState: 'focused' });\n            }\n        };\n        /**\n         * Close menu callout if it is open\n         */\n        _this.dismissMenu = function () {\n            var isOpen = _this.state.isOpen;\n            isOpen && _this.setState({ isOpen: false });\n        };\n        /**\n         * componentWillReceiveProps handler for the auto fill component\n         * Checks/updates the input value to set, if needed\n         * @param defaultVisibleValue - the defaultVisibleValue that got passed\n         *  in to the auto fill's componentWillReceiveProps\n         * @returns - the updated value to set, if needed\n         */\n        _this._onUpdateValueInAutofillWillReceiveProps = function () {\n            var comboBox = _this._autofill.current;\n            if (!comboBox) {\n                return null;\n            }\n            if (comboBox.value === null || comboBox.value === undefined) {\n                return null;\n            }\n            return normalizeToString(_this._currentVisibleValue);\n        };\n        _this._renderComboBoxWrapper = function (multiselectAccessibleText, errorMessageId) {\n            var _a = _this.props, label = _a.label, disabled = _a.disabled, ariaLabel = _a.ariaLabel, _b = _a.ariaDescribedBy, ariaDescribedBy = _b === void 0 ? _this.props['aria-describedby'] : _b, required = _a.required, errorMessage = _a.errorMessage, buttonIconProps = _a.buttonIconProps, isButtonAriaHidden = _a.isButtonAriaHidden, title = _a.title, placeholderProp = _a.placeholder, tabIndex = _a.tabIndex, autofill = _a.autofill, iconButtonProps = _a.iconButtonProps, suggestedDisplayValue = _a.hoisted.suggestedDisplayValue;\n            var _c = _this.state, ariaActiveDescendantValue = _c.ariaActiveDescendantValue, isOpen = _c.isOpen;\n            // If the combo box has focus, is multiselect, and has a display string, then use that placeholder\n            // so that the selected items don't appear to vanish. This is not ideal but it's the only reasonable way\n            // to correct the behavior where the input is cleared so the user can type. If a full refactor is done, then this\n            // should be removed and the multiselect combo box should behave like a picker.\n            var placeholder = _this._hasFocus() && _this.props.multiSelect && multiselectAccessibleText\n                ? multiselectAccessibleText\n                : placeholderProp;\n            var labelledBy = [_this.props['aria-labelledby'], label && _this._id + '-label'].join(' ').trim();\n            var labelProps = {\n                'aria-labelledby': labelledBy ? labelledBy : undefined,\n                'aria-label': ariaLabel && !label ? ariaLabel : undefined,\n            };\n            return (React.createElement(\"div\", { \"data-ktp-target\": true, ref: _this._comboBoxWrapper, id: _this._id + 'wrapper', className: _this._classNames.root, \"aria-owns\": isOpen ? _this._id + '-list' : undefined },\n                React.createElement(Autofill, __assign({ \"data-ktp-execute-target\": true, \"data-is-interactable\": !disabled, componentRef: _this._autofill, id: _this._id + '-input', className: _this._classNames.input, type: \"text\", onFocus: _this._onFocus, onBlur: _this._onBlur, onKeyDown: _this._onInputKeyDown, onKeyUp: _this._onInputKeyUp, onClick: _this._onAutofillClick, onTouchStart: _this._onTouchStart, onInputValueChange: _this._onInputChange, \"aria-expanded\": isOpen, \"aria-autocomplete\": _this._getAriaAutoCompleteValue(), role: \"combobox\", readOnly: disabled }, labelProps, { \"aria-describedby\": errorMessage !== undefined ? mergeAriaAttributeValues(ariaDescribedBy, errorMessageId) : ariaDescribedBy, \"aria-activedescendant\": ariaActiveDescendantValue, \"aria-required\": required, \"aria-disabled\": disabled, \"aria-controls\": isOpen ? _this._id + '-list' : undefined, spellCheck: false, defaultVisibleValue: _this._currentVisibleValue, suggestedDisplayValue: suggestedDisplayValue, updateValueInWillReceiveProps: _this._onUpdateValueInAutofillWillReceiveProps, shouldSelectFullInputValueInComponentDidUpdate: _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate, title: title, preventValueSelection: !_this._hasFocus(), placeholder: placeholder, tabIndex: disabled ? -1 : tabIndex }, autofill)),\n                React.createElement(IconButton, __assign({ className: 'ms-ComboBox-CaretDown-button', styles: _this._getCaretButtonStyles(), role: isButtonAriaHidden ? 'presentation' : undefined, \"aria-hidden\": isButtonAriaHidden }, (!isButtonAriaHidden ? labelProps : undefined), { \"data-is-focusable\": false, tabIndex: -1, onClick: _this._onComboBoxClick, onBlur: _this._onBlur, iconProps: buttonIconProps, disabled: disabled, checked: isOpen }, iconButtonProps))));\n        };\n        /**\n         * componentDidUpdate handler for the auto fill component\n         *\n         * @param defaultVisibleValue - the current defaultVisibleValue in the auto fill's componentDidUpdate\n         * @param suggestedDisplayValue - the current suggestedDisplayValue in the auto fill's componentDidUpdate\n         * @returns - should the full value of the input be selected?\n         * True if the defaultVisibleValue equals the suggestedDisplayValue, false otherwise\n         */\n        _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate = function () {\n            return _this._currentVisibleValue === _this.props.hoisted.suggestedDisplayValue;\n        };\n        /**\n         * Get the correct value to pass to the input\n         * to show to the user based off of the current props and state\n         * @returns the value to pass to the input\n         */\n        _this._getVisibleValue = function () {\n            var _a = _this.props, text = _a.text, allowFreeform = _a.allowFreeform, allowFreeInput = _a.allowFreeInput, autoComplete = _a.autoComplete, _b = _a.hoisted, suggestedDisplayValue = _b.suggestedDisplayValue, selectedIndices = _b.selectedIndices, currentOptions = _b.currentOptions;\n            var _c = _this.state, currentPendingValueValidIndex = _c.currentPendingValueValidIndex, currentPendingValue = _c.currentPendingValue, isOpen = _c.isOpen;\n            var currentPendingIndexValid = indexWithinBounds(currentOptions, currentPendingValueValidIndex);\n            // If the user passed is a value prop, use that\n            // unless we are open and have a valid current pending index\n            if (!(isOpen && currentPendingIndexValid) &&\n                (text || text === '') &&\n                (currentPendingValue === null || currentPendingValue === undefined)) {\n                return text;\n            }\n            if (_this.props.multiSelect) {\n                // Multi-select\n                if (_this._hasFocus()) {\n                    var index = -1;\n                    if (autoComplete === 'on' && currentPendingIndexValid) {\n                        index = currentPendingValueValidIndex;\n                    }\n                    return _this._getPendingString(currentPendingValue, currentOptions, index);\n                }\n                else {\n                    return _this._getMultiselectDisplayString(selectedIndices, currentOptions, suggestedDisplayValue);\n                }\n            }\n            else {\n                // Single-select\n                var index = _this._getFirstSelectedIndex();\n                if (allowFreeform || allowFreeInput) {\n                    // If we are allowing freeform/free input and autocomplete is also true\n                    // and we've got a pending value that matches an option, remember\n                    // the matched option's index\n                    if (autoComplete === 'on' && currentPendingIndexValid) {\n                        index = currentPendingValueValidIndex;\n                    }\n                    // Since we are allowing freeform, if there is currently a pending value, use that\n                    // otherwise use the index determined above (falling back to '' if we did not get a valid index)\n                    return _this._getPendingString(currentPendingValue, currentOptions, index);\n                }\n                else {\n                    // If we are not allowing freeform and have a valid index that matches the pending value,\n                    // we know we will need some version of the pending value\n                    if (currentPendingIndexValid && autoComplete === 'on') {\n                        // If autoComplete is on, return the raw pending value, otherwise remember\n                        // the matched option's index\n                        index = currentPendingValueValidIndex;\n                        return normalizeToString(currentPendingValue);\n                    }\n                    else if (!_this.state.isOpen && currentPendingValue) {\n                        return indexWithinBounds(currentOptions, index)\n                            ? currentPendingValue\n                            : normalizeToString(suggestedDisplayValue);\n                    }\n                    else {\n                        return indexWithinBounds(currentOptions, index)\n                            ? getPreviewText(currentOptions[index])\n                            : normalizeToString(suggestedDisplayValue);\n                    }\n                }\n            }\n        };\n        /**\n         * Handler for typing changes on the input\n         * @param updatedValue - the newly changed value\n         */\n        _this._onInputChange = function (updatedValue) {\n            if (_this.props.disabled) {\n                _this._handleInputWhenDisabled(null /* event */);\n                return;\n            }\n            if (_this.props.onInputValueChange) {\n                _this.props.onInputValueChange(updatedValue);\n            }\n            _this.props.allowFreeform || _this.props.allowFreeInput\n                ? _this._processInputChangeWithFreeform(updatedValue)\n                : _this._processInputChangeWithoutFreeform(updatedValue);\n        };\n        /**\n         * Focus (and select) the content of the input\n         * and set the focused state\n         */\n        _this._onFocus = function () {\n            var _a, _b;\n            (_b = (_a = _this._autofill.current) === null || _a === void 0 ? void 0 : _a.inputElement) === null || _b === void 0 ? void 0 : _b.select();\n            if (!_this._hasFocus()) {\n                _this.setState({ focusState: 'focusing' });\n            }\n        };\n        /**\n         * Callback issued when the options should be resolved, if they have been updated or\n         * if they need to be passed in the first time. This only does work if an onResolveOptions\n         * callback was passed in\n         */\n        _this._onResolveOptions = function () {\n            if (_this.props.onResolveOptions) {\n                // get the options\n                var newOptions_1 = _this.props.onResolveOptions(__spreadArray([], _this.props.hoisted.currentOptions, true));\n                // Check to see if the returned value is an array, if it is update the state\n                // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n                // If it is then resolve it asynchronously.\n                if (Array.isArray(newOptions_1)) {\n                    _this.props.hoisted.setCurrentOptions(newOptions_1);\n                }\n                else if (newOptions_1 && newOptions_1.then) {\n                    // Ensure that the promise will only use the callback if it was the most recent one\n                    // and update the state when the promise returns\n                    _this._currentPromise = newOptions_1;\n                    newOptions_1.then(function (newOptionsFromPromise) {\n                        if (newOptions_1 === _this._currentPromise) {\n                            _this.props.hoisted.setCurrentOptions(newOptionsFromPromise);\n                        }\n                    });\n                }\n            }\n        };\n        /**\n         * OnBlur handler. Set the focused state to false\n         * and submit any pending value\n         */\n        // eslint-disable-next-line deprecation/deprecation\n        _this._onBlur = function (event) {\n            var _a, _b;\n            // Do nothing if the blur is coming from something\n            // inside the comboBox root or the comboBox menu since\n            // it we are not really blurring from the whole comboBox\n            var relatedTarget = event.relatedTarget;\n            if (event.relatedTarget === null) {\n                // In IE11, due to lack of support, event.relatedTarget is always\n                // null making every onBlur call to be \"outside\" of the ComboBox\n                // even when it's not. Using document.activeElement is another way\n                // for us to be able to get what the relatedTarget without relying\n                // on the event\n                relatedTarget = document.activeElement;\n            }\n            if (relatedTarget) {\n                var isBlurFromComboBoxTitle = (_a = _this.props.hoisted.rootRef.current) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget);\n                var isBlurFromComboBoxMenu = (_b = _this._comboBoxMenu.current) === null || _b === void 0 ? void 0 : _b.contains(relatedTarget);\n                var isBlurFromComboBoxMenuAncestor = _this._comboBoxMenu.current &&\n                    findElementRecursive(_this._comboBoxMenu.current, function (element) { return element === relatedTarget; });\n                if (isBlurFromComboBoxTitle || isBlurFromComboBoxMenu || isBlurFromComboBoxMenuAncestor) {\n                    if (isBlurFromComboBoxMenuAncestor &&\n                        _this._hasFocus() &&\n                        (!_this.props.multiSelect || _this.props.allowFreeform)) {\n                        _this._submitPendingValue(event);\n                    }\n                    event.preventDefault();\n                    event.stopPropagation();\n                    return;\n                }\n            }\n            if (_this._hasFocus()) {\n                _this.setState({ focusState: 'none' });\n                if (!_this.props.multiSelect || _this.props.allowFreeform) {\n                    _this._submitPendingValue(event);\n                }\n            }\n        };\n        // Render Callout container and pass in list\n        _this._onRenderContainer = function (props, defaultRender) {\n            var onRenderList = props.onRenderList, calloutProps = props.calloutProps, dropdownWidth = props.dropdownWidth, dropdownMaxWidth = props.dropdownMaxWidth, _a = props.onRenderUpperContent, onRenderUpperContent = _a === void 0 ? _this._onRenderUpperContent : _a, _b = props.onRenderLowerContent, onRenderLowerContent = _b === void 0 ? _this._onRenderLowerContent : _b, useComboBoxAsMenuWidth = props.useComboBoxAsMenuWidth, persistMenu = props.persistMenu, _c = props.shouldRestoreFocus, shouldRestoreFocus = _c === void 0 ? true : _c;\n            var isOpen = _this.state.isOpen;\n            var id = _this._id;\n            var comboBoxMenuWidth = useComboBoxAsMenuWidth && _this._comboBoxWrapper.current\n                ? _this._comboBoxWrapper.current.clientWidth + 2\n                : undefined;\n            return (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintFixed: false }, calloutProps, { onLayerMounted: _this._onLayerMounted, className: css(_this._classNames.callout, calloutProps === null || calloutProps === void 0 ? void 0 : calloutProps.className), target: _this._comboBoxWrapper.current, onDismiss: _this._onDismiss, onMouseDown: _this._onCalloutMouseDown, onScroll: _this._onScroll, setInitialFocus: false, calloutWidth: useComboBoxAsMenuWidth && _this._comboBoxWrapper.current\n                    ? comboBoxMenuWidth && comboBoxMenuWidth\n                    : dropdownWidth, calloutMaxWidth: dropdownMaxWidth ? dropdownMaxWidth : comboBoxMenuWidth, hidden: persistMenu ? !isOpen : undefined, shouldRestoreFocus: shouldRestoreFocus, \n                // eslint-disable-next-line react/jsx-no-bind\n                preventDismissOnEvent: function (ev) { return _this._preventDismissOnScrollOrResize(ev); } }),\n                onRenderUpperContent(_this.props, _this._onRenderUpperContent),\n                React.createElement(\"div\", { className: _this._classNames.optionsContainerWrapper, ref: _this._comboBoxMenu }, onRenderList === null || onRenderList === void 0 ? void 0 : onRenderList(__assign(__assign({}, props), { id: id }), _this._onRenderList)),\n                onRenderLowerContent(_this.props, _this._onRenderLowerContent)));\n        };\n        _this._onLayerMounted = function () {\n            _this._onCalloutLayerMounted();\n            // need to call this again here to get the correct scroll parent dimensions\n            // when the callout is first opened\n            _this._async.setTimeout(function () {\n                _this._scrollIntoView();\n            }, 0);\n            if (_this.props.calloutProps && _this.props.calloutProps.onLayerMounted) {\n                _this.props.calloutProps.onLayerMounted();\n            }\n        };\n        _this._onRenderLabel = function (onRenderLabelProps) {\n            var _a = onRenderLabelProps.props, label = _a.label, disabled = _a.disabled, required = _a.required;\n            if (label) {\n                return (React.createElement(Label, { id: _this._id + '-label', disabled: disabled, required: required, className: _this._classNames.label },\n                    label,\n                    onRenderLabelProps.multiselectAccessibleText && (React.createElement(\"span\", { className: _this._classNames.screenReaderText }, onRenderLabelProps.multiselectAccessibleText))));\n            }\n            return null;\n        };\n        // Render List of items\n        _this._onRenderList = function (props) {\n            var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;\n            var queue = { items: [] };\n            var renderedList = [];\n            var emptyQueue = function () {\n                var newGroup = queue.id\n                    ? [\n                        React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n                    ]\n                    : queue.items;\n                renderedList = __spreadArray(__spreadArray([], renderedList, true), newGroup, true);\n                // Flush items and id\n                queue = { items: [] };\n            };\n            var placeRenderedOptionIntoQueue = function (item, index) {\n                /*\n                  Case Header\n                    empty queue if it's not already empty\n                    ensure unique ID for header and set queue ID\n                    push header into queue\n                  Case Divider\n                    push divider into queue if not first item\n                    empty queue if not already empty\n                  Default\n                    push item into queue\n                */\n                switch (item.itemType) {\n                    case SelectableOptionMenuItemType.Header:\n                        queue.items.length > 0 && emptyQueue();\n                        var id_1 = _this._id + item.key;\n                        queue.items.push(onRenderItem(__assign(__assign({ id: id_1 }, item), { index: index }), _this._onRenderItem));\n                        queue.id = id_1;\n                        break;\n                    case SelectableOptionMenuItemType.Divider:\n                        index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n                        queue.items.length > 0 && emptyQueue();\n                        break;\n                    default:\n                        queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n                }\n            };\n            // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n            props.options.forEach(function (item, index) {\n                placeRenderedOptionIntoQueue(item, index);\n            });\n            // Push remaining items into all renderedList\n            queue.items.length > 0 && emptyQueue();\n            var id = _this._id;\n            return (React.createElement(\"div\", { id: id + '-list', className: _this._classNames.optionsContainer, \"aria-labelledby\": label && id + '-label', \"aria-label\": ariaLabel && !label ? ariaLabel : undefined, \"aria-multiselectable\": multiSelect ? 'true' : undefined, role: \"listbox\" }, renderedList));\n        };\n        // Render items\n        _this._onRenderItem = function (item) {\n            switch (item.itemType) {\n                case SelectableOptionMenuItemType.Divider:\n                    return _this._renderSeparator(item);\n                case SelectableOptionMenuItemType.Header:\n                    return _this._renderHeader(item);\n                default:\n                    return _this._renderOption(item);\n            }\n        };\n        // Default _onRenderLowerContent function returns nothing\n        _this._onRenderLowerContent = function () {\n            return null;\n        };\n        // Default _onRenderUpperContent function returns nothing\n        _this._onRenderUpperContent = function () {\n            return null;\n        };\n        _this._renderOption = function (item) {\n            var _a;\n            var _b = _this.props.onRenderOption, onRenderOption = _b === void 0 ? _this._onRenderOptionContent : _b;\n            var id = (_a = item.id) !== null && _a !== void 0 ? _a : _this._id + '-list' + item.index;\n            var isSelected = _this._isOptionSelected(item.index);\n            var isChecked = _this._isOptionChecked(item.index);\n            var isIndeterminate = _this._isOptionIndeterminate(item.index);\n            var optionStyles = _this._getCurrentOptionStyles(item);\n            var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n            var title = item.title;\n            var getOptionComponent = function () {\n                return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: id, key: item.key, \"data-index\": item.index, styles: optionStyles, checked: isSelected, className: 'ms-ComboBox-option', onClick: _this._onItemClick(item), \n                    // eslint-disable-next-line react/jsx-no-bind\n                    onMouseEnter: _this._onOptionMouseEnter.bind(_this, item.index), \n                    // eslint-disable-next-line react/jsx-no-bind\n                    onMouseMove: _this._onOptionMouseMove.bind(_this, item.index), onMouseLeave: _this._onOptionMouseLeave, role: \"option\", \"aria-selected\": isSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, disabled: item.disabled, title: title }, React.createElement(\"span\", { className: optionClassNames.optionTextWrapper, ref: isSelected ? _this._selectedElement : undefined }, onRenderOption(item, _this._onRenderOptionContent)))) : (React.createElement(Checkbox, { id: id, ariaLabel: item.ariaLabel, ariaLabelledBy: item.ariaLabel ? undefined : id + '-label', key: item.key, styles: optionStyles, className: 'ms-ComboBox-option', onChange: _this._onItemClick(item), label: item.text, checked: isChecked, indeterminate: isIndeterminate, title: title, disabled: item.disabled, \n                    // eslint-disable-next-line react/jsx-no-bind\n                    onRenderLabel: _this._renderCheckboxLabel.bind(_this, __assign(__assign({}, item), { id: id + '-label' })), inputProps: __assign({ \n                        // aria-selected should only be applied to checked items, not hovered items\n                        'aria-selected': isChecked ? 'true' : 'false', role: 'option' }, {\n                        'data-index': item.index,\n                        'data-is-focusable': true,\n                    }) }));\n            };\n            return (React.createElement(ComboBoxOptionWrapper, { key: item.key, index: item.index, disabled: item.disabled, isSelected: isSelected, isChecked: isChecked, isIndeterminate: isIndeterminate, text: item.text, \n                // eslint-disable-next-line react/jsx-no-bind\n                render: getOptionComponent, data: item.data }));\n        };\n        /**\n         * Mouse clicks to headers, dividers and scrollbar should not make input lose focus\n         */\n        _this._onCalloutMouseDown = function (ev) {\n            ev.preventDefault();\n        };\n        /**\n         * Scroll handler for the callout to make sure the mouse events\n         * for updating focus are not interacting during scroll\n         */\n        _this._onScroll = function () {\n            var _a;\n            if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n                _this._async.clearTimeout(_this._scrollIdleTimeoutId);\n                _this._scrollIdleTimeoutId = undefined;\n            }\n            else {\n                _this._isScrollIdle = false;\n            }\n            if ((_a = _this.props.calloutProps) === null || _a === void 0 ? void 0 : _a.onScroll) {\n                _this.props.calloutProps.onScroll();\n            }\n            _this._scrollIdleTimeoutId = _this._async.setTimeout(function () {\n                _this._isScrollIdle = true;\n            }, ScrollIdleDelay);\n        };\n        _this._onRenderOptionContent = function (item) {\n            var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n            return React.createElement(\"span\", { className: optionClassNames.optionText }, item.text);\n        };\n        /*\n         * Render content of a multiselect item label.\n         * Text within the label is aria-hidden, to prevent duplicate input/label exposure\n         */\n        _this._onRenderMultiselectOptionContent = function (item) {\n            var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n            return (React.createElement(\"span\", { id: item.id, \"aria-hidden\": \"true\", className: optionClassNames.optionText }, item.text));\n        };\n        /**\n         * Handles dismissing (cancelling) the menu\n         */\n        _this._onDismiss = function () {\n            var onMenuDismiss = _this.props.onMenuDismiss;\n            if (onMenuDismiss) {\n                onMenuDismiss();\n            }\n            // In persistMode we need to simulate callout layer mount\n            // since that only happens once. We do it on dismiss since\n            // it works either way.\n            if (_this.props.persistMenu) {\n                _this._onCalloutLayerMounted();\n            }\n            // close the menu\n            _this._setOpenStateAndFocusOnClose(false /* isOpen */, false /* focusInputAfterClose */);\n            // reset the selected index\n            // to the last value state\n            _this._resetSelectedIndex();\n        };\n        _this._onAfterClearPendingInfo = function () {\n            _this._processingClearPendingInfo = false;\n        };\n        /**\n         * Handle keydown on the input\n         * @param ev - The keyboard event that was fired\n         */\n        _this._onInputKeyDown = function (ev) {\n            var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, allowFreeInput = _a.allowFreeInput, autoComplete = _a.autoComplete, currentOptions = _a.hoisted.currentOptions;\n            var _b = _this.state, isOpen = _b.isOpen, currentPendingValueValidIndexOnHover = _b.currentPendingValueValidIndexOnHover;\n            // Take note if we are processing an alt (option) or meta (command) keydown.\n            // See comment in _onInputKeyUp for reasoning.\n            _this._lastKeyDownWasAltOrMeta = isAltOrMeta(ev);\n            if (disabled) {\n                _this._handleInputWhenDisabled(ev);\n                return;\n            }\n            var index = _this._getPendingSelectedIndex(false /* includeCurrentPendingValue */);\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.enter:\n                    if (_this._autofill.current && _this._autofill.current.inputElement) {\n                        _this._autofill.current.inputElement.select();\n                    }\n                    _this._submitPendingValue(ev);\n                    if (_this.props.multiSelect && isOpen) {\n                        _this.setState({\n                            currentPendingValueValidIndex: index,\n                        });\n                    }\n                    else {\n                        // On enter submit the pending value\n                        if (isOpen ||\n                            ((!allowFreeform ||\n                                _this.state.currentPendingValue === undefined ||\n                                _this.state.currentPendingValue === null ||\n                                _this.state.currentPendingValue.length <= 0) &&\n                                _this.state.currentPendingValueValidIndex < 0)) {\n                            // if we are open or\n                            // if we are not allowing freeform or\n                            // our we have no pending value\n                            // and no valid pending index\n                            // flip the open state\n                            _this.setState({\n                                isOpen: !isOpen,\n                            });\n                        }\n                    }\n                    break;\n                case KeyCodes.tab:\n                    // On enter submit the pending value\n                    if (!_this.props.multiSelect) {\n                        _this._submitPendingValue(ev);\n                    }\n                    // If we are not allowing freeform\n                    // or the combo box is open, flip the open state\n                    if (isOpen) {\n                        _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);\n                    }\n                    // Allow TAB to propagate\n                    return;\n                case KeyCodes.escape:\n                    // reset the selected index\n                    _this._resetSelectedIndex();\n                    // Close the menu if opened\n                    if (isOpen) {\n                        _this.setState({\n                            isOpen: false,\n                        });\n                    }\n                    else {\n                        return;\n                    }\n                    break;\n                case KeyCodes.up:\n                    // if we are in clearAll state (e.g. the user as hovering\n                    // and has since mousedOut of the menu items),\n                    // go to the last index\n                    if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n                        index = _this.props.hoisted.currentOptions.length;\n                    }\n                    if (ev.altKey || ev.metaKey) {\n                        // Close the menu if it is open and break so\n                        // that the event get stopPropagation and prevent default.\n                        // Otherwise, we need to let the event continue to propagate\n                        if (isOpen) {\n                            _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);\n                            break;\n                        }\n                        return;\n                    }\n                    // do not scroll page\n                    ev.preventDefault();\n                    // Go to the previous option\n                    _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.backward);\n                    break;\n                case KeyCodes.down:\n                    // Expand the combo box on ALT + DownArrow\n                    if (ev.altKey || ev.metaKey) {\n                        _this._setOpenStateAndFocusOnClose(true /* isOpen */, true /* focusInputAfterClose */);\n                    }\n                    else {\n                        // if we are in clearAll state (e.g. the user as hovering\n                        // and has since mousedOut of the menu items),\n                        // go to the first index\n                        if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n                            index = -1;\n                        }\n                        // do not scroll page\n                        ev.preventDefault();\n                        // Got to the next option\n                        _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.forward);\n                    }\n                    break;\n                case KeyCodes.home:\n                case KeyCodes.end:\n                    if (allowFreeform || allowFreeInput) {\n                        return;\n                    }\n                    // Set the initial values to respond to HOME\n                    // which goes to the first selectable option\n                    index = -1;\n                    var directionToSearch = SearchDirection.forward;\n                    // If end, update the values to respond to END\n                    // which goes to the last selectable option\n                    // eslint-disable-next-line deprecation/deprecation\n                    if (ev.which === KeyCodes.end) {\n                        index = currentOptions.length;\n                        directionToSearch = SearchDirection.backward;\n                    }\n                    _this._setPendingInfoFromIndexAndDirection(index, directionToSearch);\n                    break;\n                /* eslint-disable no-fallthrough */\n                case KeyCodes.space:\n                    // event handled in _onComboBoxKeyUp\n                    if (!allowFreeform && !allowFreeInput && autoComplete === 'off') {\n                        break;\n                    }\n                default:\n                    /* eslint-enable no-fallthrough */\n                    // are we processing a function key? if so bail out\n                    // eslint-disable-next-line deprecation/deprecation\n                    if (ev.which >= 112 /* F1 */ && ev.which <= 123 /* F12 */) {\n                        return;\n                    }\n                    // If we get here and we got either and ALT key\n                    // or meta key, let the event propagate\n                    // eslint-disable-next-line deprecation/deprecation\n                    if (ev.keyCode === KeyCodes.alt || ev.key === 'Meta' /* && isOpen */) {\n                        return;\n                    }\n                    // If we are not allowing freeform or free input and\n                    // allowing autoComplete, handle the input here\n                    if (!allowFreeform && !allowFreeInput && autoComplete === 'on') {\n                        _this._onInputChange(ev.key);\n                        break;\n                    }\n                    // allow the key to propagate by default\n                    return;\n            }\n            ev.stopPropagation();\n            ev.preventDefault();\n        };\n        /**\n         * Handle keyup on the input\n         * @param ev - the keyboard event that was fired\n         */\n        _this._onInputKeyUp = function (ev) {\n            var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, allowFreeInput = _a.allowFreeInput, autoComplete = _a.autoComplete;\n            var isOpen = _this.state.isOpen;\n            // We close the menu on key up only if ALL of the following are true:\n            // - Most recent key down was alt or meta (command)\n            // - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n            //   expand/collapse the menu)\n            // - We're not on a Mac (or iOS)\n            // This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n            // closing any open context menus. There is not a similar behavior on Macs.\n            var keyPressIsAltOrMetaAlone = _this._lastKeyDownWasAltOrMeta && isAltOrMeta(ev);\n            _this._lastKeyDownWasAltOrMeta = false;\n            var shouldHandleKey = keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n            if (disabled) {\n                _this._handleInputWhenDisabled(ev);\n                return;\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.space:\n                    // If we are not allowing freeform or free input, and autoComplete is off\n                    // make space expand/collapse the combo box\n                    // and allow the event to propagate\n                    if (!allowFreeform && !allowFreeInput && autoComplete === 'off') {\n                        _this._setOpenStateAndFocusOnClose(!isOpen, !!isOpen);\n                    }\n                    return;\n                default:\n                    if (shouldHandleKey && isOpen) {\n                        _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);\n                    }\n                    else {\n                        if (_this.state.focusState === 'focusing' && _this.props.openOnKeyboardFocus) {\n                            _this.setState({ isOpen: true });\n                        }\n                        if (_this.state.focusState !== 'focused') {\n                            _this.setState({ focusState: 'focused' });\n                        }\n                    }\n                    return;\n            }\n        };\n        _this._onOptionMouseLeave = function () {\n            if (_this._shouldIgnoreMouseEvent()) {\n                return;\n            }\n            // Ignore the event in persistMenu mode if the callout has\n            // closed. This is to avoid clearing the visuals on item click.\n            if (_this.props.persistMenu && !_this.state.isOpen) {\n                return;\n            }\n            _this.setState({\n                currentPendingValueValidIndexOnHover: HoverStatus.clearAll,\n            });\n        };\n        /**\n         * Click handler for the button of the combo box and the input when not allowing freeform.\n         * This toggles the expand/collapse state of the combo box (if enabled).\n         */\n        _this._onComboBoxClick = function () {\n            var disabled = _this.props.disabled;\n            var isOpen = _this.state.isOpen;\n            if (!disabled) {\n                _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);\n                _this.setState({ focusState: 'focused' });\n            }\n        };\n        /**\n         * Click handler for the autofill.\n         */\n        _this._onAutofillClick = function () {\n            var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform;\n            if (allowFreeform && !disabled) {\n                _this.focus(_this.state.isOpen || _this._processingTouch);\n            }\n            else {\n                _this._onComboBoxClick();\n            }\n        };\n        _this._onTouchStart = function () {\n            if (_this._comboBoxWrapper.current && !('onpointerdown' in _this._comboBoxWrapper)) {\n                _this._handleTouchAndPointerEvent();\n            }\n        };\n        _this._onPointerDown = function (ev) {\n            if (ev.pointerType === 'touch') {\n                _this._handleTouchAndPointerEvent();\n                ev.preventDefault();\n                ev.stopImmediatePropagation();\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        warnMutuallyExclusive(COMPONENT_NAME, props, {\n            defaultSelectedKey: 'selectedKey',\n            text: 'defaultSelectedKey',\n            selectedKey: 'value',\n            dropdownWidth: 'useComboBoxAsMenuWidth',\n            ariaLabel: 'label',\n        });\n        _this._id = props.id || getId('ComboBox');\n        _this._isScrollIdle = true;\n        _this._processingTouch = false;\n        _this._gotMouseMove = false;\n        _this._processingClearPendingInfo = false;\n        _this.state = {\n            isOpen: false,\n            focusState: 'none',\n            currentPendingValueValidIndex: -1,\n            currentPendingValue: undefined,\n            currentPendingValueValidIndexOnHover: HoverStatus.default,\n        };\n        return _this;\n    }\n    Object.defineProperty(ComboBoxInternal.prototype, \"selectedOptions\", {\n        /**\n         * All selected options\n         */\n        get: function () {\n            var _a = this.props.hoisted, currentOptions = _a.currentOptions, selectedIndices = _a.selectedIndices;\n            return getAllSelectedOptions(currentOptions, selectedIndices);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ComboBoxInternal.prototype.componentDidMount = function () {\n        if (this._comboBoxWrapper.current && !this.props.disabled) {\n            // hook up resolving the options if needed on focus\n            this._events.on(this._comboBoxWrapper.current, 'focus', this._onResolveOptions, true);\n            if ('onpointerdown' in this._comboBoxWrapper.current) {\n                // For ComboBoxes, touching anywhere in the combo box should drop the dropdown, including the input element.\n                // This gives more hit target space for touch environments. We're setting the onpointerdown here, because React\n                // does not support Pointer events yet.\n                this._events.on(this._comboBoxWrapper.current, 'pointerdown', this._onPointerDown, true);\n            }\n        }\n    };\n    ComboBoxInternal.prototype.componentDidUpdate = function (prevProps, prevState) {\n        var _this = this;\n        var _a, _b, _c;\n        var _d = this.props, allowFreeform = _d.allowFreeform, allowFreeInput = _d.allowFreeInput, text = _d.text, onMenuOpen = _d.onMenuOpen, onMenuDismissed = _d.onMenuDismissed, _e = _d.hoisted, currentOptions = _e.currentOptions, selectedIndices = _e.selectedIndices;\n        var _f = this.state, currentPendingValue = _f.currentPendingValue, currentPendingValueValidIndex = _f.currentPendingValueValidIndex, isOpen = _f.isOpen;\n        // If we are newly open or are open and the pending valid index changed,\n        // make sure the currently selected/pending option is scrolled into view\n        if (isOpen && (!prevState.isOpen || prevState.currentPendingValueValidIndex !== currentPendingValueValidIndex)) {\n            // Need this timeout so that the selectedElement ref is correctly updated\n            this._async.setTimeout(function () { return _this._scrollIntoView(); }, 0);\n        }\n        // if an action is taken that put focus in the ComboBox\n        // and If we are open or we are just closed, shouldFocusAfterClose is set,\n        // but we are not the activeElement set focus on the input\n        if (this._hasFocus() &&\n            (isOpen ||\n                (prevState.isOpen &&\n                    !isOpen &&\n                    this._focusInputAfterClose &&\n                    this._autofill.current &&\n                    document.activeElement !== this._autofill.current.inputElement))) {\n            this.focus(undefined /*shouldOpenOnFocus*/, true /*useFocusAsync*/);\n        }\n        // If we should focusAfterClose AND\n        //   just opened/closed the menu OR\n        //   are focused AND\n        //     updated the selectedIndex with the menu closed OR\n        //     are not allowing freeform or free input OR\n        //     the value changed\n        // we need to set selection\n        if (this._focusInputAfterClose &&\n            ((prevState.isOpen && !isOpen) ||\n                (this._hasFocus() &&\n                    ((!isOpen &&\n                        !this.props.multiSelect &&\n                        prevProps.hoisted.selectedIndices &&\n                        selectedIndices &&\n                        prevProps.hoisted.selectedIndices[0] !== selectedIndices[0]) ||\n                        (!allowFreeform && !allowFreeInput) ||\n                        text !== prevProps.text)))) {\n            this._onFocus();\n        }\n        this._notifyPendingValueChanged(prevState);\n        if (isOpen && !prevState.isOpen) {\n            // handle dismiss buffer after suggestions are opened\n            this._overrideScrollDismiss = true;\n            this._async.clearTimeout(this._overrideScrollDimissTimeout);\n            this._overrideScrollDimissTimeout = this._async.setTimeout(function () {\n                _this._overrideScrollDismiss = false;\n            }, 100);\n            onMenuOpen === null || onMenuOpen === void 0 ? void 0 : onMenuOpen();\n        }\n        if (!isOpen && prevState.isOpen && onMenuDismissed) {\n            onMenuDismissed();\n        }\n        var newCurrentPendingValueValidIndex = currentPendingValueValidIndex;\n        var options = currentOptions.map(function (item, index) { return (__assign(__assign({}, item), { index: index })); });\n        // If currentOptions differs from the previous currentOptions we need to update the currentPendingValueValidIndex\n        // otherwise, it will be out of sync with the currentOptions. This can happen when the options are filtered.\n        if (!shallowCompare(prevProps.hoisted.currentOptions, currentOptions) && currentPendingValue) {\n            newCurrentPendingValueValidIndex =\n                this.props.allowFreeform || this.props.allowFreeInput\n                    ? this._processInputChangeWithFreeform(currentPendingValue)\n                    : this._updateAutocompleteIndexWithoutFreeform(currentPendingValue);\n        }\n        var descendantText = undefined;\n        if (isOpen && this._hasFocus() && newCurrentPendingValueValidIndex !== -1) {\n            descendantText =\n                (_a = options[newCurrentPendingValueValidIndex].id) !== null && _a !== void 0 ? _a : this._id + '-list' + newCurrentPendingValueValidIndex;\n        }\n        else if (isOpen && selectedIndices.length) {\n            descendantText = (_c = (_b = options[selectedIndices[0]]) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : this._id + '-list' + selectedIndices[0];\n        }\n        if (descendantText !== this.state.ariaActiveDescendantValue) {\n            this.setState({\n                ariaActiveDescendantValue: descendantText,\n            });\n        }\n    };\n    ComboBoxInternal.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n    };\n    // Primary Render\n    ComboBoxInternal.prototype.render = function () {\n        var id = this._id;\n        var errorMessageId = id + '-error';\n        var _a = this.props, className = _a.className, disabled = _a.disabled, required = _a.required, errorMessage = _a.errorMessage, _b = _a.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = _a.onRenderLabel, onRenderLabel = _c === void 0 ? this._onRenderLabel : _c, _d = _a.onRenderList, onRenderList = _d === void 0 ? this._onRenderList : _d, _e = _a.onRenderItem, onRenderItem = _e === void 0 ? this._onRenderItem : _e, _f = _a.onRenderOption, onRenderOption = _f === void 0 ? this._onRenderOptionContent : _f, allowFreeform = _a.allowFreeform, customStyles = _a.styles, theme = _a.theme, persistMenu = _a.persistMenu, multiSelect = _a.multiSelect, _g = _a.hoisted, suggestedDisplayValue = _g.suggestedDisplayValue, selectedIndices = _g.selectedIndices, currentOptions = _g.currentOptions;\n        var isOpen = this.state.isOpen;\n        this._currentVisibleValue = this._getVisibleValue();\n        // Single select is already accessible since the whole text is selected\n        // when focus enters the input. Since multiselect appears to clear the input\n        // it needs special accessible text\n        var multiselectAccessibleText = multiSelect\n            ? this._getMultiselectDisplayString(selectedIndices, currentOptions, suggestedDisplayValue)\n            : undefined;\n        var divProps = getNativeProps(this.props, divProperties, [\n            'onChange',\n            'value',\n            'aria-describedby',\n            'aria-labelledby',\n        ]);\n        var hasErrorMessage = errorMessage && errorMessage.length > 0 ? true : false;\n        this._classNames = this.props.getClassNames\n            ? this.props.getClassNames(theme, !!isOpen, !!disabled, !!required, !!this._hasFocus(), !!allowFreeform, !!hasErrorMessage, className)\n            : getClassNames(getStyles(theme, customStyles), className, !!isOpen, !!disabled, !!required, !!this._hasFocus(), !!allowFreeform, !!hasErrorMessage);\n        var comboBoxWrapper = this._renderComboBoxWrapper(multiselectAccessibleText, errorMessageId);\n        return (React.createElement(\"div\", __assign({}, divProps, { ref: this.props.hoisted.mergedRootRef, className: this._classNames.container }),\n            onRenderLabel({ props: this.props, multiselectAccessibleText: multiselectAccessibleText }, this._onRenderLabel),\n            comboBoxWrapper,\n            (persistMenu || isOpen) &&\n                onRenderContainer(__assign(__assign({}, this.props), { onRenderList: onRenderList, onRenderItem: onRenderItem, onRenderOption: onRenderOption, options: currentOptions.map(function (item, index) { return (__assign(__assign({}, item), { index: index })); }), onDismiss: this._onDismiss }), this._onRenderContainer),\n            hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n    };\n    ComboBoxInternal.prototype._getPendingString = function (currentPendingValue, currentOptions, index) {\n        return currentPendingValue !== null && currentPendingValue !== undefined\n            ? currentPendingValue\n            : indexWithinBounds(currentOptions, index)\n                ? getPreviewText(currentOptions[index])\n                : '';\n    };\n    /**\n     * Returns a string that concatenates all of the selected values\n     * for multiselect combo box.\n     */\n    ComboBoxInternal.prototype._getMultiselectDisplayString = function (selectedIndices, currentOptions, suggestedDisplayValue) {\n        var displayValues = [];\n        for (var idx = 0; selectedIndices && idx < selectedIndices.length; idx++) {\n            var index = selectedIndices[idx];\n            if (currentOptions[index].itemType !== SelectableOptionMenuItemType.SelectAll) {\n                displayValues.push(indexWithinBounds(currentOptions, index)\n                    ? currentOptions[index].text\n                    : normalizeToString(suggestedDisplayValue));\n            }\n        }\n        var _a = this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n        return displayValues.join(multiSelectDelimiter);\n    };\n    /**\n     * Do not dismiss if the window resizes or scrolls within 100ms of opening\n     * This prevents the Android issue where pickers immediately dismiss on open, because the keyboard appears\n     * @param ev - the event triggering the dismiss check\n     * @returns a boolean indicating whether the callout dismissal should be prevented\n     */\n    ComboBoxInternal.prototype._preventDismissOnScrollOrResize = function (ev) {\n        if (this._overrideScrollDismiss && (ev.type === 'scroll' || ev.type === 'resize')) {\n            return true;\n        }\n        return false;\n    };\n    /**\n     * Process the new input's new value when the combo box allows freeform entry\n     * @param updatedValue - the input's newly changed value\n     * @returns the index of the matched option, -1 if no match was found\n     */\n    ComboBoxInternal.prototype._processInputChangeWithFreeform = function (updatedValue) {\n        var currentOptions = this.props.hoisted.currentOptions;\n        var newCurrentPendingValueValidIndex = -1;\n        // if the new value is empty, see if we have an exact match and then set the pending info\n        if (updatedValue === '') {\n            var items = currentOptions\n                .map(function (item, index) { return (__assign(__assign({}, item), { index: index })); })\n                .filter(function (option) { return isNormalOption(option) && !option.disabled && getPreviewText(option) === updatedValue; });\n            // if we found a match remember the index\n            if (items.length === 1) {\n                newCurrentPendingValueValidIndex = items[0].index;\n            }\n            this._setPendingInfo(updatedValue, newCurrentPendingValueValidIndex, updatedValue);\n            return newCurrentPendingValueValidIndex;\n        }\n        // Remember the original value and then make the value lowercase for comparison\n        var originalUpdatedValue = updatedValue;\n        updatedValue = updatedValue.toLocaleLowerCase();\n        var newSuggestedDisplayValue = '';\n        // If autoComplete is on, attempt to find a match from the available options\n        if (this.props.autoComplete === 'on') {\n            // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value\n            var items = currentOptions\n                .map(function (item, index) { return (__assign(__assign({}, item), { index: index })); })\n                .filter(function (option) {\n                return isNormalOption(option) &&\n                    !option.disabled &&\n                    getPreviewText(option).toLocaleLowerCase().indexOf(updatedValue) === 0;\n            });\n            if (items.length > 0) {\n                // use ariaLabel as the value when the option is set\n                var text = getPreviewText(items[0]);\n                // If the user typed out the complete option text, we don't need any suggested display text anymore\n                newSuggestedDisplayValue = text.toLocaleLowerCase() !== updatedValue ? text : '';\n                // remember the index of the match we found\n                newCurrentPendingValueValidIndex = items[0].index;\n            }\n        }\n        else {\n            // If autoComplete is off, attempt to find a match only when the value is exactly equal to the text of an option\n            var items = currentOptions\n                .map(function (item, index) { return (__assign(__assign({}, item), { index: index })); })\n                .filter(function (option) {\n                return isNormalOption(option) && !option.disabled && getPreviewText(option).toLocaleLowerCase() === updatedValue;\n            });\n            // if we found a match remember the index\n            if (items.length === 1) {\n                newCurrentPendingValueValidIndex = items[0].index;\n            }\n        }\n        // Set the updated state\n        this._setPendingInfo(originalUpdatedValue, newCurrentPendingValueValidIndex, newSuggestedDisplayValue);\n        return newCurrentPendingValueValidIndex;\n    };\n    /**\n     * Process the new input's new value when the combo box does not allow freeform entry\n     * @param updatedValue - the input's newly changed value\n     * @returns the index of the matched option\n     */\n    ComboBoxInternal.prototype._processInputChangeWithoutFreeform = function (updatedValue) {\n        var _this = this;\n        var _a = this.state, currentPendingValue = _a.currentPendingValue, currentPendingValueValidIndex = _a.currentPendingValueValidIndex;\n        if (this.props.autoComplete === 'on') {\n            // If autoComplete is on while allow freeform is off,\n            // we will remember the key press and build up a string to attempt to match\n            // as long as characters are typed within a the timeout span of each other,\n            // otherwise we will clear the string and start building a new one on the next keypress.\n            // Also, only do this processing if we have a non-empty value\n            if (updatedValue !== '') {\n                // If we have a pending autocomplete clearing task,\n                // we know that the user is typing with key press happening\n                // within the timeout of each other so remove the clearing task\n                // and continue building the pending value with the updated value\n                if (this._autoCompleteTimeout) {\n                    this._async.clearTimeout(this._autoCompleteTimeout);\n                    this._autoCompleteTimeout = undefined;\n                    updatedValue = normalizeToString(currentPendingValue) + updatedValue;\n                }\n                var matchingIndex = this._updateAutocompleteIndexWithoutFreeform(updatedValue);\n                // Schedule a timeout to clear the pending value after the timeout span\n                this._autoCompleteTimeout = this._async.setTimeout(function () {\n                    _this._autoCompleteTimeout = undefined;\n                }, ReadOnlyPendingAutoCompleteTimeout);\n                return matchingIndex;\n            }\n        }\n        // If we get here, autoComplete is off.\n        // Remember we are not allowing freeform, so at this point, if we have a pending valid value index\n        // use that; otherwise use the selectedIndex\n        var index = currentPendingValueValidIndex >= 0 ? currentPendingValueValidIndex : this._getFirstSelectedIndex();\n        // Since we are not allowing freeform, we need to\n        // set both the pending and suggested values/index\n        // to allow us to select all content in the input to\n        // give the illusion that we are readonly (e.g. freeform off)\n        this._setPendingInfoFromIndex(index);\n        return index;\n    };\n    ComboBoxInternal.prototype._updateAutocompleteIndexWithoutFreeform = function (updatedValue) {\n        var currentOptions = this.props.hoisted.currentOptions;\n        var originalUpdatedValue = updatedValue;\n        updatedValue = updatedValue.toLocaleLowerCase();\n        // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value\n        var items = currentOptions\n            .map(function (item, i) { return (__assign(__assign({}, item), { index: i })); })\n            .filter(function (option) {\n            return isNormalOption(option) && !option.disabled && option.text.toLocaleLowerCase().indexOf(updatedValue) === 0;\n        });\n        // If we found a match, update the state\n        if (items.length > 0) {\n            this._setPendingInfo(originalUpdatedValue, items[0].index, getPreviewText(items[0]));\n            return items[0].index;\n        }\n        return -1;\n    };\n    ComboBoxInternal.prototype._getFirstSelectedIndex = function () {\n        var selectedIndices = this.props.hoisted.selectedIndices;\n        return (selectedIndices === null || selectedIndices === void 0 ? void 0 : selectedIndices.length) ? selectedIndices[0] : -1;\n    };\n    /**\n     * Walk along the options starting at the index, stepping by the delta (positive or negative)\n     * looking for the next valid selectable index (e.g. skipping headings and dividers)\n     * @param index - the index to get the next selectable index from\n     * @param delta - optional delta to step by when finding the next index, defaults to 0\n     * @returns - the next valid selectable index. If the new index is outside of the bounds,\n     * it will snap to the edge of the options array. If delta == 0 and the given index is not selectable\n     */\n    ComboBoxInternal.prototype._getNextSelectableIndex = function (index, searchDirection) {\n        var currentOptions = this.props.hoisted.currentOptions;\n        var newIndex = index + searchDirection;\n        newIndex = Math.max(0, Math.min(currentOptions.length - 1, newIndex));\n        if (!indexWithinBounds(currentOptions, newIndex)) {\n            return -1;\n        }\n        var option = currentOptions[newIndex];\n        if (!isSelectableOption(option) || option.hidden === true) {\n            // Should we continue looking for an index to select?\n            if (searchDirection !== SearchDirection.none &&\n                ((newIndex > 0 && searchDirection < SearchDirection.none) ||\n                    (newIndex >= 0 && newIndex < currentOptions.length && searchDirection > SearchDirection.none))) {\n                newIndex = this._getNextSelectableIndex(newIndex, searchDirection);\n            }\n            else {\n                // If we cannot perform a useful search just return the index we were given\n                return index;\n            }\n        }\n        // We have the next valid selectable index, return it\n        return newIndex;\n    };\n    /**\n     * Set the selected index. Note, this is\n     * the \"real\" selected index, not the pending selected index\n     * @param index - the index to set (or the index to set from if a search direction is provided)\n     * @param searchDirection - the direction to search along the options from the given index\n     */\n    ComboBoxInternal.prototype._setSelectedIndex = function (index, submitPendingValueEvent, searchDirection) {\n        if (searchDirection === void 0) { searchDirection = SearchDirection.none; }\n        var _a = this.props, onChange = _a.onChange, onPendingValueChanged = _a.onPendingValueChanged, _b = _a.hoisted, initialIndices = _b.selectedIndices, currentOptions = _b.currentOptions;\n        // Clone currentOptions and selectedIndices so we don't mutate state\n        var selectedIndices = initialIndices ? initialIndices.slice() : [];\n        var changedOptions = currentOptions.slice();\n        // Find the next selectable index, if searchDirection is none\n        // we will get our starting index back\n        index = this._getNextSelectableIndex(index, searchDirection);\n        if (!indexWithinBounds(currentOptions, index)) {\n            return;\n        }\n        // Are we at a new index? If so, update the state, otherwise\n        // there is nothing to do\n        if (this.props.multiSelect ||\n            selectedIndices.length < 1 ||\n            (selectedIndices.length === 1 && selectedIndices[0] !== index)) {\n            var option = __assign({}, currentOptions[index]);\n            // if option doesn't existing, or option is disabled, we noop\n            if (!option || option.disabled) {\n                return;\n            }\n            if (this.props.multiSelect) {\n                // Setting the initial state of option.selected in Multi-select combo box by checking the\n                // selectedIndices array and overriding the undefined issue\n                option.selected = option.selected !== undefined ? !option.selected : selectedIndices.indexOf(index) < 0;\n                // handle changing all options if SelectAll is changed\n                if (option.itemType === SelectableOptionMenuItemType.SelectAll) {\n                    selectedIndices = [];\n                    // if select all is set to checked, push all selectable option indices\n                    if (option.selected) {\n                        currentOptions.forEach(function (currentOption, i) {\n                            if (!currentOption.disabled && isSelectableOption(currentOption)) {\n                                selectedIndices.push(i);\n                                changedOptions[i] = __assign(__assign({}, currentOption), { selected: true });\n                            }\n                        });\n                    }\n                    // otherwise un-check all options\n                    else {\n                        changedOptions = currentOptions.map(function (currentOption) { return (__assign(__assign({}, currentOption), { selected: false })); });\n                    }\n                }\n                // otherwise update the individual option\n                else {\n                    if (option.selected && selectedIndices.indexOf(index) < 0) {\n                        selectedIndices.push(index);\n                    }\n                    else if (!option.selected && selectedIndices.indexOf(index) >= 0) {\n                        selectedIndices = selectedIndices.filter(function (value) { return value !== index; });\n                    }\n                    changedOptions[index] = option;\n                    // If SelectAll exists and another option was toggled, update the SelectAll option's state\n                    var selectAllOption = changedOptions.filter(function (o) { return o.itemType === SelectableOptionMenuItemType.SelectAll; })[0];\n                    if (selectAllOption) {\n                        var selectAllState = this._isSelectAllChecked(selectedIndices);\n                        var selectAllIndex_1 = changedOptions.indexOf(selectAllOption);\n                        if (selectAllState) {\n                            selectedIndices.push(selectAllIndex_1);\n                            changedOptions[selectAllIndex_1] = __assign(__assign({}, selectAllOption), { selected: true });\n                        }\n                        else {\n                            selectedIndices = selectedIndices.filter(function (value) { return value !== selectAllIndex_1; });\n                            changedOptions[selectAllIndex_1] = __assign(__assign({}, selectAllOption), { selected: false });\n                        }\n                    }\n                }\n            }\n            else {\n                selectedIndices[0] = index;\n            }\n            submitPendingValueEvent.persist();\n            // Only setState if combo box is uncontrolled.\n            if (this.props.selectedKey || this.props.selectedKey === null) {\n                // If combo box value is changed, revert preview first\n                if (this._hasPendingValue && onPendingValueChanged) {\n                    onPendingValueChanged();\n                    this._hasPendingValue = false;\n                }\n            }\n            else {\n                this.props.hoisted.setSelectedIndices(selectedIndices);\n                this.props.hoisted.setCurrentOptions(changedOptions);\n                // If ComboBox value is changed, revert preview first\n                if (this._hasPendingValue && onPendingValueChanged) {\n                    onPendingValueChanged();\n                    this._hasPendingValue = false;\n                }\n            }\n            // Call onChange after state is updated\n            if (onChange) {\n                onChange(submitPendingValueEvent, option, index, getPreviewText(option));\n            }\n        }\n        if (this.props.multiSelect && this.state.isOpen) {\n            return;\n        }\n        // clear all of the pending info\n        this._clearPendingInfo();\n    };\n    /**\n     * Submit a pending value if there is one\n     */\n    ComboBoxInternal.prototype._submitPendingValue = function (submitPendingValueEvent) {\n        var _a;\n        var _b = this.props, onChange = _b.onChange, allowFreeform = _b.allowFreeform, autoComplete = _b.autoComplete, multiSelect = _b.multiSelect, hoisted = _b.hoisted;\n        var currentOptions = hoisted.currentOptions;\n        var _c = this.state, currentPendingValue = _c.currentPendingValue, currentPendingValueValidIndex = _c.currentPendingValueValidIndex, currentPendingValueValidIndexOnHover = _c.currentPendingValueValidIndexOnHover;\n        var selectedIndices = this.props.hoisted.selectedIndices;\n        // Do not submit any pending value if we\n        // have already initiated clearing the pending info\n        if (this._processingClearPendingInfo) {\n            return;\n        }\n        // If we allow freeform we need to handle that\n        if (allowFreeform) {\n            // if currentPendingValue is null or undefined the user did not submit anything\n            // (not even empty because we would have stored that as the pending value)\n            if (currentPendingValue === null || currentPendingValue === undefined) {\n                // if a user did not type anything they may just hovered over an item\n                if (currentPendingValueValidIndexOnHover >= 0) {\n                    this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);\n                    this._clearPendingInfo();\n                }\n                return;\n            }\n            // Check to see if the user typed an exact match\n            if (indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {\n                var pendingOptionText = getPreviewText(currentOptions[currentPendingValueValidIndex]).toLocaleLowerCase();\n                var autofill = this._autofill.current;\n                // By exact match, that means: our pending value is the same as the pending option text OR\n                // the pending option starts with the pending value and we have an \"autoComplete\" selection\n                // where the total length is equal to pending option length OR\n                // the live value in the underlying input matches the pending option; update the state\n                if (currentPendingValue.toLocaleLowerCase() === pendingOptionText ||\n                    (autoComplete &&\n                        pendingOptionText.indexOf(currentPendingValue.toLocaleLowerCase()) === 0 &&\n                        (autofill === null || autofill === void 0 ? void 0 : autofill.isValueSelected) &&\n                        currentPendingValue.length + (autofill.selectionEnd - autofill.selectionStart) ===\n                            pendingOptionText.length) ||\n                    ((_a = autofill === null || autofill === void 0 ? void 0 : autofill.inputElement) === null || _a === void 0 ? void 0 : _a.value.toLocaleLowerCase()) === pendingOptionText) {\n                    this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);\n                    if (multiSelect && this.state.isOpen) {\n                        return;\n                    }\n                    this._clearPendingInfo();\n                    return;\n                }\n            }\n            if (onChange) {\n                if (onChange) {\n                    // trigger onChange to clear value\n                    onChange(submitPendingValueEvent, undefined, undefined, currentPendingValue);\n                }\n            }\n            else {\n                // If we are not controlled, create a new selected option\n                var newOption = {\n                    key: currentPendingValue || getId(),\n                    text: normalizeToString(currentPendingValue),\n                };\n                // If it's multiselect, set selected state to true\n                if (multiSelect) {\n                    newOption.selected = true;\n                }\n                var newOptions = currentOptions.concat([newOption]);\n                if (selectedIndices) {\n                    if (!multiSelect) {\n                        selectedIndices = [];\n                    }\n                    selectedIndices.push(newOptions.length - 1);\n                }\n                hoisted.setCurrentOptions(newOptions);\n                hoisted.setSelectedIndices(selectedIndices);\n            }\n        }\n        else if (currentPendingValueValidIndex >= 0) {\n            // Since we are not allowing freeform, we must have a matching\n            // to be able to update state\n            this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);\n        }\n        else if (currentPendingValueValidIndexOnHover >= 0) {\n            // If all else failed and we were hovering over an item, select it\n            this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);\n        }\n        // Finally, clear the pending info\n        this._clearPendingInfo();\n    };\n    ComboBoxInternal.prototype._onCalloutLayerMounted = function () {\n        // In persistMenu mode _onLayerMounted is only called once for the lifetime\n        // of the component. Any functionality required for callout \"on mount\" can\n        // go here so that we can also call it again during callout dismissal to reset\n        // object state.\n        this._gotMouseMove = false;\n    };\n    // Render separator\n    ComboBoxInternal.prototype._renderSeparator = function (item) {\n        var index = item.index, key = item.key;\n        if (index && index > 0) {\n            return React.createElement(\"div\", { role: \"presentation\", key: key, className: this._classNames.divider });\n        }\n        return null;\n    };\n    ComboBoxInternal.prototype._renderHeader = function (item) {\n        var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOptionContent : _a;\n        return (React.createElement(\"div\", { id: item.id, key: item.key, className: this._classNames.header }, onRenderOption(item, this._onRenderOptionContent)));\n    };\n    ComboBoxInternal.prototype._renderCheckboxLabel = function (item) {\n        var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderMultiselectOptionContent : _a;\n        return onRenderOption(item, this._onRenderMultiselectOptionContent);\n    };\n    /**\n     * If we are coming from a mouseOut:\n     * there is no visible selected option.\n     *\n     * Else if We are hovering over an item:\n     * that gets the selected look.\n     *\n     * Else:\n     * Use the current valid pending index if it exists OR\n     * we do not have a valid index and we currently have a pending input value,\n     * otherwise use the selected index\n     * */\n    ComboBoxInternal.prototype._isOptionHighlighted = function (index) {\n        var currentPendingValueValidIndexOnHover = this.state.currentPendingValueValidIndexOnHover;\n        // If the hover state is set to clearAll, don't show a selected index.\n        // Note, this happens when the user moused out of the menu items\n        if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n            return false;\n        }\n        return currentPendingValueValidIndexOnHover >= 0\n            ? currentPendingValueValidIndexOnHover === index\n            : this._isOptionSelected(index);\n    };\n    ComboBoxInternal.prototype._isOptionSelected = function (index) {\n        return this._getPendingSelectedIndex(true /* includePendingValue */) === index;\n    };\n    ComboBoxInternal.prototype._isOptionChecked = function (index) {\n        if (this.props.multiSelect && index !== undefined && this.props.hoisted.selectedIndices) {\n            var idxOfSelectedIndex = -1;\n            idxOfSelectedIndex = this.props.hoisted.selectedIndices.indexOf(index);\n            return idxOfSelectedIndex >= 0;\n        }\n        return false;\n    };\n    ComboBoxInternal.prototype._isOptionIndeterminate = function (index) {\n        var _a = this.props, multiSelect = _a.multiSelect, hoisted = _a.hoisted;\n        if (multiSelect && index !== undefined && hoisted.selectedIndices && hoisted.currentOptions) {\n            var option = hoisted.currentOptions[index];\n            if (option && option.itemType === SelectableOptionMenuItemType.SelectAll) {\n                return hoisted.selectedIndices.length > 0 && !this._isSelectAllChecked();\n            }\n        }\n        return false;\n    };\n    ComboBoxInternal.prototype._isSelectAllChecked = function (testIndices) {\n        var _a = this.props, multiSelect = _a.multiSelect, hoisted = _a.hoisted;\n        var selectAllOption = hoisted.currentOptions.find(function (option) { return option.itemType === SelectableOptionMenuItemType.SelectAll; });\n        var selectedIndices = testIndices || hoisted.selectedIndices;\n        if (!multiSelect || !selectedIndices || !selectAllOption) {\n            return false;\n        }\n        // start by not including the select all option itself\n        var selectAllIndex = hoisted.currentOptions.indexOf(selectAllOption);\n        var compareSelectedIndices = selectedIndices.filter(function (value) { return value !== selectAllIndex; });\n        // get array of selectable options, excluding disabled options, headers, and dividers\n        var selectableOptions = hoisted.currentOptions.filter(function (option) {\n            return !option.disabled && option.itemType !== SelectableOptionMenuItemType.SelectAll && isSelectableOption(option);\n        });\n        return compareSelectedIndices.length === selectableOptions.length;\n    };\n    /**\n     * Gets the pending selected index taking into account valueValidIndex and selectedIndex\n     * @param includeCurrentPendingValue - Should we include the currentPendingValue when\n     * finding the index\n     */\n    ComboBoxInternal.prototype._getPendingSelectedIndex = function (includeCurrentPendingValue) {\n        var _a = this.state, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValue = _a.currentPendingValue;\n        return currentPendingValueValidIndex >= 0 ||\n            (includeCurrentPendingValue && currentPendingValue !== null && currentPendingValue !== undefined)\n            ? currentPendingValueValidIndex\n            : this.props.multiSelect\n                ? -1\n                : this._getFirstSelectedIndex();\n    };\n    /**\n     * Scroll the selected element into view\n     */\n    ComboBoxInternal.prototype._scrollIntoView = function () {\n        var _a = this.props, onScrollToItem = _a.onScrollToItem, scrollSelectedToTop = _a.scrollSelectedToTop;\n        var currentPendingSelectedIndex = this._getPendingSelectedIndex(true);\n        if (onScrollToItem) {\n            // Use the custom scroll handler\n            onScrollToItem(currentPendingSelectedIndex >= 0 ? currentPendingSelectedIndex : this._getFirstSelectedIndex());\n            return;\n        }\n        var scrollToElement = this._selectedElement.current;\n        // in multi-select there are multiple selected elements, so we use the pending select index\n        // to locate the option to scroll to.\n        if (this.props.multiSelect && this._comboBoxMenu.current) {\n            scrollToElement = findFirstDescendant(this._comboBoxMenu.current, function (element) {\n                var _a;\n                return ((_a = element.dataset) === null || _a === void 0 ? void 0 : _a.index) === currentPendingSelectedIndex.toString();\n            });\n        }\n        if (scrollToElement && scrollToElement.offsetParent) {\n            var alignToTop = true;\n            // We are using refs, scroll the ref into view\n            if (this._comboBoxMenu.current && this._comboBoxMenu.current.offsetParent) {\n                var scrollableParent = this._comboBoxMenu.current.offsetParent;\n                var selectedElement = scrollToElement.offsetParent;\n                var _b = selectedElement, offsetHeight = _b.offsetHeight, offsetTop = _b.offsetTop;\n                var _c = scrollableParent, parentOffsetHeight = _c.offsetHeight, scrollTop = _c.scrollTop;\n                var isAbove = offsetTop < scrollTop;\n                var isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n                if (isAbove || scrollSelectedToTop) {\n                    alignToTop = false;\n                    scrollableParent.scrollTo(0, offsetTop);\n                }\n                else if (isBelow) {\n                    scrollableParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\n                }\n            }\n            // if _comboboxMenu doesn't exist, fall back to scrollIntoView\n            else {\n                scrollToElement.offsetParent.scrollIntoView(alignToTop);\n            }\n        }\n    };\n    /**\n     * Click handler for the menu items\n     * to select the item and also close the menu\n     * @param index - the index of the item that was clicked\n     */\n    ComboBoxInternal.prototype._onItemClick = function (item) {\n        var _this = this;\n        var onItemClick = this.props.onItemClick;\n        var index = item.index;\n        return function (ev) {\n            // only close the callout when it's in single-select mode\n            if (!_this.props.multiSelect) {\n                // ensure that focus returns to the input, not the button\n                _this._autofill.current && _this._autofill.current.focus();\n                _this.setState({\n                    isOpen: false,\n                });\n            }\n            // Continue processing the click only after\n            // performing menu close / control focus(inner working)\n            onItemClick && onItemClick(ev, item, index);\n            _this._setSelectedIndex(index, ev);\n        };\n    };\n    /**\n     * Reset the selected index by clearing the\n     * input (of any pending text), clearing the pending state,\n     * and setting the suggested display value to the last\n     * selected state text\n     */\n    ComboBoxInternal.prototype._resetSelectedIndex = function () {\n        var currentOptions = this.props.hoisted.currentOptions;\n        this._clearPendingInfo();\n        var selectedIndex = this._getFirstSelectedIndex();\n        if (selectedIndex > 0 && selectedIndex < currentOptions.length) {\n            this.props.hoisted.setSuggestedDisplayValue(currentOptions[selectedIndex].text);\n        }\n        else if (this.props.text) {\n            // If we had a value initially, restore it\n            this.props.hoisted.setSuggestedDisplayValue(this.props.text);\n        }\n    };\n    /**\n     * Clears the pending info state\n     */\n    ComboBoxInternal.prototype._clearPendingInfo = function () {\n        this._processingClearPendingInfo = true;\n        this.props.hoisted.setSuggestedDisplayValue(undefined);\n        this.setState({\n            currentPendingValue: undefined,\n            currentPendingValueValidIndex: -1,\n            currentPendingValueValidIndexOnHover: HoverStatus.default,\n        }, this._onAfterClearPendingInfo);\n    };\n    /**\n     * Set the pending info\n     * @param currentPendingValue - new pending value to set\n     * @param currentPendingValueValidIndex - new pending value index to set\n     * @param suggestedDisplayValue - new suggest display value to set\n     */\n    ComboBoxInternal.prototype._setPendingInfo = function (currentPendingValue, currentPendingValueValidIndex, suggestedDisplayValue) {\n        if (currentPendingValueValidIndex === void 0) { currentPendingValueValidIndex = -1; }\n        if (this._processingClearPendingInfo) {\n            return;\n        }\n        this.props.hoisted.setSuggestedDisplayValue(suggestedDisplayValue);\n        this.setState({\n            currentPendingValue: normalizeToString(currentPendingValue),\n            currentPendingValueValidIndex: currentPendingValueValidIndex,\n            currentPendingValueValidIndexOnHover: HoverStatus.default,\n        });\n    };\n    /**\n     * Set the pending info from the given index\n     * @param index - the index to set the pending info from\n     */\n    ComboBoxInternal.prototype._setPendingInfoFromIndex = function (index) {\n        var currentOptions = this.props.hoisted.currentOptions;\n        if (index >= 0 && index < currentOptions.length) {\n            var option = currentOptions[index];\n            this._setPendingInfo(getPreviewText(option), index, getPreviewText(option));\n        }\n        else {\n            this._clearPendingInfo();\n        }\n    };\n    /**\n     * Sets the pending info for the combo box\n     * @param index - the index to search from\n     * @param searchDirection - the direction to search\n     */\n    ComboBoxInternal.prototype._setPendingInfoFromIndexAndDirection = function (index, searchDirection) {\n        var currentOptions = this.props.hoisted.currentOptions;\n        // update index to allow content to wrap\n        if (searchDirection === SearchDirection.forward && index >= currentOptions.length - 1) {\n            index = -1;\n        }\n        else if (searchDirection === SearchDirection.backward && index <= 0) {\n            index = currentOptions.length;\n        }\n        // get the next \"valid\" index\n        var indexUpdate = this._getNextSelectableIndex(index, searchDirection);\n        // if the two indices are equal we didn't move and\n        // we should attempt to get  get the first/last \"valid\" index to use\n        // (Note, this takes care of the potential cases where the first/last\n        // item is not focusable), otherwise use the updated index\n        if (index === indexUpdate) {\n            if (searchDirection === SearchDirection.forward) {\n                index = this._getNextSelectableIndex(-1, searchDirection);\n            }\n            else if (searchDirection === SearchDirection.backward) {\n                index = this._getNextSelectableIndex(currentOptions.length, searchDirection);\n            }\n        }\n        else {\n            index = indexUpdate;\n        }\n        if (indexWithinBounds(currentOptions, index)) {\n            this._setPendingInfoFromIndex(index);\n        }\n    };\n    ComboBoxInternal.prototype._notifyPendingValueChanged = function (prevState) {\n        var onPendingValueChanged = this.props.onPendingValueChanged;\n        if (!onPendingValueChanged) {\n            return;\n        }\n        var currentOptions = this.props.hoisted.currentOptions;\n        var _a = this.state, currentPendingValue = _a.currentPendingValue, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValueValidIndexOnHover = _a.currentPendingValueValidIndexOnHover;\n        var newPendingIndex = undefined;\n        var newPendingValue = undefined;\n        if (currentPendingValueValidIndexOnHover !== prevState.currentPendingValueValidIndexOnHover &&\n            indexWithinBounds(currentOptions, currentPendingValueValidIndexOnHover)) {\n            // Set new pending index if hover index was changed\n            newPendingIndex = currentPendingValueValidIndexOnHover;\n        }\n        else if (currentPendingValueValidIndex !== prevState.currentPendingValueValidIndex &&\n            indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {\n            // Set new pending index if currentPendingValueValidIndex was changed\n            newPendingIndex = currentPendingValueValidIndex;\n        }\n        else if (currentPendingValue !== prevState.currentPendingValue) {\n            // Set pendingValue in the case it was changed and no index was changed\n            newPendingValue = currentPendingValue;\n        }\n        // Notify when there is a new pending index/value. Also, if there is a pending value, it needs to send undefined.\n        if (newPendingIndex !== undefined || newPendingValue !== undefined || this._hasPendingValue) {\n            onPendingValueChanged(newPendingIndex !== undefined ? currentOptions[newPendingIndex] : undefined, newPendingIndex, newPendingValue);\n            this._hasPendingValue = newPendingIndex !== undefined || newPendingValue !== undefined;\n        }\n    };\n    /**\n     * Sets the isOpen state and updates focusInputAfterClose\n     */\n    ComboBoxInternal.prototype._setOpenStateAndFocusOnClose = function (isOpen, focusInputAfterClose) {\n        this._focusInputAfterClose = focusInputAfterClose;\n        this.setState({ isOpen: isOpen });\n    };\n    ComboBoxInternal.prototype._onOptionMouseEnter = function (index) {\n        if (this._shouldIgnoreMouseEvent()) {\n            return;\n        }\n        this.setState({\n            currentPendingValueValidIndexOnHover: index,\n        });\n    };\n    ComboBoxInternal.prototype._onOptionMouseMove = function (index) {\n        this._gotMouseMove = true;\n        if (!this._isScrollIdle || this.state.currentPendingValueValidIndexOnHover === index) {\n            return;\n        }\n        this.setState({\n            currentPendingValueValidIndexOnHover: index,\n        });\n    };\n    ComboBoxInternal.prototype._shouldIgnoreMouseEvent = function () {\n        return !this._isScrollIdle || !this._gotMouseMove;\n    };\n    /**\n     * Handle dismissing the menu and eating the required key event when disabled\n     * @param ev - the keyboard event that was fired\n     */\n    ComboBoxInternal.prototype._handleInputWhenDisabled = function (ev) {\n        // If we are disabled, close the menu (if needed)\n        // and eat all keystrokes other than TAB or ESC\n        if (this.props.disabled) {\n            if (this.state.isOpen) {\n                this.setState({ isOpen: false });\n            }\n            // When disabled stop propagation and prevent default\n            // of the event unless we have a tab, escape, or function key\n            if (ev !== null &&\n                // eslint-disable-next-line deprecation/deprecation\n                ev.which !== KeyCodes.tab &&\n                // eslint-disable-next-line deprecation/deprecation\n                ev.which !== KeyCodes.escape &&\n                // eslint-disable-next-line deprecation/deprecation\n                (ev.which < 112 /* F1 */ || ev.which > 123) /* F12 */) {\n                ev.stopPropagation();\n                ev.preventDefault();\n            }\n        }\n    };\n    ComboBoxInternal.prototype._handleTouchAndPointerEvent = function () {\n        var _this = this;\n        // If we already have an existing timeout from a previous touch and pointer event\n        // cancel that timeout so we can set a nwe one.\n        if (this._lastTouchTimeoutId !== undefined) {\n            this._async.clearTimeout(this._lastTouchTimeoutId);\n            this._lastTouchTimeoutId = undefined;\n        }\n        this._processingTouch = true;\n        this._lastTouchTimeoutId = this._async.setTimeout(function () {\n            _this._processingTouch = false;\n            _this._lastTouchTimeoutId = undefined;\n        }, TouchIdleDelay);\n    };\n    /**\n     * Get the styles for the current option.\n     * @param item - Item props for the current option\n     */\n    ComboBoxInternal.prototype._getCaretButtonStyles = function () {\n        var customCaretDownButtonStyles = this.props.caretDownButtonStyles;\n        return getCaretDownButtonStyles(this.props.theme, customCaretDownButtonStyles);\n    };\n    /**\n     * Get the styles for the current option.\n     * @param item - Item props for the current option\n     */\n    ComboBoxInternal.prototype._getCurrentOptionStyles = function (item) {\n        var customStylesForAllOptions = this.props.comboBoxOptionStyles;\n        var customStylesForCurrentOption = item.styles;\n        return getOptionStyles(this.props.theme, customStylesForAllOptions, customStylesForCurrentOption, this._isPendingOption(item), item.hidden, this._isOptionHighlighted(item.index));\n    };\n    /**\n     * Get the aria autocomplete value for the combo box\n     * @returns 'inline' if auto-complete automatically dynamic, 'both' if we have a list of possible values to pick from\n     * and can dynamically populate input, and 'list' if auto-complete is not enabled as selection is the only option.\n     * Ideally, this should be 'none' if auto-complete is not enabled, but there is a known bug in Edge\n     * where the callout may appear over the combo box if this attribute is set to 'none'\n     */\n    ComboBoxInternal.prototype._getAriaAutoCompleteValue = function () {\n        var autoComplete = !this.props.disabled && this.props.autoComplete === 'on';\n        return autoComplete ? (this.props.allowFreeform ? 'inline' : 'both') : 'list';\n    };\n    ComboBoxInternal.prototype._isPendingOption = function (item) {\n        return item && item.index === this.state.currentPendingValueValidIndex;\n    };\n    /**\n     * Returns true if the component has some kind of focus. If it's either focusing or if it's focused\n     */\n    ComboBoxInternal.prototype._hasFocus = function () {\n        return this.state.focusState !== 'none';\n    };\n    ComboBoxInternal = __decorate([\n        customizable('ComboBox', ['theme', 'styles'], true)\n    ], ComboBoxInternal);\n    return ComboBoxInternal;\n}(React.Component));\n/**\n * Get the indices of the options that are marked as selected\n * @param options - the combo box options\n * @param selectedKeys - the known selected keys to find\n * @returns - an array of the indices of the selected options, empty array if nothing is selected\n */\nfunction getSelectedIndices(options, selectedKeys) {\n    if (!options || !selectedKeys) {\n        return [];\n    }\n    var selectedIndices = {};\n    options.forEach(function (option, index) {\n        if (option.selected) {\n            selectedIndices[index] = true;\n        }\n    });\n    var _loop_1 = function (selectedKey) {\n        var index = findIndex(options, function (option) { return option.key === selectedKey; });\n        if (index > -1) {\n            selectedIndices[index] = true;\n        }\n    };\n    for (var _i = 0, selectedKeys_1 = selectedKeys; _i < selectedKeys_1.length; _i++) {\n        var selectedKey = selectedKeys_1[_i];\n        _loop_1(selectedKey);\n    }\n    return Object.keys(selectedIndices).map(Number).sort();\n}\n/**\n * Given default selected key(s) and selected key(s), return the selected keys(s).\n * When default selected key(s) are available, they take precedence and return them instead of selected key(s).\n *\n * @returns No matter what specific types the input parameters are, always return an array of\n *  either strings or numbers instead of primitive type.  This normalization makes caller's logic easier.\n */\nfunction buildDefaultSelectedKeys(defaultSelectedKey, selectedKey) {\n    var selectedKeys = buildSelectedKeys(defaultSelectedKey);\n    if (selectedKeys.length) {\n        return selectedKeys;\n    }\n    return buildSelectedKeys(selectedKey);\n}\nfunction buildSelectedKeys(selectedKey) {\n    if (selectedKey === undefined) {\n        return [];\n    }\n    // need to cast here so typescript does not complain\n    return (selectedKey instanceof Array ? selectedKey : [selectedKey]);\n}\nfunction normalizeToString(value) {\n    return value || '';\n}\n/**\n * Is the index within the bounds of the array?\n * @param options - options to check if the index is valid for\n * @param index - the index to check\n * @returns - true if the index is valid for the given options, false otherwise\n */\nfunction indexWithinBounds(options, index) {\n    return !!options && index >= 0 && index < options.length;\n}\n/** Whether this is a normal option, not a header or divider or select all. */\nfunction isNormalOption(option) {\n    return (option.itemType !== SelectableOptionMenuItemType.Header &&\n        option.itemType !== SelectableOptionMenuItemType.Divider &&\n        option.itemType !== SelectableOptionMenuItemType.SelectAll);\n}\n/** Whether this is a selectable option, not a header or divider. */\nfunction isSelectableOption(option) {\n    return (option.itemType !== SelectableOptionMenuItemType.Header && option.itemType !== SelectableOptionMenuItemType.Divider);\n}\n/**\n * For scenarios where the option's `text` prop contains embedded styles, we use the option's\n * `ariaLabel` value as the text in the input and for autocomplete matching. We know to use this\n * when the `useAriaLabelAsText` prop is set to true.\n */\nfunction getPreviewText(item) {\n    return item.useAriaLabelAsText && item.ariaLabel ? item.ariaLabel : item.text;\n}\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n    // eslint-disable-next-line deprecation/deprecation\n    return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\n//# sourceMappingURL=ComboBox.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (styles, className, isOpen, disabled, required, focused, allowFreeForm, hasErrorMessage) {\n    return {\n        container: mergeStyles('ms-ComboBox-container', className, styles.container),\n        label: mergeStyles(styles.label, disabled && styles.labelDisabled),\n        root: mergeStyles('ms-ComboBox', hasErrorMessage ? styles.rootError : isOpen && 'is-open', required && 'is-required', styles.root, !allowFreeForm && styles.rootDisallowFreeForm, hasErrorMessage && !focused ? styles.rootError : !disabled && focused && styles.rootFocused, !disabled && {\n            selectors: {\n                ':hover': hasErrorMessage ? styles.rootError : !isOpen && !focused && styles.rootHovered,\n                ':active': hasErrorMessage ? styles.rootError : styles.rootPressed,\n                ':focus': hasErrorMessage ? styles.rootError : styles.rootFocused,\n            },\n        }, disabled && ['is-disabled', styles.rootDisabled]),\n        input: mergeStyles('ms-ComboBox-Input', styles.input, disabled && styles.inputDisabled),\n        errorMessage: mergeStyles(styles.errorMessage),\n        callout: mergeStyles('ms-ComboBox-callout', styles.callout),\n        optionsContainerWrapper: mergeStyles('ms-ComboBox-optionsContainerWrapper', styles.optionsContainerWrapper),\n        optionsContainer: mergeStyles('ms-ComboBox-optionsContainer', styles.optionsContainer),\n        header: mergeStyles('ms-ComboBox-header', styles.header),\n        divider: mergeStyles('ms-ComboBox-divider', styles.divider),\n        screenReaderText: mergeStyles(styles.screenReaderText),\n    };\n});\nexport var getComboBoxOptionClassNames = memoizeFunction(function (styles) {\n    return {\n        optionText: mergeStyles('ms-ComboBox-optionText', styles.optionText),\n        root: mergeStyles('ms-ComboBox-option', styles.root, {\n            selectors: {\n                ':hover': styles.rootHovered,\n                ':focus': styles.rootFocused,\n                ':active': styles.rootPressed,\n            },\n        }),\n        optionTextWrapper: mergeStyles(styles.optionTextWrapper),\n    };\n});\n//# sourceMappingURL=ComboBox.classNames.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the elements which are child elements of the given element.\n * If `allowVirtualChildren` is `true`, this method enumerates virtual child elements\n * after the original children.\n * @param parent - The element to get the children of.\n * @param allowVirtualChildren - true if the method should enumerate virtual child elements.\n */\nexport function getChildren(parent, allowVirtualChildren) {\n    if (allowVirtualChildren === void 0) { allowVirtualChildren = true; }\n    var children = [];\n    if (parent) {\n        for (var i = 0; i < parent.children.length; i++) {\n            children.push(parent.children.item(i));\n        }\n        if (allowVirtualChildren && isVirtualElement(parent)) {\n            children.push.apply(children, parent._virtual.children);\n        }\n    }\n    return children;\n}\n//# sourceMappingURL=getChildren.js.map","import { __assign, __rest } from \"tslib\";\nimport { memoizeFunction } from '../../Utilities';\nvar COMMAND_BAR_HEIGHT = 44;\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme;\n    var semanticColors = theme.semanticColors;\n    return {\n        root: [\n            theme.fonts.medium,\n            'ms-CommandBar',\n            {\n                display: 'flex',\n                backgroundColor: semanticColors.bodyBackground,\n                padding: '0 14px 0 24px',\n                height: COMMAND_BAR_HEIGHT,\n            },\n            className,\n        ],\n        primarySet: [\n            'ms-CommandBar-primaryCommand',\n            {\n                flexGrow: '1',\n                display: 'flex',\n                alignItems: 'stretch',\n            },\n        ],\n        secondarySet: [\n            'ms-CommandBar-secondaryCommand',\n            {\n                flexShrink: '0',\n                display: 'flex',\n                alignItems: 'stretch',\n            },\n        ],\n    };\n};\nexport var getCommandButtonStyles = memoizeFunction(function (customStyles) {\n    var rootStyles = {\n        height: '100%',\n    };\n    var labelStyles = {\n        whiteSpace: 'nowrap',\n    };\n    var _a = customStyles || {}, root = _a.root, label = _a.label, restCustomStyles = __rest(_a, [\"root\", \"label\"]);\n    return __assign(__assign({}, restCustomStyles), { root: root ? [rootStyles, root] : rootStyles, label: label ? [labelStyles, label] : labelStyles });\n});\n//# sourceMappingURL=CommandBar.styles.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, nullRender, getNativeProps, divProperties, composeComponentAs, initializeComponentRef, } from '../../Utilities';\nimport { OverflowSet } from '../../OverflowSet';\nimport { ResizeGroup } from '../../ResizeGroup';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { CommandBarButton } from '../../Button';\nimport { TooltipHost } from '../../Tooltip';\nimport { getCommandButtonStyles } from './CommandBar.styles';\nvar getClassNames = classNamesFunction();\nvar CommandBarBase = /** @class */ (function (_super) {\n    __extends(CommandBarBase, _super);\n    function CommandBarBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._overflowSet = React.createRef();\n        _this._resizeGroup = React.createRef();\n        _this._onRenderData = function (data) {\n            var _a = _this.props, ariaLabel = _a.ariaLabel, primaryGroupAriaLabel = _a.primaryGroupAriaLabel, farItemsGroupAriaLabel = _a.farItemsGroupAriaLabel;\n            var hasSecondSet = data.farItems && data.farItems.length > 0;\n            return (React.createElement(FocusZone, { className: css(_this._classNames.root), direction: FocusZoneDirection.horizontal, role: 'menubar', \"aria-label\": ariaLabel },\n                React.createElement(OverflowSet, { role: hasSecondSet ? 'group' : 'none', \"aria-label\": hasSecondSet ? primaryGroupAriaLabel : undefined, componentRef: _this._overflowSet, className: css(_this._classNames.primarySet), items: data.primaryItems, overflowItems: data.overflowItems.length ? data.overflowItems : undefined, onRenderItem: _this._onRenderItem, onRenderOverflowButton: _this._onRenderOverflowButton }),\n                hasSecondSet && (React.createElement(OverflowSet, { role: \"group\", \"aria-label\": farItemsGroupAriaLabel, className: css(_this._classNames.secondarySet), items: data.farItems, onRenderItem: _this._onRenderItem, onRenderOverflowButton: nullRender }))));\n        };\n        _this._onRenderItem = function (item) {\n            if (item.onRender) {\n                // These are the top level items, there is no relevant menu dismissing function to\n                // provide for the IContextualMenuItem onRender function. Pass in a no op function instead.\n                return item.onRender(item, function () { return undefined; });\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            var itemText = item.text || item.name;\n            var commandButtonProps = __assign(__assign({ allowDisabledFocus: true, role: 'menuitem' }, item), { styles: getCommandButtonStyles(item.buttonStyles), className: css('ms-CommandBarItem-link', item.className), text: !item.iconOnly ? itemText : undefined, menuProps: item.subMenuProps, onClick: _this._onButtonClick(item) });\n            if (item.iconOnly && (itemText !== undefined || item.tooltipHostProps)) {\n                return (React.createElement(TooltipHost, __assign({ role: \"none\", content: itemText, setAriaDescribedBy: false }, item.tooltipHostProps), _this._commandButton(item, commandButtonProps)));\n            }\n            return _this._commandButton(item, commandButtonProps);\n        };\n        _this._commandButton = function (item, props) {\n            var ButtonAs = _this.props.buttonAs;\n            var CommandBarButtonAs = item.commandBarButtonAs;\n            var DefaultButtonAs = CommandBarButton;\n            // The prop types between these three possible implementations overlap enough that a force-cast is safe.\n            var Type = DefaultButtonAs;\n            if (CommandBarButtonAs) {\n                Type = composeComponentAs(CommandBarButtonAs, Type);\n            }\n            if (ButtonAs) {\n                Type = composeComponentAs(ButtonAs, Type);\n            }\n            // Always pass the default implementation to the override so it may be composed.\n            return React.createElement(Type, __assign({}, props));\n        };\n        _this._onRenderOverflowButton = function (overflowItems) {\n            var _a = _this.props.overflowButtonProps, overflowButtonProps = _a === void 0 ? {} : _a;\n            var combinedOverflowItems = __spreadArray(__spreadArray([], (overflowButtonProps.menuProps ? overflowButtonProps.menuProps.items : []), true), overflowItems, true);\n            var overflowProps = __assign(__assign({ role: 'menuitem' }, overflowButtonProps), { styles: __assign({ menuIcon: { fontSize: '17px' } }, overflowButtonProps.styles), className: css('ms-CommandBar-overflowButton', overflowButtonProps.className), menuProps: __assign(__assign({}, overflowButtonProps.menuProps), { items: combinedOverflowItems }), menuIconProps: __assign({ iconName: 'More' }, overflowButtonProps.menuIconProps) });\n            var OverflowButtonType = _this.props.overflowButtonAs\n                ? composeComponentAs(_this.props.overflowButtonAs, CommandBarButton)\n                : CommandBarButton;\n            return React.createElement(OverflowButtonType, __assign({}, overflowProps));\n        };\n        _this._onReduceData = function (data) {\n            var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataReduced = _a.onDataReduced;\n            var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;\n            var farItems = data.farItems;\n            // Use first item if shiftOnReduce, otherwise use last item\n            var movedItem = primaryItems[shiftOnReduce ? 0 : primaryItems.length - 1];\n            if (movedItem !== undefined) {\n                movedItem.renderedInOverflow = true;\n                overflowItems = __spreadArray([movedItem], overflowItems, true);\n                primaryItems = shiftOnReduce ? primaryItems.slice(1) : primaryItems.slice(0, -1);\n                var newData = __assign(__assign({}, data), { primaryItems: primaryItems, overflowItems: overflowItems });\n                cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, overflow: overflowItems.length > 0, farItems: farItems });\n                if (onDataReduced) {\n                    onDataReduced(movedItem);\n                }\n                newData.cacheKey = cacheKey;\n                return newData;\n            }\n            return undefined;\n        };\n        _this._onGrowData = function (data) {\n            var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataGrown = _a.onDataGrown;\n            var minimumOverflowItems = data.minimumOverflowItems;\n            var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;\n            var farItems = data.farItems;\n            var movedItem = overflowItems[0];\n            // Make sure that moved item exists and is not one of the original overflow items\n            if (movedItem !== undefined && overflowItems.length > minimumOverflowItems) {\n                movedItem.renderedInOverflow = false;\n                overflowItems = overflowItems.slice(1);\n                // if shiftOnReduce, movedItem goes first, otherwise, last.\n                primaryItems = shiftOnReduce ? __spreadArray([movedItem], primaryItems, true) : __spreadArray(__spreadArray([], primaryItems, true), [movedItem], false);\n                var newData = __assign(__assign({}, data), { primaryItems: primaryItems, overflowItems: overflowItems });\n                cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, overflow: overflowItems.length > 0, farItems: farItems });\n                if (onDataGrown) {\n                    onDataGrown(movedItem);\n                }\n                newData.cacheKey = cacheKey;\n                return newData;\n            }\n            return undefined;\n        };\n        initializeComponentRef(_this);\n        return _this;\n    }\n    CommandBarBase.prototype.render = function () {\n        var _a = this.props, items = _a.items, overflowItems = _a.overflowItems, farItems = _a.farItems, styles = _a.styles, theme = _a.theme, dataDidRender = _a.dataDidRender, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c, _d = _a.resizeGroupAs, ResizeGroupAs = _d === void 0 ? ResizeGroup : _d;\n        var commandBarData = {\n            primaryItems: __spreadArray([], items, true),\n            overflowItems: __spreadArray([], overflowItems, true),\n            minimumOverflowItems: __spreadArray([], overflowItems, true).length,\n            farItems: farItems,\n            cacheKey: this._computeCacheKey({\n                primaryItems: __spreadArray([], items, true),\n                overflow: overflowItems && overflowItems.length > 0,\n                farItems: farItems,\n            }),\n        };\n        this._classNames = getClassNames(styles, { theme: theme });\n        // ResizeGroup will render these attributes to the root <div>.\n        // TODO We may need to elevate classNames from <FocusZone> into <ResizeGroup> ?\n        var nativeProps = getNativeProps(this.props, divProperties);\n        return (React.createElement(ResizeGroupAs, __assign({}, nativeProps, { componentRef: this._resizeGroup, data: commandBarData, onReduceData: onReduceData, onGrowData: onGrowData, onRenderData: this._onRenderData, dataDidRender: dataDidRender })));\n    };\n    CommandBarBase.prototype.focus = function () {\n        var overflowSet = this._overflowSet.current;\n        overflowSet && overflowSet.focus();\n    };\n    CommandBarBase.prototype.remeasure = function () {\n        this._resizeGroup.current && this._resizeGroup.current.remeasure();\n    };\n    CommandBarBase.prototype._onButtonClick = function (item) {\n        return function (ev) {\n            // inactive is deprecated. remove check in 7.0\n            // eslint-disable-next-line deprecation/deprecation\n            if (item.inactive) {\n                return;\n            }\n            if (item.onClick) {\n                item.onClick(ev, item);\n            }\n        };\n    };\n    CommandBarBase.prototype._computeCacheKey = function (data) {\n        var primaryItems = data.primaryItems, overflow = data.overflow, farItems = data.farItems;\n        var returnKey = function (acc, current) {\n            var _a = current.cacheKey, cacheKey = _a === void 0 ? current.key : _a;\n            return acc + cacheKey;\n        };\n        var primaryKey = primaryItems && primaryItems.reduce(returnKey, '');\n        var overflowKey = overflow ? 'overflow' : '';\n        var farKey = farItems && farItems.reduce(returnKey, '');\n        return [primaryKey, overflowKey, farKey].join('');\n    };\n    CommandBarBase.defaultProps = {\n        items: [],\n        overflowItems: [],\n    };\n    return CommandBarBase;\n}(React.Component));\nexport { CommandBarBase };\n//# sourceMappingURL=CommandBar.base.js.map","import { styled } from '../../Utilities';\nimport { CommandBarBase } from './CommandBar.base';\nimport { getStyles } from './CommandBar.styles';\n// Create a CommandBar variant which uses these default styles and this styled subcomponent.\nexport var CommandBar = styled(CommandBarBase, getStyles, undefined, {\n    scope: 'CommandBar',\n});\n//# sourceMappingURL=CommandBar.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n    if (item.canCheck) {\n        return !!(item.isChecked || item.checked);\n    }\n    if (typeof item.isChecked === 'boolean') {\n        return item.isChecked;\n    }\n    if (typeof item.checked === 'boolean') {\n        return item.checked;\n    }\n    // Item is not checkable.\n    return null;\n}\nexport function hasSubmenu(item) {\n    // eslint-disable-next-line deprecation/deprecation\n    return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n    return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n    var isChecked = getIsChecked(item);\n    var canCheck = isChecked !== null;\n    return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar defaultIconRenderer = function (props) {\n    var item = props.item, classNames = props.classNames;\n    var iconProps = item.iconProps;\n    return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderItemIcon = function (props) {\n    var item = props.item, hasIcons = props.hasIcons;\n    if (!hasIcons) {\n        return null;\n    }\n    if (item.onRenderIcon) {\n        return item.onRenderIcon(props, defaultIconRenderer);\n    }\n    return defaultIconRenderer(props);\n};\nvar renderCheckMarkIcon = function (_a) {\n    var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n    var isItemChecked = getIsChecked(item);\n    if (onCheckmarkClick) {\n        // Ensures that the item is passed as the first argument to the checkmark click callback.\n        var onClick = function (e) { return onCheckmarkClick(item, e); };\n        return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n            // eslint-disable-next-line react/jsx-no-bind\n            onClick: onClick }));\n    }\n    return null;\n};\nvar renderItemName = function (_a) {\n    var item = _a.item, classNames = _a.classNames;\n    /* eslint-disable deprecation/deprecation */\n    if (item.text || item.name) {\n        return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n    }\n    /* eslint-enable deprecation/deprecation */\n    return null;\n};\nvar renderSecondaryText = function (_a) {\n    var item = _a.item, classNames = _a.classNames;\n    if (item.secondaryText) {\n        return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n    }\n    return null;\n};\nvar renderSubMenuIcon = function (_a) {\n    var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n    if (hasSubmenu(item)) {\n        return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n    }\n    return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n    __extends(ContextualMenuItemBase, _super);\n    function ContextualMenuItemBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this.openSubMenu = function () {\n            var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n            if (getSubmenuTarget) {\n                var submenuTarget = getSubmenuTarget();\n                if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n                    openSubMenu(item, submenuTarget);\n                }\n            }\n        };\n        _this.dismissSubMenu = function () {\n            var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n            if (hasSubmenu(item) && dismissSubMenu) {\n                dismissSubMenu();\n            }\n        };\n        _this.dismissMenu = function (dismissAll) {\n            var dismissMenu = _this.props.dismissMenu;\n            if (dismissMenu) {\n                dismissMenu(undefined /* ev */, dismissAll);\n            }\n        };\n        initializeComponentRef(_this);\n        return _this;\n    }\n    ContextualMenuItemBase.prototype.render = function () {\n        var _a = this.props, item = _a.item, classNames = _a.classNames;\n        var renderContent = item.onRenderContent || this._renderLayout;\n        return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n            renderCheckMarkIcon: renderCheckMarkIcon,\n            renderItemIcon: renderItemIcon,\n            renderItemName: renderItemName,\n            renderSecondaryText: renderSecondaryText,\n            renderSubMenuIcon: renderSubMenuIcon,\n        })));\n    };\n    ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n        return (React.createElement(React.Fragment, null,\n            defaultRenders.renderCheckMarkIcon(props),\n            defaultRenders.renderItemIcon(props),\n            defaultRenders.renderItemName(props),\n            defaultRenders.renderSecondaryText(props),\n            defaultRenders.renderSubMenuIcon(props)));\n    };\n    return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n    return mergeStyleSets({\n        wrapper: {\n            display: 'inline-flex',\n            height: '100%',\n            alignItems: 'center',\n        },\n        divider: {\n            width: 1,\n            height: '100%',\n            backgroundColor: theme.palette.neutralTertiaryAlt,\n        },\n    });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n    var _a, _b, _c, _d, _e;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n    var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n    var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n    var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n    var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n    var menuItemStyles = {\n        item: [\n            fonts.medium,\n            {\n                color: semanticColors.bodyText,\n                position: 'relative',\n                boxSizing: 'border-box',\n            },\n        ],\n        divider: {\n            display: 'block',\n            height: '1px',\n            backgroundColor: ContextualMenuItemDividerColor,\n            position: 'relative',\n        },\n        root: [\n            getFocusStyle(theme),\n            fonts.medium,\n            {\n                color: semanticColors.bodyText,\n                backgroundColor: 'transparent',\n                border: 'none',\n                width: '100%',\n                height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                display: 'block',\n                cursor: 'pointer',\n                padding: '0px 8px 0 4px',\n                textAlign: 'left',\n            },\n        ],\n        rootDisabled: {\n            color: semanticColors.disabledBodyText,\n            cursor: 'default',\n            pointerEvents: 'none',\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    // ensure disabled text looks different than enabled\n                    color: 'GrayText',\n                    opacity: 1,\n                },\n                _a),\n        },\n        rootHovered: {\n            backgroundColor: ContextualMenuItemBackgroundHoverColor,\n            color: ContextualMenuItemTextHoverColor,\n            selectors: {\n                '.ms-ContextualMenu-icon': {\n                    color: palette.themeDarkAlt,\n                },\n                '.ms-ContextualMenu-submenuIcon': {\n                    color: palette.neutralPrimary,\n                },\n            },\n        },\n        rootFocused: {\n            backgroundColor: palette.white,\n        },\n        rootChecked: {\n            selectors: {\n                '.ms-ContextualMenu-checkmarkIcon': {\n                    color: palette.neutralPrimary,\n                },\n            },\n        },\n        rootPressed: {\n            backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n            selectors: {\n                '.ms-ContextualMenu-icon': {\n                    color: palette.themeDark,\n                },\n                '.ms-ContextualMenu-submenuIcon': {\n                    color: palette.neutralPrimary,\n                },\n            },\n        },\n        rootExpanded: {\n            backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n            color: semanticColors.bodyTextChecked,\n            selectors: (_b = {\n                    '.ms-ContextualMenu-submenuIcon': (_c = {},\n                        _c[HighContrastSelector] = {\n                            // icons inside of anchor tags are not properly inheriting color in high contrast\n                            color: 'inherit',\n                        },\n                        _c)\n                },\n                _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n                _b),\n        },\n        linkContent: {\n            whiteSpace: 'nowrap',\n            height: 'inherit',\n            display: 'flex',\n            alignItems: 'center',\n            maxWidth: '100%',\n        },\n        anchorLink: {\n            padding: '0px 8px 0 4px',\n            textRendering: 'auto',\n            color: 'inherit',\n            letterSpacing: 'normal',\n            wordSpacing: 'normal',\n            textTransform: 'none',\n            textIndent: '0px',\n            textShadow: 'none',\n            textDecoration: 'none',\n            boxSizing: 'border-box',\n        },\n        label: {\n            margin: '0 4px',\n            verticalAlign: 'middle',\n            display: 'inline-block',\n            flexGrow: '1',\n            textOverflow: 'ellipsis',\n            whiteSpace: 'nowrap',\n            overflow: 'hidden',\n        },\n        secondaryText: {\n            color: theme.palette.neutralSecondary,\n            paddingLeft: '20px',\n            textAlign: 'right',\n        },\n        icon: {\n            display: 'inline-block',\n            minHeight: '1px',\n            maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n            fontSize: IconFontSizes.medium,\n            width: IconFontSizes.medium,\n            margin: '0 4px',\n            verticalAlign: 'middle',\n            flexShrink: '0',\n            selectors: (_d = {},\n                _d[MediumScreenSelector] = {\n                    fontSize: IconFontSizes.large,\n                    width: IconFontSizes.large,\n                },\n                _d),\n        },\n        iconColor: {\n            color: semanticColors.menuIcon,\n        },\n        iconDisabled: {\n            color: semanticColors.disabledBodyText,\n        },\n        checkmarkIcon: {\n            color: semanticColors.bodySubtext,\n        },\n        subMenuIcon: {\n            height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n            lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n            color: palette.neutralSecondary,\n            textAlign: 'center',\n            display: 'inline-block',\n            verticalAlign: 'middle',\n            flexShrink: '0',\n            fontSize: IconFontSizes.small,\n            selectors: (_e = {\n                    ':hover': {\n                        color: palette.neutralPrimary,\n                    },\n                    ':active': {\n                        color: palette.neutralPrimary,\n                    }\n                },\n                _e[MediumScreenSelector] = {\n                    fontSize: IconFontSizes.medium, // 16px\n                },\n                _e),\n        },\n        splitButtonFlexContainer: [\n            getFocusStyle(theme),\n            {\n                display: 'flex',\n                height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                flexWrap: 'nowrap',\n                justifyContent: 'center',\n                alignItems: 'flex-start',\n            },\n        ],\n    };\n    return concatStyleSets(menuItemStyles);\n});\n//# sourceMappingURL=ContextualMenu.cnstyles.js.map","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium, hiddenContentStyle, } from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nvar CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getSplitButtonVerticalDividerClassNames = memoizeFunction(\n/* eslint-disable deprecation/deprecation */\nfunction (theme) {\n    var _a;\n    return mergeStyleSets(getDividerClassNames(theme), {\n        /* eslint-enable deprecation/deprecation */\n        wrapper: {\n            position: 'absolute',\n            right: 28,\n            selectors: (_a = {},\n                _a[MediumScreenSelector] = {\n                    right: 32, // fontSize of the icon increased from 12px to 16px\n                },\n                _a),\n        },\n        divider: {\n            height: 16,\n            width: 1,\n        },\n    });\n});\nvar GlobalClassNames = {\n    item: 'ms-ContextualMenu-item',\n    divider: 'ms-ContextualMenu-divider',\n    root: 'ms-ContextualMenu-link',\n    isChecked: 'is-checked',\n    isExpanded: 'is-expanded',\n    isDisabled: 'is-disabled',\n    linkContent: 'ms-ContextualMenu-linkContent',\n    linkContentMenu: 'ms-ContextualMenu-linkContent',\n    icon: 'ms-ContextualMenu-icon',\n    iconColor: 'ms-ContextualMenu-iconColor',\n    checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n    subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n    label: 'ms-ContextualMenu-itemText',\n    secondaryText: 'ms-ContextualMenu-secondaryText',\n    splitMenu: 'ms-ContextualMenu-splitMenu',\n    screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n/**\n * @deprecated Will be removed in \\>= 7.0.\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * @internal\n */\n// TODO: Audit perf. impact of and potentially remove memoizeFunction.\n// https://github.com/microsoft/fluentui/issues/5534\nexport var getItemClassNames = memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {\n    var _a, _b, _c, _d;\n    var styles = getMenuItemStyles(theme);\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return mergeStyleSets({\n        item: [classNames.item, styles.item, itemClassName],\n        divider: [classNames.divider, styles.divider, dividerClassName],\n        root: [\n            classNames.root,\n            styles.root,\n            checked && [classNames.isChecked, styles.rootChecked],\n            isAnchorLink && styles.anchorLink,\n            expanded && [classNames.isExpanded, styles.rootExpanded],\n            disabled && [classNames.isDisabled, styles.rootDisabled],\n            !disabled &&\n                !expanded && [\n                {\n                    selectors: (_a = {\n                            ':hover': styles.rootHovered,\n                            ':active': styles.rootPressed\n                        },\n                        _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n                        _a[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n                        _a),\n                },\n            ],\n            className,\n        ],\n        splitPrimary: [\n            styles.root,\n            {\n                width: \"calc(100% - \".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH, \")\"),\n            },\n            checked && ['is-checked', styles.rootChecked],\n            (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n            !(disabled || primaryDisabled) &&\n                !checked && [\n                {\n                    selectors: (_b = {\n                            ':hover': styles.rootHovered\n                        },\n                        // when hovering over the splitPrimary also affect the splitMenu\n                        _b[\":hover ~ .\".concat(classNames.splitMenu)] = styles.rootHovered,\n                        _b[':active'] = styles.rootPressed,\n                        _b[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n                        _b[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n                        _b),\n                },\n            ],\n        ],\n        splitMenu: [\n            classNames.splitMenu,\n            styles.root,\n            {\n                flexBasis: '0',\n                padding: '0 8px',\n                minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n            },\n            expanded && ['is-expanded', styles.rootExpanded],\n            disabled && ['is-disabled', styles.rootDisabled],\n            !disabled &&\n                !expanded && [\n                {\n                    selectors: (_c = {\n                            ':hover': styles.rootHovered,\n                            ':active': styles.rootPressed\n                        },\n                        _c[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n                        _c[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n                        _c),\n                },\n            ],\n        ],\n        anchorLink: styles.anchorLink,\n        linkContent: [classNames.linkContent, styles.linkContent],\n        linkContentMenu: [\n            classNames.linkContentMenu,\n            styles.linkContent,\n            {\n                justifyContent: 'center',\n            },\n        ],\n        icon: [\n            classNames.icon,\n            knownIcon && styles.iconColor,\n            styles.icon,\n            iconClassName,\n            disabled && [classNames.isDisabled, styles.iconDisabled],\n        ],\n        iconColor: styles.iconColor,\n        checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n        subMenuIcon: [\n            classNames.subMenuIcon,\n            styles.subMenuIcon,\n            subMenuClassName,\n            expanded && { color: theme.palette.neutralPrimary },\n            disabled && [styles.iconDisabled],\n        ],\n        label: [classNames.label, styles.label],\n        secondaryText: [classNames.secondaryText, styles.secondaryText],\n        splitContainer: [\n            styles.splitButtonFlexContainer,\n            !disabled &&\n                !checked && [\n                {\n                    selectors: (_d = {},\n                        _d[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n                        _d),\n                },\n            ],\n        ],\n        screenReaderText: [\n            classNames.screenReaderText,\n            styles.screenReaderText,\n            hiddenContentStyle,\n            { visibility: 'hidden' },\n        ],\n    });\n});\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props - the ContextualMenuItem style props used to generate its styles.\n */\nexport var getItemStyles = function (props) {\n    var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;\n    // eslint-disable-next-line deprecation/deprecation\n    return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);\n};\n//# sourceMappingURL=ContextualMenu.classNames.js.map","import { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n/**\n * ContextualMenuItem description\n */\nexport var ContextualMenuItem = styled(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n//# sourceMappingURL=ContextualMenuItem.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nvar ContextualMenuItemWrapper = /** @class */ (function (_super) {\n    __extends(ContextualMenuItemWrapper, _super);\n    function ContextualMenuItemWrapper(props) {\n        var _this = _super.call(this, props) || this;\n        _this._onItemMouseEnter = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n            if (onItemMouseEnter) {\n                onItemMouseEnter(item, ev, ev.currentTarget);\n            }\n        };\n        _this._onItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n            if (onItemClickBase) {\n                onItemClickBase(item, ev, ev.currentTarget);\n            }\n        };\n        _this._onItemMouseLeave = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;\n            if (onItemMouseLeave) {\n                onItemMouseLeave(item, ev);\n            }\n        };\n        _this._onItemKeyDown = function (ev) {\n            var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n            if (onItemKeyDown) {\n                onItemKeyDown(item, ev);\n            }\n        };\n        _this._onItemMouseMove = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n            if (onItemMouseMove) {\n                onItemMouseMove(item, ev, ev.currentTarget);\n            }\n        };\n        _this._getSubmenuTarget = function () {\n            return undefined;\n        };\n        initializeComponentRef(_this);\n        return _this;\n    }\n    ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {\n        return !shallowCompare(newProps, this.props);\n    };\n    return ContextualMenuItemWrapper;\n}(React.Component));\nexport { ContextualMenuItemWrapper };\n//# sourceMappingURL=ContextualMenuItemWrapper.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuAnchor = /** @class */ (function (_super) {\n    __extends(ContextualMenuAnchor, _super);\n    function ContextualMenuAnchor() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._anchor = React.createRef();\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._getSubmenuTarget = function () {\n            return _this._anchor.current ? _this._anchor.current : undefined;\n        };\n        _this._onItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;\n            if (onItemClick) {\n                onItemClick(item, ev);\n            }\n        };\n        _this._renderAriaDescription = function (ariaDescription, className) {\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n            return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n        };\n        return _this;\n    }\n    ContextualMenuAnchor.prototype.render = function () {\n        var _this = this;\n        var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n        var ChildrenRenderer = ContextualMenuItem;\n        if (this.props.item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (this.props.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n        }\n        var anchorRel = item.rel;\n        if (item.target && item.target.toLowerCase() === '_blank') {\n            anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n        }\n        var itemHasSubmenu = hasSubmenu(item);\n        var nativeProps = getNativeProps(item, anchorProperties);\n        var disabled = isItemDisabled(item);\n        var itemProps = item.itemProps, ariaDescription = item.ariaDescription;\n        var keytipProps = item.keytipProps;\n        if (keytipProps && itemHasSubmenu) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n        // the description in it to be added to ariaDescribedBy\n        if (ariaDescription) {\n            this._ariaDescriptionId = getId();\n        }\n        var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, nativeProps['aria-describedby']);\n        var additionalItemProperties = {\n            'aria-describedby': ariaDescribedByIds,\n        };\n        return (React.createElement(\"div\", null,\n            React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, additionalItemProperties, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: \"menuitem\", \"aria-haspopup\": itemHasSubmenu || undefined, \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, \"aria-disabled\": isItemDisabled(item), \n                // eslint-disable-next-line deprecation/deprecation\n                style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n                React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n                _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n    };\n    return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, getMenuItemAriaRole, hasSubmenu, isItemDisabled } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nvar TouchIdleDelay = 500; /* ms */\nvar ContextualMenuSplitButton = /** @class */ (function (_super) {\n    __extends(ContextualMenuSplitButton, _super);\n    function ContextualMenuSplitButton(props) {\n        var _this = _super.call(this, props) || this;\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._onItemKeyDown = function (ev) {\n            var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter) {\n                _this._executeItemClick(ev);\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n            else if (onItemKeyDown) {\n                onItemKeyDown(item, ev);\n            }\n        };\n        _this._getSubmenuTarget = function () {\n            return _this._splitButton;\n        };\n        _this._renderAriaDescription = function (ariaDescription, className) {\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n            return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n        };\n        _this._onItemMouseEnterPrimary = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n            if (onItemMouseEnter) {\n                onItemMouseEnter(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n            }\n        };\n        _this._onItemMouseEnterIcon = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n            if (onItemMouseEnter) {\n                onItemMouseEnter(item, ev, _this._splitButton);\n            }\n        };\n        _this._onItemMouseMovePrimary = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n            if (onItemMouseMove) {\n                onItemMouseMove(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n            }\n        };\n        _this._onItemMouseMoveIcon = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n            if (onItemMouseMove) {\n                onItemMouseMove(item, ev, _this._splitButton);\n            }\n        };\n        _this._onIconItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n            if (onItemClickBase) {\n                onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));\n            }\n        };\n        _this._executeItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;\n            if (item.disabled || item.isDisabled) {\n                return;\n            }\n            if (_this._processingTouch && !item.canCheck && onItemClick) {\n                return onItemClick(item, ev);\n            }\n            if (executeItemClick) {\n                executeItemClick(item, ev);\n            }\n        };\n        _this._onTouchStart = function (ev) {\n            if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {\n                _this._handleTouchAndPointerEvent(ev);\n            }\n        };\n        _this._onPointerDown = function (ev) {\n            if (ev.pointerType === 'touch') {\n                _this._handleTouchAndPointerEvent(ev);\n                ev.preventDefault();\n                ev.stopImmediatePropagation();\n            }\n        };\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        _this._dismissLabelId = getId();\n        return _this;\n    }\n    ContextualMenuSplitButton.prototype.componentDidMount = function () {\n        if (this._splitButton && 'onpointerdown' in this._splitButton) {\n            this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n        }\n    };\n    ContextualMenuSplitButton.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n    };\n    ContextualMenuSplitButton.prototype.render = function () {\n        var _this = this;\n        var _a;\n        var _b = this.props, item = _b.item, classNames = _b.classNames, index = _b.index, focusableElementIndex = _b.focusableElementIndex, totalItemCount = _b.totalItemCount, hasCheckmarks = _b.hasCheckmarks, hasIcons = _b.hasIcons, onItemMouseLeave = _b.onItemMouseLeave, expandedMenuItemKey = _b.expandedMenuItemKey;\n        var itemHasSubmenu = hasSubmenu(item);\n        var keytipProps = item.keytipProps;\n        if (keytipProps) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n        // the description in it to be added to ariaDescribedBy\n        var ariaDescription = item.ariaDescription;\n        if (ariaDescription) {\n            this._ariaDescriptionId = getId();\n        }\n        var ariaChecked = (_a = getIsChecked(item)) !== null && _a !== void 0 ? _a : undefined;\n        return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: getMenuItemAriaRole(item), \"aria-label\": item.ariaLabel, className: classNames.splitContainer, \"aria-disabled\": isItemDisabled(item), \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-haspopup\": true, \"aria-describedby\": mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes['aria-describedby']), \"aria-checked\": ariaChecked, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, __assign(__assign({}, item), { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, \"data-is-focusable\": true, \"aria-roledescription\": item['aria-roledescription'] },\n            _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),\n            _this._renderSplitDivider(item),\n            _this._renderSplitIconButton(item, classNames, index, keytipAttributes),\n            _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n    };\n    ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, \n    // eslint-disable-next-line deprecation/deprecation\n    classNames, index, hasCheckmarks, hasIcons) {\n        var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemClick = _a.onItemClick;\n        var itemProps = {\n            key: item.key,\n            disabled: isItemDisabled(item) || item.primaryDisabled,\n            /* eslint-disable deprecation/deprecation */\n            name: item.name,\n            text: item.text || item.name,\n            secondaryText: item.secondaryText,\n            /* eslint-enable deprecation/deprecation */\n            className: classNames.splitPrimary,\n            canCheck: item.canCheck,\n            isChecked: item.isChecked,\n            checked: item.checked,\n            iconProps: item.iconProps,\n            id: this._dismissLabelId,\n            onRenderIcon: item.onRenderIcon,\n            data: item.data,\n            'data-is-focusable': false,\n        };\n        var itemComponentProps = item.itemProps;\n        return (React.createElement(\"button\", __assign({}, getNativeProps(itemProps, buttonProperties)),\n            React.createElement(ChildrenRenderer, __assign({ \"data-is-focusable\": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));\n    };\n    ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {\n        var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n        return React.createElement(VerticalDivider, { getClassNames: getDividerClassNames });\n    };\n    ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, // eslint-disable-line deprecation/deprecation\n    index, keytipAttributes) {\n        var _a = this.props, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n        var ChildrenRenderer = ContextualMenuItem;\n        if (this.props.item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (this.props.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n        }\n        var itemProps = {\n            onClick: this._onIconItemClick,\n            disabled: isItemDisabled(item),\n            className: classNames.splitMenu,\n            subMenuProps: item.subMenuProps,\n            submenuIconProps: item.submenuIconProps,\n            split: true,\n            key: item.key,\n            'aria-labelledby': this._dismissLabelId,\n        };\n        var buttonProps = __assign(__assign({}, getNativeProps(itemProps, buttonProperties)), {\n            onMouseEnter: this._onItemMouseEnterIcon,\n            onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n            onMouseDown: function (ev) {\n                return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n            },\n            onMouseMove: this._onItemMouseMoveIcon,\n            'data-is-focusable': false,\n            'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n            'aria-haspopup': true,\n        });\n        var itemComponentProps = item.itemProps;\n        return (React.createElement(\"button\", __assign({}, buttonProps),\n            React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));\n    };\n    ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {\n        var _this = this;\n        var onTap = this.props.onTap;\n        if (onTap) {\n            onTap(ev);\n        }\n        // If we already have an existing timeout from a previous touch/pointer event\n        // cancel that timeout so we can set a new one.\n        if (this._lastTouchTimeoutId) {\n            this._async.clearTimeout(this._lastTouchTimeoutId);\n            this._lastTouchTimeoutId = undefined;\n        }\n        this._processingTouch = true;\n        this._lastTouchTimeoutId = this._async.setTimeout(function () {\n            _this._processingTouch = false;\n            _this._lastTouchTimeoutId = undefined;\n        }, TouchIdleDelay);\n    };\n    return ContextualMenuSplitButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuSplitButton };\n//# sourceMappingURL=ContextualMenuSplitButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuButton = /** @class */ (function (_super) {\n    __extends(ContextualMenuButton, _super);\n    function ContextualMenuButton() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._btn = React.createRef();\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._renderAriaDescription = function (ariaDescription, className) {\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n            return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n        };\n        _this._getSubmenuTarget = function () {\n            return _this._btn.current ? _this._btn.current : undefined;\n        };\n        return _this;\n    }\n    ContextualMenuButton.prototype.render = function () {\n        var _this = this;\n        var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, contextualMenuItemAs = _a.contextualMenuItemAs, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n        var ChildrenRenderer = ContextualMenuItem;\n        if (item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(contextualMenuItemAs, ChildrenRenderer);\n        }\n        var isChecked = getIsChecked(item);\n        var canCheck = isChecked !== null;\n        var defaultRole = getMenuItemAriaRole(item);\n        var itemHasSubmenu = hasSubmenu(item);\n        var itemProps = item.itemProps, ariaLabel = item.ariaLabel, ariaDescription = item.ariaDescription;\n        var buttonNativeProperties = getNativeProps(item, buttonProperties);\n        // Do not add the disabled attribute to the button so that it is focusable\n        delete buttonNativeProperties.disabled;\n        var itemRole = item.role || defaultRole;\n        // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n        // the description in it to be added to ariaDescribedBy\n        if (ariaDescription) {\n            this._ariaDescriptionId = getId();\n        }\n        var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, buttonNativeProperties['aria-describedby']);\n        var itemButtonProperties = {\n            className: classNames.root,\n            onClick: this._onItemClick,\n            onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n            onMouseEnter: this._onItemMouseEnter,\n            onMouseLeave: this._onItemMouseLeave,\n            onMouseDown: function (ev) {\n                return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n            },\n            onMouseMove: this._onItemMouseMove,\n            href: item.href,\n            title: item.title,\n            'aria-label': ariaLabel,\n            'aria-describedby': ariaDescribedByIds,\n            'aria-haspopup': itemHasSubmenu || undefined,\n            'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n            'aria-posinset': focusableElementIndex + 1,\n            'aria-setsize': totalItemCount,\n            'aria-disabled': isItemDisabled(item),\n            'aria-checked': (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n            'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n            role: itemRole,\n            // eslint-disable-next-line deprecation/deprecation\n            style: item.style,\n        };\n        var keytipProps = item.keytipProps;\n        if (keytipProps && itemHasSubmenu) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes),\n            React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n            _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n    };\n    return ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","import * as React from 'react';\nexport var MenuContext = React.createContext({});\nexport var useMenuContext = function () {\n    return React.useContext(MenuContext);\n};\n//# sourceMappingURL=MenuContext.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, assign, classNamesFunction, css, getFirstFocusable, getLastFocusable, getRTL, KeyCodes, shouldWrapFocus, isIOS, isMac, memoizeFunction, getPropsWithDefaults, getDocument, FocusRects, composeComponentAs, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport { useTarget, usePrevious, useAsync, useWarnings, useId, useIsomorphicLayoutEffect, } from '@fluentui/react-hooks';\nimport { useResponsiveMode, ResponsiveMode } from '../../ResponsiveMode';\nimport { MenuContext } from '../../utilities/MenuContext/index';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\n// The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\nvar DEFAULT_PROPS = {\n    items: [],\n    shouldFocusOnMount: true,\n    gapSpace: 0,\n    directionalHint: DirectionalHint.bottomAutoEdge,\n    beakWidth: 16,\n};\n/* return number of menu items, excluding headers and dividers */\nfunction getItemCount(items) {\n    var totalItemCount = 0;\n    for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n        var item = items_1[_i];\n        if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n            var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n            totalItemCount += itemCount;\n        }\n    }\n    return totalItemCount;\n}\nexport function getSubmenuItems(item, options) {\n    var target = options === null || options === void 0 ? void 0 : options.target;\n    // eslint-disable-next-line deprecation/deprecation\n    var items = item.subMenuProps ? item.subMenuProps.items : item.items;\n    if (items) {\n        var overrideItems = [];\n        for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n            var subItem = items_2[_i];\n            if (subItem.preferMenuTargetAsEventTarget) {\n                // For sub-items which need an overridden target, intercept `onClick`\n                var onClick = subItem.onClick, contextItem = __rest(subItem, [\"onClick\"]);\n                overrideItems.push(__assign(__assign({}, contextItem), { onClick: getOnClickWithOverrideTarget(onClick, target) }));\n            }\n            else {\n                overrideItems.push(subItem);\n            }\n        }\n        return overrideItems;\n    }\n}\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items) {\n    return items.some(function (item) {\n        if (item.canCheck) {\n            return true;\n        }\n        // If the item is a section, check if any of the items in the section can check.\n        if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {\n            return true;\n        }\n        return false;\n    });\n}\nvar NavigationIdleDelay = 250; /* ms */\nvar COMPONENT_NAME = 'ContextualMenu';\nvar _getMenuItemStylesFunction = memoizeFunction(function () {\n    var styles = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        styles[_i] = arguments[_i];\n    }\n    return function (styleProps) {\n        return concatStyleSetsWithProps.apply(void 0, __spreadArray([styleProps, getItemStyles], styles, false));\n    };\n});\n//#region Custom hooks\nfunction useVisibility(props, targetWindow) {\n    var _a = props.hidden, hidden = _a === void 0 ? false : _a, onMenuDismissed = props.onMenuDismissed, onMenuOpened = props.onMenuOpened;\n    var previousHidden = usePrevious(hidden);\n    var onMenuOpenedRef = React.useRef(onMenuOpened);\n    var onMenuClosedRef = React.useRef(onMenuDismissed);\n    var propsRef = React.useRef(props);\n    onMenuOpenedRef.current = onMenuOpened;\n    onMenuClosedRef.current = onMenuDismissed;\n    propsRef.current = props;\n    React.useEffect(function () {\n        var _a, _b;\n        // Don't issue dismissed callbacks on initial mount\n        if (hidden && previousHidden === false) {\n            (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current);\n        }\n        else if (!hidden && previousHidden !== false) {\n            (_b = onMenuOpenedRef.current) === null || _b === void 0 ? void 0 : _b.call(onMenuOpenedRef, propsRef.current);\n        }\n    }, [hidden, previousHidden]);\n    // Issue onDismissedCallback on unmount\n    React.useEffect(function () { return function () { var _a; return (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current); }; }, []);\n}\nfunction useSubMenuState(_a, dismiss) {\n    var hidden = _a.hidden, items = _a.items, theme = _a.theme, className = _a.className, id = _a.id, menuTarget = _a.target;\n    var _b = React.useState(), expandedMenuItemKey = _b[0], setExpandedMenuItemKey = _b[1];\n    var _c = React.useState(), submenuTarget = _c[0], setSubmenuTarget = _c[1];\n    /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n    var _d = React.useState(), shouldFocusOnContainer = _d[0], setShouldFocusOnContainer = _d[1];\n    var subMenuId = useId(COMPONENT_NAME, id);\n    var closeSubMenu = React.useCallback(function () {\n        setShouldFocusOnContainer(undefined);\n        setExpandedMenuItemKey(undefined);\n        setSubmenuTarget(undefined);\n    }, []);\n    var openSubMenu = React.useCallback(function (_a, target, focusContainer) {\n        var submenuItemKey = _a.key;\n        if (expandedMenuItemKey === submenuItemKey) {\n            return;\n        }\n        target.focus();\n        setShouldFocusOnContainer(focusContainer);\n        setExpandedMenuItemKey(submenuItemKey);\n        setSubmenuTarget(target);\n    }, [expandedMenuItemKey]);\n    React.useEffect(function () {\n        if (hidden) {\n            closeSubMenu();\n        }\n    }, [hidden, closeSubMenu]);\n    var onSubMenuDismiss = useOnSubmenuDismiss(dismiss, closeSubMenu);\n    var getSubmenuProps = function () {\n        var item = findItemByKeyFromItems(expandedMenuItemKey, items);\n        var submenuProps = null;\n        if (item) {\n            submenuProps = {\n                items: getSubmenuItems(item, { target: menuTarget }),\n                target: submenuTarget,\n                onDismiss: onSubMenuDismiss,\n                isSubMenu: true,\n                id: subMenuId,\n                shouldFocusOnMount: true,\n                shouldFocusOnContainer: shouldFocusOnContainer,\n                directionalHint: getRTL(theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n                className: className,\n                gapSpace: 0,\n                isBeakVisible: false,\n            };\n            if (item.subMenuProps) {\n                assign(submenuProps, item.subMenuProps);\n            }\n            if (item.preferMenuTargetAsEventTarget) {\n                var onItemClick = item.onItemClick;\n                submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n            }\n        }\n        return submenuProps;\n    };\n    return [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss];\n}\nfunction useShouldUpdateFocusOnMouseMove(_a) {\n    var delayUpdateFocusOnHover = _a.delayUpdateFocusOnHover, hidden = _a.hidden;\n    var shouldUpdateFocusOnMouseEvent = React.useRef(!delayUpdateFocusOnHover);\n    var gotMouseMove = React.useRef(false);\n    React.useEffect(function () {\n        shouldUpdateFocusOnMouseEvent.current = !delayUpdateFocusOnHover;\n        gotMouseMove.current = hidden ? false : !delayUpdateFocusOnHover && gotMouseMove.current;\n    }, [delayUpdateFocusOnHover, hidden]);\n    var onMenuFocusCapture = React.useCallback(function () {\n        if (delayUpdateFocusOnHover) {\n            shouldUpdateFocusOnMouseEvent.current = false;\n        }\n    }, [delayUpdateFocusOnHover]);\n    return [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture];\n}\nfunction usePreviousActiveElement(_a, targetWindow, hostElement) {\n    var hidden = _a.hidden, onRestoreFocus = _a.onRestoreFocus;\n    var previousActiveElement = React.useRef();\n    var tryFocusPreviousActiveElement = React.useCallback(function (options) {\n        var _a, _b;\n        if (onRestoreFocus) {\n            onRestoreFocus(options);\n        }\n        else if (options === null || options === void 0 ? void 0 : options.documentContainsFocus) {\n            // Make sure that the focus method actually exists\n            // In some cases the object might exist but not be a real element.\n            // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n            (_b = (_a = previousActiveElement.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n        }\n    }, [onRestoreFocus]);\n    useIsomorphicLayoutEffect(function () {\n        var _a, _b;\n        if (!hidden) {\n            var newElement = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement;\n            if (!((_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.contains(newElement)) && newElement.tagName !== 'BODY') {\n                previousActiveElement.current = newElement;\n            }\n        }\n        else if (previousActiveElement.current) {\n            tryFocusPreviousActiveElement({\n                originalElement: previousActiveElement.current,\n                containsFocus: true,\n                documentContainsFocus: ((_b = getDocument()) === null || _b === void 0 ? void 0 : _b.hasFocus()) || false,\n            });\n            previousActiveElement.current = undefined;\n        }\n    }, [hidden, targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement, tryFocusPreviousActiveElement, hostElement]);\n    return [tryFocusPreviousActiveElement];\n}\nfunction useKeyHandlers(_a, dismiss, hostElement, openSubMenu) {\n    var theme = _a.theme, isSubMenu = _a.isSubMenu, _b = _a.focusZoneProps, _c = _b === void 0 ? {} : _b, checkForNoWrap = _c.checkForNoWrap, _d = _c.direction, focusZoneDirection = _d === void 0 ? FocusZoneDirection.vertical : _d;\n    /** True if the most recent keydown event was for alt (option) or meta (command). */\n    var lastKeyDownWasAltOrMeta = React.useRef();\n    /**\n     * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n     * if so, stops event propagation and dismisses menu(s).\n     * @param ev - The keyboard event.\n     * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n     * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n     * Only does anything if `shouldHandleKey` returns true.\n     * @returns Whether the event was handled.\n     */\n    var keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n        var handled = false;\n        if (shouldHandleKey(ev)) {\n            dismiss(ev, dismissAllMenus);\n            ev.preventDefault();\n            ev.stopPropagation();\n            handled = true;\n        }\n        return handled;\n    };\n    /**\n     * Checks if the submenu should be closed\n     */\n    var shouldCloseSubMenu = function (ev) {\n        var submenuCloseKey = getRTL(theme) ? KeyCodes.right : KeyCodes.left;\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which !== submenuCloseKey || !isSubMenu) {\n            return false;\n        }\n        return !!(focusZoneDirection === FocusZoneDirection.vertical ||\n            (checkForNoWrap && !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n    };\n    var shouldHandleKeyDown = function (ev) {\n        return (\n        // eslint-disable-next-line deprecation/deprecation\n        ev.which === KeyCodes.escape ||\n            shouldCloseSubMenu(ev) ||\n            // eslint-disable-next-line deprecation/deprecation\n            (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n    };\n    var onKeyDown = function (ev) {\n        // Take note if we are processing an alt (option) or meta (command) keydown.\n        // See comment in shouldHandleKeyUp for reasoning.\n        lastKeyDownWasAltOrMeta.current = isAltOrMeta(ev);\n        // On Mac, pressing escape dismisses all levels of native context menus\n        // eslint-disable-next-line deprecation/deprecation\n        var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n        return keyHandler(ev, shouldHandleKeyDown, dismissAllMenus);\n    };\n    /**\n     * We close the menu on key up only if ALL of the following are true:\n     * - Most recent key down was alt or meta (command)\n     * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n     *   expand/collapse the menu)\n     * - We're not on a Mac (or iOS)\n     *\n     * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n     * closing any open context menus. There is not a similar behavior on Macs.\n     */\n    var shouldHandleKeyUp = function (ev) {\n        var keyPressIsAltOrMetaAlone = lastKeyDownWasAltOrMeta.current && isAltOrMeta(ev);\n        lastKeyDownWasAltOrMeta.current = false;\n        return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n    };\n    var onKeyUp = function (ev) {\n        return keyHandler(ev, shouldHandleKeyUp, true /* dismissAllMenus */);\n    };\n    var onMenuKeyDown = function (ev) {\n        // Mark as handled if onKeyDown returns true (for handling collapse cases)\n        // or if we are attempting to expand a submenu\n        var handled = onKeyDown(ev);\n        if (handled || !hostElement.current) {\n            return;\n        }\n        // If we have a modifier key being pressed, we do not want to move focus.\n        // Otherwise, handle up and down keys.\n        var hasModifier = !!(ev.altKey || ev.metaKey);\n        // eslint-disable-next-line deprecation/deprecation\n        var isUp = ev.which === KeyCodes.up;\n        // eslint-disable-next-line deprecation/deprecation\n        var isDown = ev.which === KeyCodes.down;\n        if (!hasModifier && (isUp || isDown)) {\n            var elementToFocus = isUp\n                ? getLastFocusable(hostElement.current, hostElement.current.lastChild, true)\n                : getFirstFocusable(hostElement.current, hostElement.current.firstChild, true);\n            if (elementToFocus) {\n                elementToFocus.focus();\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        }\n    };\n    var onItemKeyDown = function (item, ev) {\n        var openKey = getRTL(theme) ? KeyCodes.left : KeyCodes.right;\n        if (!item.disabled &&\n            // eslint-disable-next-line deprecation/deprecation\n            (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n            openSubMenu(item, ev.currentTarget);\n            ev.preventDefault();\n        }\n    };\n    return [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown];\n}\nfunction useScrollHandler(asyncTracker) {\n    var isScrollIdle = React.useRef(true);\n    var scrollIdleTimeoutId = React.useRef();\n    /**\n     * Scroll handler for the callout to make sure the mouse events\n     * for updating focus are not interacting during scroll\n     */\n    var onScroll = function () {\n        if (!isScrollIdle.current && scrollIdleTimeoutId.current !== undefined) {\n            asyncTracker.clearTimeout(scrollIdleTimeoutId.current);\n            scrollIdleTimeoutId.current = undefined;\n        }\n        else {\n            isScrollIdle.current = false;\n        }\n        scrollIdleTimeoutId.current = asyncTracker.setTimeout(function () {\n            isScrollIdle.current = true;\n        }, NavigationIdleDelay);\n    };\n    return [onScroll, isScrollIdle];\n}\nfunction useOnSubmenuDismiss(dismiss, closeSubMenu) {\n    var isMountedRef = React.useRef(false);\n    React.useEffect(function () {\n        isMountedRef.current = true;\n        return function () {\n            isMountedRef.current = false;\n        };\n    }, []);\n    /**\n     * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n     * after the component is unmounted. The isMountedRef is added to prevent\n     * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n     * code.\n     */\n    var onSubMenuDismiss = function (ev, dismissAll) {\n        if (dismissAll) {\n            dismiss(ev, dismissAll);\n        }\n        else if (isMountedRef.current) {\n            closeSubMenu();\n        }\n    };\n    return onSubMenuDismiss;\n}\nfunction useSubmenuEnterTimer(_a, asyncTracker) {\n    var _b = _a.subMenuHoverDelay, subMenuHoverDelay = _b === void 0 ? NavigationIdleDelay : _b;\n    var enterTimerRef = React.useRef(undefined);\n    var cancelSubMenuTimer = function () {\n        if (enterTimerRef.current !== undefined) {\n            asyncTracker.clearTimeout(enterTimerRef.current);\n            enterTimerRef.current = undefined;\n        }\n    };\n    var startSubmenuTimer = function (onTimerExpired) {\n        enterTimerRef.current = asyncTracker.setTimeout(function () {\n            onTimerExpired();\n            cancelSubMenuTimer();\n        }, subMenuHoverDelay);\n    };\n    return [cancelSubMenuTimer, startSubmenuTimer, enterTimerRef];\n}\nfunction useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss) {\n    var menuTarget = props.target;\n    var onItemMouseEnterBase = function (item, ev, target) {\n        if (shouldUpdateFocusOnMouseEvent.current) {\n            gotMouseMove.current = true;\n        }\n        if (shouldIgnoreMouseEvent()) {\n            return;\n        }\n        updateFocusOnMouseEvent(item, ev, target);\n    };\n    var onItemMouseMoveBase = function (item, ev, target) {\n        var targetElement = ev.currentTarget;\n        // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n        if (shouldUpdateFocusOnMouseEvent.current) {\n            gotMouseMove.current = true;\n        }\n        else {\n            return;\n        }\n        if (!isScrollIdle.current ||\n            subMenuEntryTimer.current !== undefined ||\n            targetElement === (targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement)) {\n            return;\n        }\n        updateFocusOnMouseEvent(item, ev, target);\n    };\n    var shouldIgnoreMouseEvent = function () {\n        return !isScrollIdle.current || !gotMouseMove.current;\n    };\n    var onMouseItemLeave = function (item, ev) {\n        var _a;\n        if (shouldIgnoreMouseEvent()) {\n            return;\n        }\n        cancelSubMenuTimer();\n        if (expandedMenuItemKey !== undefined) {\n            return;\n        }\n        /**\n         * IE11 focus() method forces parents to scroll to top of element.\n         * Edge and IE expose a setActive() function for focusable divs that\n         * sets the page focus but does not scroll the parent element.\n         */\n        if (hostElement.current.setActive) {\n            try {\n                hostElement.current.setActive();\n            }\n            catch (e) {\n                /* no-op */\n            }\n        }\n        else {\n            (_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.focus();\n        }\n    };\n    /**\n     * Handles updating focus when mouseEnter or mouseMove fire.\n     * As part of updating focus, This function will also update\n     * the expand/collapse state accordingly.\n     */\n    var updateFocusOnMouseEvent = function (item, ev, target) {\n        var targetElement = target ? target : ev.currentTarget;\n        if (item.key === expandedMenuItemKey) {\n            return;\n        }\n        cancelSubMenuTimer();\n        // If the menu is not expanded we can update focus without any delay\n        if (expandedMenuItemKey === undefined) {\n            targetElement.focus();\n        }\n        // Delay updating expanding/dismissing the submenu\n        // and only set focus if we have not already done so\n        if (hasSubmenu(item)) {\n            ev.stopPropagation();\n            startSubmenuTimer(function () {\n                targetElement.focus();\n                openSubMenu(item, targetElement, true);\n            });\n        }\n        else {\n            startSubmenuTimer(function () {\n                onSubMenuDismiss(ev);\n                targetElement.focus();\n            });\n        }\n    };\n    var onItemClick = function (item, ev) {\n        onItemClickBase(item, ev, ev.currentTarget);\n    };\n    var onItemClickBase = function (item, ev, target) {\n        var items = getSubmenuItems(item, { target: menuTarget });\n        // Cancel an async menu item hover timeout action from being taken and instead\n        // just trigger the click event instead.\n        cancelSubMenuTimer();\n        if (!hasSubmenu(item) && (!items || !items.length)) {\n            // This is an item without a menu. Click it.\n            executeItemClick(item, ev);\n        }\n        else {\n            if (item.key !== expandedMenuItemKey) {\n                // This has a collapsed sub menu. Expand it.\n                // focus on the container by default when the menu is opened with a click event\n                // this differentiates from a keyboard interaction triggering the click event\n                var shouldFocusOnContainer = typeof props.shouldFocusOnContainer === 'boolean'\n                    ? props.shouldFocusOnContainer\n                    : ev.nativeEvent.pointerType === 'mouse';\n                openSubMenu(item, target, shouldFocusOnContainer);\n            }\n        }\n        ev.stopPropagation();\n        ev.preventDefault();\n    };\n    var onAnchorClick = function (item, ev) {\n        executeItemClick(item, ev);\n        ev.stopPropagation();\n    };\n    var executeItemClick = function (item, ev) {\n        if (item.disabled || item.isDisabled) {\n            return;\n        }\n        if (item.preferMenuTargetAsEventTarget) {\n            overrideTarget(ev, menuTarget);\n        }\n        var shouldDismiss = false;\n        if (item.onClick) {\n            shouldDismiss = !!item.onClick(ev, item);\n        }\n        else if (props.onItemClick) {\n            shouldDismiss = !!props.onItemClick(ev, item);\n        }\n        if (shouldDismiss || !ev.defaultPrevented) {\n            dismiss(ev, true);\n        }\n    };\n    return [\n        onItemMouseEnterBase,\n        onItemMouseMoveBase,\n        onMouseItemLeave,\n        onItemClick,\n        onAnchorClick,\n        executeItemClick,\n        onItemClickBase,\n    ];\n}\n//#endregion\nexport var ContextualMenuBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var _a;\n    var _b = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _b.ref, props = __rest(_b, [\"ref\"]);\n    var hostElement = React.useRef(null);\n    var asyncTracker = useAsync();\n    var menuId = useId(COMPONENT_NAME, props.id);\n    useWarnings({\n        name: COMPONENT_NAME,\n        props: props,\n        deprecations: {\n            getMenuClassNames: 'styles',\n        },\n    });\n    var dismiss = function (ev, dismissAll) { var _a; return (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props, ev, dismissAll); };\n    var _c = useTarget(props.target, hostElement), targetRef = _c[0], targetWindow = _c[1];\n    var tryFocusPreviousActiveElement = usePreviousActiveElement(props, targetWindow, hostElement)[0];\n    var _d = useSubMenuState(props, dismiss), expandedMenuItemKey = _d[0], openSubMenu = _d[1], getSubmenuProps = _d[2], onSubMenuDismiss = _d[3];\n    var _e = useShouldUpdateFocusOnMouseMove(props), shouldUpdateFocusOnMouseEvent = _e[0], gotMouseMove = _e[1], onMenuFocusCapture = _e[2];\n    var _f = useScrollHandler(asyncTracker), onScroll = _f[0], isScrollIdle = _f[1];\n    var _g = useSubmenuEnterTimer(props, asyncTracker), cancelSubMenuTimer = _g[0], startSubmenuTimer = _g[1], subMenuEntryTimer = _g[2];\n    var responsiveMode = useResponsiveMode(hostElement, props.responsiveMode);\n    useVisibility(props, targetWindow);\n    var _h = useKeyHandlers(props, dismiss, hostElement, openSubMenu), onKeyDown = _h[0], onKeyUp = _h[1], onMenuKeyDown = _h[2], onItemKeyDown = _h[3];\n    var _j = useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss), onItemMouseEnterBase = _j[0], onItemMouseMoveBase = _j[1], onMouseItemLeave = _j[2], onItemClick = _j[3], onAnchorClick = _j[4], executeItemClick = _j[5], onItemClickBase = _j[6];\n    //#region Render helpers\n    var onDefaultRenderMenuList = function (menuListProps, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames, defaultRender) {\n        var indexCorrection = 0;\n        var items = menuListProps.items, totalItemCount = menuListProps.totalItemCount, hasCheckmarks = menuListProps.hasCheckmarks, hasIcons = menuListProps.hasIcons;\n        return (React.createElement(\"ul\", { className: menuClassNames.list, onKeyDown: onKeyDown, onKeyUp: onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n            var menuItem = renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n            if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n                var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n                indexCorrection += indexIncrease;\n            }\n            return menuItem;\n        })));\n    };\n    var renderFocusZone = function (children, adjustedFocusZoneProps) {\n        var _a = props.focusZoneAs, ChildrenRenderer = _a === void 0 ? FocusZone : _a;\n        return React.createElement(ChildrenRenderer, __assign({}, adjustedFocusZoneProps), children);\n    };\n    /**\n     * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n     * cause the menu items to always re-render because the component update is based on shallow comparison.\n     */\n    var renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames) {\n        var _a;\n        var renderedItems = [];\n        var iconProps = item.iconProps || { iconName: 'None' };\n        var getItemClassNames = item.getItemClassNames, // eslint-disable-line deprecation/deprecation\n        itemProps = item.itemProps;\n        var styles = itemProps ? itemProps.styles : undefined;\n        // We only send a dividerClassName when the item to be rendered is a divider.\n        // For all other cases, the default divider style is used.\n        var dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n        var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n        // eslint-disable-next-line deprecation/deprecation\n        var itemClassNames;\n        // IContextualMenuItem#getItemClassNames for backwards compatibility\n        // otherwise uses mergeStyles for class names.\n        if (getItemClassNames) {\n            itemClassNames = getItemClassNames(props.theme, isItemDisabled(item), expandedMenuItemKey === item.key, !!getIsChecked(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);\n        }\n        else {\n            var itemStyleProps = {\n                theme: props.theme,\n                disabled: isItemDisabled(item),\n                expanded: expandedMenuItemKey === item.key,\n                checked: !!getIsChecked(item),\n                isAnchorLink: !!item.href,\n                knownIcon: iconProps.iconName !== 'None',\n                itemClassName: item.className,\n                dividerClassName: dividerClassName,\n                iconClassName: iconProps.className,\n                subMenuClassName: subMenuIconClassName,\n                primaryDisabled: item.primaryDisabled,\n            };\n            // We need to generate default styles then override if styles are provided\n            // since the ContextualMenu currently handles item classNames.\n            itemClassNames = getContextualMenuItemClassNames(_getMenuItemStylesFunction((_a = menuClassNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.menuItem, styles), itemStyleProps);\n        }\n        // eslint-disable-next-line deprecation/deprecation\n        if (item.text === '-' || item.name === '-') {\n            item.itemType = ContextualMenuItemType.Divider;\n        }\n        switch (item.itemType) {\n            case ContextualMenuItemType.Divider:\n                renderedItems.push(renderSeparator(index, itemClassNames));\n                break;\n            case ContextualMenuItemType.Header:\n                renderedItems.push(renderSeparator(index, itemClassNames));\n                var headerItem = renderHeaderMenuItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n                renderedItems.push(renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n                break;\n            case ContextualMenuItemType.Section:\n                renderedItems.push(renderSectionItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons));\n                break;\n            default:\n                var defaultRenderNormalItem = function () {\n                    return renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n                };\n                var menuItem = props.onRenderContextualMenuItem\n                    ? props.onRenderContextualMenuItem(item, defaultRenderNormalItem)\n                    : defaultRenderNormalItem();\n                renderedItems.push(renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n                break;\n        }\n        // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n        // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n        return React.createElement(React.Fragment, { key: item.key }, renderedItems);\n    };\n    var defaultMenuItemRenderer = function (item, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames) {\n        var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n        return renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n    };\n    var renderSectionItem = function (sectionItem, \n    // eslint-disable-next-line deprecation/deprecation\n    itemClassNames, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames, index, hasCheckmarks, hasIcons) {\n        var sectionProps = sectionItem.sectionProps;\n        if (!sectionProps) {\n            return;\n        }\n        var headerItem;\n        var groupProps;\n        if (sectionProps.title) {\n            var headerContextualMenuItem = undefined;\n            var ariaLabelledby = '';\n            if (typeof sectionProps.title === 'string') {\n                // Since title is a user-facing string, it needs to be stripped\n                // of whitespace in order to build a valid element ID\n                var id_1 = menuId + sectionProps.title.replace(/\\s/g, '');\n                headerContextualMenuItem = {\n                    key: \"section-\".concat(sectionProps.title, \"-title\"),\n                    itemType: ContextualMenuItemType.Header,\n                    text: sectionProps.title,\n                    id: id_1,\n                };\n                ariaLabelledby = id_1;\n            }\n            else {\n                var id_2 = sectionProps.title.id || menuId + sectionProps.title.key.replace(/\\s/g, '');\n                headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id_2 });\n                ariaLabelledby = id_2;\n            }\n            if (headerContextualMenuItem) {\n                groupProps = {\n                    role: 'group',\n                    'aria-labelledby': ariaLabelledby,\n                };\n                headerItem = renderHeaderMenuItem(headerContextualMenuItem, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n            }\n        }\n        if (sectionProps.items && sectionProps.items.length > 0) {\n            var correctedIndex_1 = 0;\n            return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\".concat(index) },\n                React.createElement(\"div\", __assign({}, groupProps),\n                    React.createElement(\"ul\", { className: menuClassNames.list, role: \"presentation\" },\n                        sectionProps.topDivider && renderSeparator(index, itemClassNames, true, true),\n                        headerItem && renderListItem(headerItem, sectionItem.key || index, itemClassNames, sectionItem.title),\n                        sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n                            var menuItem = renderMenuItem(contextualMenuItem, itemsIndex, correctedIndex_1, getItemCount(sectionProps.items), hasCheckmarks, hasIcons, menuClassNames);\n                            if (contextualMenuItem.itemType !== ContextualMenuItemType.Divider &&\n                                contextualMenuItem.itemType !== ContextualMenuItemType.Header) {\n                                var indexIncrease = contextualMenuItem.customOnRenderListLength\n                                    ? contextualMenuItem.customOnRenderListLength\n                                    : 1;\n                                correctedIndex_1 += indexIncrease;\n                            }\n                            return menuItem;\n                        }),\n                        sectionProps.bottomDivider && renderSeparator(index, itemClassNames, false, true)))));\n        }\n    };\n    var renderListItem = function (content, key, classNames, // eslint-disable-line deprecation/deprecation\n    title) {\n        return (React.createElement(\"li\", { role: \"presentation\", title: title, key: key, className: classNames.item }, content));\n    };\n    var renderSeparator = function (index, classNames, // eslint-disable-line deprecation/deprecation\n    top, fromSection) {\n        if (fromSection || index > 0) {\n            return (React.createElement(\"li\", { role: \"separator\", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, \"aria-hidden\": \"true\" }));\n        }\n        return null;\n    };\n    var renderNormalItem = function (item, classNames, // eslint-disable-line deprecation/deprecation\n    index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n        if (item.onRender) {\n            return item.onRender(__assign({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), dismiss);\n        }\n        var contextualMenuItemAs = props.contextualMenuItemAs;\n        var commonProps = {\n            item: item,\n            classNames: classNames,\n            index: index,\n            focusableElementIndex: focusableElementIndex,\n            totalItemCount: totalItemCount,\n            hasCheckmarks: hasCheckmarks,\n            hasIcons: hasIcons,\n            contextualMenuItemAs: contextualMenuItemAs,\n            onItemMouseEnter: onItemMouseEnterBase,\n            onItemMouseLeave: onMouseItemLeave,\n            onItemMouseMove: onItemMouseMoveBase,\n            onItemMouseDown: onItemMouseDown,\n            executeItemClick: executeItemClick,\n            onItemKeyDown: onItemKeyDown,\n            expandedMenuItemKey: expandedMenuItemKey,\n            openSubMenu: openSubMenu,\n            dismissSubMenu: onSubMenuDismiss,\n            dismissMenu: dismiss,\n        };\n        if (item.href) {\n            var ContextualMenuAnchorAs = ContextualMenuAnchor;\n            if (item.contextualMenuItemWrapperAs) {\n                ContextualMenuAnchorAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuAnchorAs);\n            }\n            return React.createElement(ContextualMenuAnchorAs, __assign({}, commonProps, { onItemClick: onAnchorClick }));\n        }\n        if (item.split && hasSubmenu(item)) {\n            var ContextualMenuSplitButtonAs = ContextualMenuSplitButton;\n            if (item.contextualMenuItemWrapperAs) {\n                ContextualMenuSplitButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuSplitButtonAs);\n            }\n            return (React.createElement(ContextualMenuSplitButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase, onTap: cancelSubMenuTimer })));\n        }\n        var ContextualMenuButtonAs = ContextualMenuButton;\n        if (item.contextualMenuItemWrapperAs) {\n            ContextualMenuButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuButtonAs);\n        }\n        return React.createElement(ContextualMenuButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase }));\n    };\n    var renderHeaderMenuItem = function (item, \n    // eslint-disable-next-line deprecation/deprecation\n    itemClassNames, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames, index, hasCheckmarks, hasIcons) {\n        var ChildrenRenderer = ContextualMenuItem;\n        if (item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (props.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(props.contextualMenuItemAs, ChildrenRenderer);\n        }\n        var itemProps = item.itemProps, id = item.id;\n        var divHtmlProperties = itemProps && getNativeProps(itemProps, divProperties);\n        return (\n        // eslint-disable-next-line deprecation/deprecation\n        React.createElement(\"div\", __assign({ id: id, className: menuClassNames.header }, divHtmlProperties, { style: item.style }),\n            React.createElement(ChildrenRenderer, __assign({ item: item, classNames: itemClassNames, index: index, onCheckmarkClick: hasCheckmarks ? onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n    };\n    //#endregion\n    //#region Main render\n    var isBeakVisible = props.isBeakVisible;\n    var items = props.items, labelElementId = props.labelElementId, id = props.id, className = props.className, beakWidth = props.beakWidth, directionalHint = props.directionalHint, directionalHintForRTL = props.directionalHintForRTL, alignTargetEdge = props.alignTargetEdge, gapSpace = props.gapSpace, coverTarget = props.coverTarget, ariaLabel = props.ariaLabel, doNotLayer = props.doNotLayer, target = props.target, bounds = props.bounds, useTargetWidth = props.useTargetWidth, useTargetAsMinWidth = props.useTargetAsMinWidth, directionalHintFixed = props.directionalHintFixed, shouldFocusOnMount = props.shouldFocusOnMount, shouldFocusOnContainer = props.shouldFocusOnContainer, title = props.title, styles = props.styles, theme = props.theme, calloutProps = props.calloutProps, _k = props.onRenderSubMenu, onRenderSubMenu = _k === void 0 ? onDefaultRenderSubMenu : _k, _l = props.onRenderMenuList, onRenderMenuList = _l === void 0 ? function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); } : _l, focusZoneProps = props.focusZoneProps, \n    // eslint-disable-next-line deprecation/deprecation\n    getMenuClassNames = props.getMenuClassNames;\n    var classNames = getMenuClassNames\n        ? getMenuClassNames(theme, className)\n        : getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n    var hasIcons = itemsHaveIcons(items);\n    function itemsHaveIcons(contextualMenuItems) {\n        for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {\n            var item = contextualMenuItems_1[_i];\n            if (item.iconProps) {\n                return true;\n            }\n            if (item.itemType === ContextualMenuItemType.Section &&\n                item.sectionProps &&\n                itemsHaveIcons(item.sectionProps.items)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    var adjustedFocusZoneProps = __assign(__assign({ direction: FocusZoneDirection.vertical, handleTabKey: FocusZoneTabbableElements.all, isCircularNavigation: true }, focusZoneProps), { className: css(classNames.root, (_a = props.focusZoneProps) === null || _a === void 0 ? void 0 : _a.className) });\n    var hasCheckmarks = canAnyMenuItemsCheck(items);\n    var submenuProps = expandedMenuItemKey && props.hidden !== true ? getSubmenuProps() : null;\n    isBeakVisible = isBeakVisible === undefined ? responsiveMode <= ResponsiveMode.medium : isBeakVisible;\n    /**\n     * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n     */\n    var contextMenuStyle;\n    var targetAsHtmlElement = targetRef.current;\n    if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n        var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n        var targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n        if (useTargetWidth) {\n            contextMenuStyle = {\n                width: targetWidth,\n            };\n        }\n        else if (useTargetAsMinWidth) {\n            contextMenuStyle = {\n                minWidth: targetWidth,\n            };\n        }\n    }\n    // The menu should only return if items were provided, if no items were provided then it should not appear.\n    if (items && items.length > 0) {\n        var totalItemCount_1 = getItemCount(items);\n        var calloutStyles_1 = classNames.subComponentStyles\n            ? classNames.subComponentStyles.callout\n            : undefined;\n        return (React.createElement(MenuContext.Consumer, null, function (menuContext) { return (React.createElement(Callout, __assign({ styles: calloutStyles_1, onRestoreFocus: tryFocusPreviousActiveElement }, calloutProps, { target: target || menuContext.target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: css('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: props.onDismiss || menuContext.onDismiss, onScroll: onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: props.hidden || menuContext.hidden, ref: forwardedRef }),\n            React.createElement(\"div\", { style: contextMenuStyle, ref: hostElement, id: id, className: classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: onMenuKeyDown, onKeyUp: onKeyUp, onFocusCapture: onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n                title && React.createElement(\"div\", { className: classNames.title },\n                    \" \",\n                    title,\n                    \" \"),\n                items && items.length\n                    ? renderFocusZone(onRenderMenuList({\n                        ariaLabel: ariaLabel,\n                        items: items,\n                        totalItemCount: totalItemCount_1,\n                        hasCheckmarks: hasCheckmarks,\n                        hasIcons: hasIcons,\n                        defaultMenuItemRenderer: function (item) {\n                            return defaultMenuItemRenderer(item, classNames);\n                        },\n                        labelElementId: labelElementId,\n                    }, function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); }), adjustedFocusZoneProps)\n                    : null,\n                submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu)),\n            React.createElement(FocusRects, null))); }));\n    }\n    else {\n        return null;\n    }\n    //#endregion\n}), function (prevProps, newProps) {\n    if (!newProps.shouldUpdateWhenHidden && prevProps.hidden && newProps.hidden) {\n        // Do not update when hidden.\n        return true;\n    }\n    return shallowCompare(prevProps, newProps);\n});\nContextualMenuBase.displayName = 'ContextualMenuBase';\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n    // eslint-disable-next-line deprecation/deprecation\n    return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\nfunction onItemMouseDown(item, ev) {\n    var _a;\n    (_a = item.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(item, item, ev);\n}\nfunction onDefaultRenderSubMenu(subMenuProps, defaultRender) {\n    throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n        'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');\n}\n/**\n * Returns the item that matches a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\nfunction findItemByKeyFromItems(key, items) {\n    for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n        var item = items_3[_i];\n        if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n            var match = findItemByKeyFromItems(key, item.sectionProps.items);\n            if (match) {\n                return match;\n            }\n        }\n        else if (item.key && item.key === key) {\n            return item;\n        }\n    }\n}\nfunction getOnClickWithOverrideTarget(onClick, target) {\n    return onClick\n        ? function (ev, item) {\n            overrideTarget(ev, target);\n            return onClick(ev, item);\n        }\n        : onClick;\n}\nfunction overrideTarget(ev, target) {\n    if (ev && target) {\n        ev.persist();\n        if (target instanceof Event) {\n            ev.target = target.target;\n        }\n        else if (target instanceof Element) {\n            ev.target = target;\n        }\n    }\n}\n//# sourceMappingURL=ContextualMenu.base.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nvar GlobalClassNames = {\n    root: 'ms-ContextualMenu',\n    container: 'ms-ContextualMenu-container',\n    list: 'ms-ContextualMenu-list',\n    header: 'ms-ContextualMenu-header',\n    title: 'ms-ContextualMenu-title',\n    isopen: 'is-open',\n};\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n    return {\n        root: [\n            theme.fonts.medium,\n            classNames.root,\n            classNames.isopen,\n            {\n                backgroundColor: semanticColors.menuBackground,\n                minWidth: '180px',\n            },\n            className,\n        ],\n        container: [\n            classNames.container,\n            {\n                selectors: {\n                    ':focus': { outline: 0 },\n                },\n            },\n        ],\n        list: [\n            classNames.list,\n            classNames.isopen,\n            {\n                listStyleType: 'none',\n                margin: '0',\n                padding: '0',\n            },\n        ],\n        header: [\n            classNames.header,\n            fonts.small,\n            {\n                fontWeight: FontWeights.semibold,\n                color: semanticColors.menuHeader,\n                background: 'none',\n                backgroundColor: 'transparent',\n                border: 'none',\n                height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                cursor: 'default',\n                padding: '0px 6px',\n                userSelect: 'none',\n                textAlign: 'left',\n            },\n        ],\n        title: [\n            classNames.title,\n            {\n                fontSize: fonts.mediumPlus.fontSize,\n                paddingRight: '14px',\n                paddingLeft: '14px',\n                paddingBottom: '5px',\n                paddingTop: '5px',\n                backgroundColor: semanticColors.menuItemBackgroundPressed,\n            },\n        ],\n        subComponentStyles: {\n            callout: {\n                root: {\n                    boxShadow: effects.elevation8,\n                },\n            },\n            menuItem: {},\n        },\n    };\n};\n//# sourceMappingURL=ContextualMenu.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nfunction onRenderSubMenu(subMenuProps) {\n    return React.createElement(LocalContextualMenu, __assign({}, subMenuProps));\n}\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nvar LocalContextualMenu = styled(ContextualMenuBase, getStyles, function (props) { return ({\n    onRenderSubMenu: props.onRenderSubMenu\n        ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n        : onRenderSubMenu,\n}); }, { scope: 'ContextualMenu' });\n/**\n * ContextualMenu description\n */\nexport var ContextualMenu = LocalContextualMenu;\nContextualMenu.displayName = 'ContextualMenu';\n//# sourceMappingURL=ContextualMenu.js.map","export { DirectionalHint } from '../../common/DirectionalHint';\n/**\n * {@docCategory ContextualMenu}\n */\nexport var ContextualMenuItemType;\n(function (ContextualMenuItemType) {\n    ContextualMenuItemType[ContextualMenuItemType[\"Normal\"] = 0] = \"Normal\";\n    ContextualMenuItemType[ContextualMenuItemType[\"Divider\"] = 1] = \"Divider\";\n    ContextualMenuItemType[ContextualMenuItemType[\"Header\"] = 2] = \"Header\";\n    ContextualMenuItemType[ContextualMenuItemType[\"Section\"] = 3] = \"Section\";\n})(ContextualMenuItemType || (ContextualMenuItemType = {}));\n//# sourceMappingURL=ContextualMenu.types.js.map","/**\n * The days of the week\n * {@docCategory DateTimeUtilities}\n */\nexport var DayOfWeek;\n(function (DayOfWeek) {\n    DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\n    DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\n    DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\n    DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\n    DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\n    DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\n    DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\n})(DayOfWeek || (DayOfWeek = {}));\n/**\n * The months\n * {@docCategory DateTimeUtilities}\n */\nexport var MonthOfYear;\n(function (MonthOfYear) {\n    MonthOfYear[MonthOfYear[\"January\"] = 0] = \"January\";\n    MonthOfYear[MonthOfYear[\"February\"] = 1] = \"February\";\n    MonthOfYear[MonthOfYear[\"March\"] = 2] = \"March\";\n    MonthOfYear[MonthOfYear[\"April\"] = 3] = \"April\";\n    MonthOfYear[MonthOfYear[\"May\"] = 4] = \"May\";\n    MonthOfYear[MonthOfYear[\"June\"] = 5] = \"June\";\n    MonthOfYear[MonthOfYear[\"July\"] = 6] = \"July\";\n    MonthOfYear[MonthOfYear[\"August\"] = 7] = \"August\";\n    MonthOfYear[MonthOfYear[\"September\"] = 8] = \"September\";\n    MonthOfYear[MonthOfYear[\"October\"] = 9] = \"October\";\n    MonthOfYear[MonthOfYear[\"November\"] = 10] = \"November\";\n    MonthOfYear[MonthOfYear[\"December\"] = 11] = \"December\";\n})(MonthOfYear || (MonthOfYear = {}));\n/**\n * First week of the year settings types\n * {@docCategory DateTimeUtilities}\n */\nexport var FirstWeekOfYear;\n(function (FirstWeekOfYear) {\n    FirstWeekOfYear[FirstWeekOfYear[\"FirstDay\"] = 0] = \"FirstDay\";\n    FirstWeekOfYear[FirstWeekOfYear[\"FirstFullWeek\"] = 1] = \"FirstFullWeek\";\n    FirstWeekOfYear[FirstWeekOfYear[\"FirstFourDayWeek\"] = 2] = \"FirstFourDayWeek\";\n})(FirstWeekOfYear || (FirstWeekOfYear = {}));\n/**\n * The supported date range types\n * {@docCategory DateTimeUtilities}\n */\nexport var DateRangeType;\n(function (DateRangeType) {\n    DateRangeType[DateRangeType[\"Day\"] = 0] = \"Day\";\n    DateRangeType[DateRangeType[\"Week\"] = 1] = \"Week\";\n    DateRangeType[DateRangeType[\"Month\"] = 2] = \"Month\";\n    DateRangeType[DateRangeType[\"WorkWeek\"] = 3] = \"WorkWeek\";\n})(DateRangeType || (DateRangeType = {}));\nexport var DAYS_IN_WEEK = 7;\n//# sourceMappingURL=dateValues.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","import { __assign } from \"tslib\";\n/**\n * Format date to a day string representation\n * @param date - input date to format\n */\nexport var formatDay = function (date) { return date.getDate().toString(); };\n/**\n * Format date to a month-day-year string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonthDayYear = function (date, strings) {\n    return strings.months[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear();\n};\n/**\n * Format date to a month-year string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonthYear = function (date, strings) {\n    return strings.months[date.getMonth()] + ' ' + date.getFullYear();\n};\n/**\n * Format date to a month string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonth = function (date, strings) { return strings.months[date.getMonth()]; };\n/**\n * Format date to a year string representation\n * @param date - input date to format\n */\nexport var formatYear = function (date) { return date.getFullYear().toString(); };\nexport var DEFAULT_DATE_GRID_STRINGS = {\n    months: [\n        'January',\n        'February',\n        'March',\n        'April',\n        'May',\n        'June',\n        'July',\n        'August',\n        'September',\n        'October',\n        'November',\n        'December',\n    ],\n    shortMonths: ['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};\nexport var DEFAULT_DATE_FORMATTING = {\n    formatDay: formatDay,\n    formatMonth: formatMonth,\n    formatYear: formatYear,\n    formatMonthDayYear: formatMonthDayYear,\n    formatMonthYear: formatMonthYear,\n};\nexport var DEFAULT_CALENDAR_STRINGS = __assign(__assign({}, DEFAULT_DATE_GRID_STRINGS), { goToToday: 'Go to today', weekNumberFormatString: 'Week number {0}', prevMonthAriaLabel: 'Previous month', nextMonthAriaLabel: 'Next month', prevYearAriaLabel: 'Previous year', nextYearAriaLabel: 'Next year', prevYearRangeAriaLabel: 'Previous year range', nextYearRangeAriaLabel: 'Next year range', closeButtonAriaLabel: 'Close', selectedDateFormatString: 'Selected date {0}', todayDateFormatString: \"Today's date {0}\", monthPickerHeaderAriaLabel: '{0}, change year', yearPickerHeaderAriaLabel: '{0}, change month', dayMarkedAriaLabel: 'marked' });\n//# sourceMappingURL=dateFormatting.defaults.js.map","import { DayOfWeek, MonthOfYear, FirstWeekOfYear, DateRangeType } from '../dateValues/dateValues';\nimport { TimeConstants } from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of days.\n * @param date - The origin date\n * @param days - The number of days to offset. 'days' can be negative.\n * @returns A new Date object offset from the origin date by the given number of days\n */\nexport function addDays(date, days) {\n    var result = new Date(date.getTime());\n    result.setDate(result.getDate() + days);\n    return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of weeks.\n * @param date - The origin date\n * @param weeks - The number of weeks to offset. 'weeks' can be negative.\n * @returns A new Date object offset from the origin date by the given number of weeks\n */\nexport function addWeeks(date, weeks) {\n    return addDays(date, weeks * TimeConstants.DaysInOneWeek);\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 - The origin date\n * @param months - The number of months to offset. 'months' can be negative.\n * @returns A new Date object offset from the origin date by the given number of months\n */\nexport function addMonths(date, months) {\n    var result = new Date(date.getTime());\n    var 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() !==\n        ((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 - The origin date\n * @param years - The number of years to offset. 'years' can be negative.\n * @returns A new Date object offset from the origin date by the given number of years\n */\nexport function addYears(date, years) {\n    var 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 that is the first day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the month.\n */\nexport function getMonthStart(date) {\n    return new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the month.\n */\nexport function getMonthEnd(date) {\n    return new Date(date.getFullYear(), date.getMonth() + 1, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the first day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the year.\n */\nexport function getYearStart(date) {\n    return new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the year.\n */\nexport function getYearEnd(date) {\n    return new Date(date.getFullYear() + 1, 0, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is a copy of the given date, aside from the month changing to the given month.\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 - The origin date\n * @param month - The 0-based index of the month to set on the date.\n * @returns A new Date object with the given month set.\n */\nexport function setMonth(date, month) {\n    return addMonths(date, month - date.getMonth());\n}\n/**\n * Compares two dates, and returns true if the two dates (not accounting for time-of-day) are equal.\n * @returns True if the two dates represent the same date (regardless of time-of-day), false otherwise.\n */\nexport function compareDates(date1, date2) {\n    if (!date1 && !date2) {\n        return true;\n    }\n    else if (!date1 || !date2) {\n        return false;\n    }\n    else {\n        return (date1.getFullYear() === date2.getFullYear() &&\n            date1.getMonth() === date2.getMonth() &&\n            date1.getDate() === date2.getDate());\n    }\n}\n/**\n * Compare the date parts of two dates\n * @param date1 - The first date to compare\n * @param date2 - The second date to compare\n * @returns A negative value if date1 is earlier than date2, 0 if the dates are equal, or a positive value\n * if date1 is later than date2.\n */\nexport function compareDatePart(date1, date2) {\n    return getDatePartHashValue(date1) - getDatePartHashValue(date2);\n}\n/**\n * Gets the date range array including the specified date. The date range array is calculated as the list\n * of dates accounting for the specified first day of the week and date range type.\n * @param date - The input date\n * @param dateRangeType - The desired date range type, i.e., day, week, month, etc.\n * @param firstDayOfWeek - The first day of the week.\n * @param workWeekDays - The allowed days in work week. If not provided, assumes all days are allowed.\n * @param daysToSelectInDayView - The number of days to include when using dateRangeType === DateRangeType.Day\n * for multiday view. Defaults to 1\n * @returns An array of dates representing the date range containing the specified date.\n */\nexport function getDateRangeArray(date, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView) {\n    if (daysToSelectInDayView === void 0) { daysToSelectInDayView = 1; }\n    var datesArray = [];\n    var startDate;\n    var endDate = null;\n    if (!workWeekDays) {\n        workWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\n    }\n    daysToSelectInDayView = Math.max(daysToSelectInDayView, 1);\n    switch (dateRangeType) {\n        case DateRangeType.Day:\n            startDate = getDatePart(date);\n            endDate = addDays(startDate, daysToSelectInDayView);\n            break;\n        case DateRangeType.Week:\n        case DateRangeType.WorkWeek:\n            startDate = getStartDateOfWeek(getDatePart(date), firstDayOfWeek);\n            endDate = addDays(startDate, TimeConstants.DaysInOneWeek);\n            break;\n        case DateRangeType.Month:\n            startDate = new Date(date.getFullYear(), date.getMonth(), 1);\n            endDate = addMonths(startDate, 1);\n            break;\n        default:\n            throw new Error('Unexpected object: ' + dateRangeType);\n    }\n    // Populate the dates array with the dates in range\n    var nextDate = startDate;\n    do {\n        if (dateRangeType !== DateRangeType.WorkWeek) {\n            // push all days not in work week view\n            datesArray.push(nextDate);\n        }\n        else if (workWeekDays.indexOf(nextDate.getDay()) !== -1) {\n            datesArray.push(nextDate);\n        }\n        nextDate = addDays(nextDate, 1);\n    } while (!compareDates(nextDate, endDate));\n    return datesArray;\n}\n/**\n * Checks whether the specified date is in the given date range.\n * @param date - The origin date\n * @param dateRange - An array of dates to do the lookup on\n * @returns True if the date matches one of the dates in the specified array, false otherwise.\n */\nexport function isInDateRangeArray(date, dateRange) {\n    for (var _i = 0, dateRange_1 = dateRange; _i < dateRange_1.length; _i++) {\n        var dateInRange = dateRange_1[_i];\n        if (compareDates(date, dateInRange)) {\n            return true;\n        }\n    }\n    return false;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param navigatedDate - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The weeks number array for the current month.\n */\nexport function getWeekNumbersInMonth(weeksInMonth, firstDayOfWeek, firstWeekOfYear, navigatedDate) {\n    var selectedYear = navigatedDate.getFullYear();\n    var selectedMonth = navigatedDate.getMonth();\n    var dayOfMonth = 1;\n    var fistDayOfMonth = new Date(selectedYear, selectedMonth, dayOfMonth);\n    var endOfFirstWeek = dayOfMonth +\n        (firstDayOfWeek + TimeConstants.DaysInOneWeek - 1) -\n        adjustWeekDay(firstDayOfWeek, fistDayOfMonth.getDay());\n    var endOfWeekRange = new Date(selectedYear, selectedMonth, endOfFirstWeek);\n    dayOfMonth = endOfWeekRange.getDate();\n    var weeksArray = [];\n    for (var i = 0; i < weeksInMonth; i++) {\n        // Get week number for end of week\n        weeksArray.push(getWeekNumber(endOfWeekRange, firstDayOfWeek, firstWeekOfYear));\n        dayOfMonth += TimeConstants.DaysInOneWeek;\n        endOfWeekRange = new Date(selectedYear, selectedMonth, dayOfMonth);\n    }\n    return weeksArray;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param date - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The week's number in the year.\n */\nexport function getWeekNumber(date, firstDayOfWeek, firstWeekOfYear) {\n    // First four-day week of the year - minumum days count\n    var fourDayWeek = 4;\n    switch (firstWeekOfYear) {\n        case FirstWeekOfYear.FirstFullWeek:\n            return getWeekOfYearFullDays(date, firstDayOfWeek, TimeConstants.DaysInOneWeek);\n        case FirstWeekOfYear.FirstFourDayWeek:\n            return getWeekOfYearFullDays(date, firstDayOfWeek, fourDayWeek);\n        default:\n            return getFirstDayWeekOfYear(date, firstDayOfWeek);\n    }\n}\n/**\n * Gets the date for the first day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getStartDateOfWeek(date, firstDayOfWeek) {\n    var daysOffset = firstDayOfWeek - date.getDay();\n    if (daysOffset > 0) {\n        // If first day of week is > date, go 1 week back, to ensure resulting date is in the past.\n        daysOffset -= TimeConstants.DaysInOneWeek;\n    }\n    return addDays(date, daysOffset);\n}\n/**\n * Gets the date for the last day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getEndDateOfWeek(date, firstDayOfWeek) {\n    var lastDayOfWeek = firstDayOfWeek - 1 >= 0 ? firstDayOfWeek - 1 : TimeConstants.DaysInOneWeek - 1;\n    var daysOffset = lastDayOfWeek - date.getDay();\n    if (daysOffset < 0) {\n        // If last day of week is < date, go 1 week forward, to ensure resulting date is in the future.\n        daysOffset += TimeConstants.DaysInOneWeek;\n    }\n    return addDays(date, daysOffset);\n}\n/**\n * Gets a new date with the time portion zeroed out, i.e., set to midnight\n * @param date - The origin date\n * @returns A new date with the time set to midnight\n */\nfunction getDatePart(date) {\n    return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n/**\n * Helper function to assist in date comparisons\n */\nexport function getDatePartHashValue(date) {\n    // Generate date hash value created as sum of Date (up to 31 = 5 bits), Month (up to 11 = 4 bits) and Year.\n    // eslint-disable-next-line no-bitwise\n    return date.getDate() + (date.getMonth() << 5) + (date.getFullYear() << 9);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param numberOfFullDays - week settings.\n * @returns The week's number in the year.\n */\nfunction getWeekOfYearFullDays(date, firstDayOfWeek, numberOfFullDays) {\n    var dayOfYear = getDayOfYear(date) - 1;\n    var num = date.getDay() - (dayOfYear % TimeConstants.DaysInOneWeek);\n    var lastDayOfPrevYear = new Date(date.getFullYear() - 1, MonthOfYear.December, 31);\n    var daysInYear = getDayOfYear(lastDayOfPrevYear) - 1;\n    var num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n    if (num2 !== 0 && num2 >= numberOfFullDays) {\n        num2 -= TimeConstants.DaysInOneWeek;\n    }\n    var num3 = dayOfYear - num2;\n    if (num3 < 0) {\n        num -= daysInYear % TimeConstants.DaysInOneWeek;\n        num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n        if (num2 !== 0 && num2 + 1 >= numberOfFullDays) {\n            num2 -= TimeConstants.DaysInOneWeek;\n        }\n        num3 = daysInYear - num2;\n    }\n    return Math.floor(num3 / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @returns The week's number in the year.\n */\nfunction getFirstDayWeekOfYear(date, firstDayOfWeek) {\n    var num = getDayOfYear(date) - 1;\n    var num2 = date.getDay() - (num % TimeConstants.DaysInOneWeek);\n    var num3 = (num2 - firstDayOfWeek + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n    return Math.floor((num + num3) / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns adjusted week day number when `firstDayOfWeek` is other than Sunday.\n * For Week Day Number comparison checks\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param dateWeekDay - shifts number forward to 1 week in case passed as true\n * @returns The day of week adjusted to `firstDayOfWeek`; e.g. when `firstDayOfWeek` is Monday (1),\n * Sunday becomes 7.\n */\nfunction adjustWeekDay(firstDayOfWeek, dateWeekDay) {\n    return firstDayOfWeek !== DayOfWeek.Sunday && dateWeekDay < firstDayOfWeek\n        ? dateWeekDay + TimeConstants.DaysInOneWeek\n        : dateWeekDay;\n}\n/**\n * Returns the day number for a date in a year:\n * the number of days since January 1st in the particular year.\n * @param date - A date to find the day number for.\n * @returns The day's number in the year.\n */\nfunction getDayOfYear(date) {\n    var month = date.getMonth();\n    var year = date.getFullYear();\n    var daysUntilDate = 0;\n    for (var i = 0; i < month; i++) {\n        daysUntilDate += daysInMonth(i + 1, year);\n    }\n    daysUntilDate += date.getDate();\n    return daysUntilDate;\n}\n/**\n * Returns the number of days in the month\n * @param month - The month number to target (months 1-12).\n * @param year - The year to target.\n * @returns The number of days in the month.\n */\nfunction daysInMonth(month, year) {\n    return new Date(year, month, 0).getDate();\n}\n//# sourceMappingURL=dateMath.js.map","import { __spreadArray } from \"tslib\";\nimport { compareDatePart } from '../dateMath/dateMath';\n/**\n * Generates a list of dates, bounded by min and max dates\n * @param dateRange - input date range\n * @param minDate - min date to limit the range\n * @param maxDate - max date to limit the range\n */\nexport var getBoundedDateRange = function (dateRange, minDate, maxDate) {\n    var boundedDateRange = __spreadArray([], dateRange, true);\n    if (minDate) {\n        boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, minDate) >= 0; });\n    }\n    if (maxDate) {\n        boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, maxDate) <= 0; });\n    }\n    return boundedDateRange;\n};\n//# sourceMappingURL=getBoundedDateRange.js.map","import { compareDatePart } from '../dateMath/dateMath';\n/**\n * Checks if `date` happens earlier than min date\n * @param date - date to check\n * @param options - object with min date to check against\n */\nexport var isBeforeMinDate = function (date, options) {\n    var minDate = options.minDate;\n    return minDate ? compareDatePart(minDate, date) >= 1 : false;\n};\n//# sourceMappingURL=isBeforeMinDate.js.map","import { compareDatePart } from '../dateMath/dateMath';\n/**\n * Checks if `date` happens later than max date\n * @param date - date to check\n * @param options - object with max date to check against\n */\nexport var isAfterMaxDate = function (date, options) {\n    var maxDate = options.maxDate;\n    return maxDate ? compareDatePart(date, maxDate) >= 1 : false;\n};\n//# sourceMappingURL=isAfterMaxDate.js.map","import { compareDates } from '../dateMath/dateMath';\nimport { isBeforeMinDate } from './isBeforeMinDate';\nimport { isAfterMaxDate } from './isAfterMaxDate';\n/**\n * Checks if `date` falls into the restricted `options`\n * @param date - date to check\n * @param options - restriction options (min date, max date and list of restricted dates)\n */\nexport var isRestrictedDate = function (date, options) {\n    var restrictedDates = options.restrictedDates, minDate = options.minDate, maxDate = options.maxDate;\n    if (!restrictedDates && !minDate && !maxDate) {\n        return false;\n    }\n    var inRestrictedDates = restrictedDates && restrictedDates.some(function (rd) { return compareDates(rd, date); });\n    return inRestrictedDates || isBeforeMinDate(date, options) || isAfterMaxDate(date, options);\n};\n//# sourceMappingURL=isRestrictedDate.js.map","import * as React from 'react';\nimport { css, findIndex } from '@fluentui/utilities';\nimport { DAYS_IN_WEEK } from '@fluentui/date-time-utilities';\nexport var CalendarMonthHeaderRow = function (props) {\n    var showWeekNumbers = props.showWeekNumbers, strings = props.strings, firstDayOfWeek = props.firstDayOfWeek, allFocusable = props.allFocusable, weeksToShow = props.weeksToShow, weeks = props.weeks, classNames = props.classNames;\n    var dayLabels = strings.shortDays.slice();\n    var firstOfMonthIndex = findIndex(weeks[1], function (day) { return day.originalDate.getDate() === 1; });\n    if (weeksToShow === 1 && firstOfMonthIndex >= 0) {\n        // if we only show one week, replace the header with short month name\n        var firstOfMonthIndexOffset = (firstOfMonthIndex + firstDayOfWeek) % DAYS_IN_WEEK;\n        dayLabels[firstOfMonthIndexOffset] = strings.shortMonths[weeks[1][firstOfMonthIndex].originalDate.getMonth()];\n    }\n    return (React.createElement(\"tr\", null,\n        showWeekNumbers && React.createElement(\"th\", { className: classNames.dayCell }),\n        dayLabels.map(function (val, index) {\n            var i = (index + firstDayOfWeek) % DAYS_IN_WEEK;\n            var label = strings.days[i];\n            return (React.createElement(\"th\", { className: css(classNames.dayCell, classNames.weekDayLabelCell), scope: \"col\", key: dayLabels[i] + ' ' + index, title: label, \"aria-label\": label, \"data-is-focusable\": allFocusable ? true : undefined }, dayLabels[i]));\n        })));\n};\n//# sourceMappingURL=CalendarMonthHeaderRow.js.map","import { __rest } from \"tslib\";\nimport { isRestrictedDate } from './isRestrictedDate';\nimport { isAfterMaxDate } from './isAfterMaxDate';\nimport { isBeforeMinDate } from './isBeforeMinDate';\nimport { compareDatePart, addDays } from '../dateMath/dateMath';\n/**\n * Returns closest available date given the restriction `options`, or undefined otherwise\n * @param options - list of search options\n */\nexport var findAvailableDate = function (options) {\n    var targetDate = options.targetDate, initialDate = options.initialDate, direction = options.direction, restrictedDateOptions = __rest(options, [\"targetDate\", \"initialDate\", \"direction\"]);\n    var availableDate = targetDate;\n    // if the target date is available, return it immediately\n    if (!isRestrictedDate(targetDate, restrictedDateOptions)) {\n        return targetDate;\n    }\n    while (compareDatePart(initialDate, availableDate) !== 0 &&\n        isRestrictedDate(availableDate, restrictedDateOptions) &&\n        !isAfterMaxDate(availableDate, restrictedDateOptions) &&\n        !isBeforeMinDate(availableDate, restrictedDateOptions)) {\n        availableDate = addDays(availableDate, direction);\n    }\n    if (compareDatePart(initialDate, availableDate) !== 0 && !isRestrictedDate(availableDate, restrictedDateOptions)) {\n        return availableDate;\n    }\n    return undefined;\n};\n//# sourceMappingURL=findAvailableDate.js.map","import * as React from 'react';\nimport { KeyCodes, css, getRTLSafeKeyCode } from '@fluentui/utilities';\nimport { addDays, addWeeks, compareDates, findAvailableDate, DateRangeType } from '@fluentui/date-time-utilities';\nexport var CalendarGridDayCell = function (props) {\n    var _a;\n    var navigatedDate = props.navigatedDate, dateTimeFormatter = props.dateTimeFormatter, allFocusable = props.allFocusable, strings = props.strings, activeDescendantId = props.activeDescendantId, navigatedDayRef = props.navigatedDayRef, calculateRoundedStyles = props.calculateRoundedStyles, weeks = props.weeks, classNames = props.classNames, day = props.day, dayIndex = props.dayIndex, weekIndex = props.weekIndex, weekCorners = props.weekCorners, ariaHidden = props.ariaHidden, customDayCellRef = props.customDayCellRef, dateRangeType = props.dateRangeType, daysToSelectInDayView = props.daysToSelectInDayView, onSelectDate = props.onSelectDate, restrictedDates = props.restrictedDates, minDate = props.minDate, maxDate = props.maxDate, onNavigateDate = props.onNavigateDate, getDayInfosInRangeOfDay = props.getDayInfosInRangeOfDay, getRefsFromDayInfos = props.getRefsFromDayInfos;\n    var cornerStyle = (_a = weekCorners === null || weekCorners === void 0 ? void 0 : weekCorners[weekIndex + '_' + dayIndex]) !== null && _a !== void 0 ? _a : '';\n    var isNavigatedDate = compareDates(navigatedDate, day.originalDate);\n    var navigateMonthEdge = function (ev, date) {\n        var targetDate = undefined;\n        var direction = 1; // by default search forward\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.up) {\n            targetDate = addWeeks(date, -1);\n            direction = -1;\n            // eslint-disable-next-line deprecation/deprecation\n        }\n        else if (ev.which === KeyCodes.down) {\n            targetDate = addWeeks(date, 1);\n            // eslint-disable-next-line deprecation/deprecation\n        }\n        else if (ev.which === getRTLSafeKeyCode(KeyCodes.left)) {\n            targetDate = addDays(date, -1);\n            direction = -1;\n            // eslint-disable-next-line deprecation/deprecation\n        }\n        else if (ev.which === getRTLSafeKeyCode(KeyCodes.right)) {\n            targetDate = addDays(date, 1);\n        }\n        if (!targetDate) {\n            // if we couldn't find a target date at all, do nothing\n            return;\n        }\n        var findAvailableDateOptions = {\n            initialDate: date,\n            targetDate: targetDate,\n            direction: direction,\n            restrictedDates: restrictedDates,\n            minDate: minDate,\n            maxDate: maxDate,\n        };\n        // target date is restricted, search in whatever direction until finding the next possible date,\n        // stopping at boundaries\n        var nextDate = findAvailableDate(findAvailableDateOptions);\n        if (!nextDate) {\n            // if no dates available in initial direction, try going backwards\n            findAvailableDateOptions.direction = -direction;\n            nextDate = findAvailableDate(findAvailableDateOptions);\n        }\n        // if the nextDate is still inside the same focusZone area, let the focusZone handle setting the focus so we\n        // don't jump the view unnecessarily\n        var isInCurrentView = weeks &&\n            nextDate &&\n            weeks.slice(1, weeks.length - 1).some(function (week) {\n                return week.some(function (dayToCompare) {\n                    return compareDates(dayToCompare.originalDate, nextDate);\n                });\n            });\n        if (isInCurrentView) {\n            return;\n        }\n        // else, fire navigation on the date to change the view to show it\n        if (nextDate) {\n            onNavigateDate(nextDate, true);\n            ev.preventDefault();\n        }\n    };\n    var onMouseOverDay = function (ev) {\n        var dayInfos = getDayInfosInRangeOfDay(day);\n        var dayRefs = getRefsFromDayInfos(dayInfos);\n        dayRefs.forEach(function (dayRef, index) {\n            var _a;\n            if (dayRef) {\n                dayRef.classList.add('ms-CalendarDay-hoverStyle');\n                if (!dayInfos[index].isSelected &&\n                    dateRangeType === DateRangeType.Day &&\n                    daysToSelectInDayView &&\n                    daysToSelectInDayView > 1) {\n                    // remove the static classes first to overwrite them\n                    dayRef.classList.remove(classNames.bottomLeftCornerDate, classNames.bottomRightCornerDate, classNames.topLeftCornerDate, classNames.topRightCornerDate);\n                    var classNamesToAdd = calculateRoundedStyles(classNames, false, false, index > 0, index < dayRefs.length - 1).trim();\n                    if (classNamesToAdd) {\n                        (_a = dayRef.classList).add.apply(_a, classNamesToAdd.split(' '));\n                    }\n                }\n            }\n        });\n    };\n    var onMouseDownDay = function (ev) {\n        var dayInfos = getDayInfosInRangeOfDay(day);\n        var dayRefs = getRefsFromDayInfos(dayInfos);\n        dayRefs.forEach(function (dayRef) {\n            if (dayRef) {\n                dayRef.classList.add('ms-CalendarDay-pressedStyle');\n            }\n        });\n    };\n    var onMouseUpDay = function (ev) {\n        var dayInfos = getDayInfosInRangeOfDay(day);\n        var dayRefs = getRefsFromDayInfos(dayInfos);\n        dayRefs.forEach(function (dayRef) {\n            if (dayRef) {\n                dayRef.classList.remove('ms-CalendarDay-pressedStyle');\n            }\n        });\n    };\n    var onMouseOutDay = function (ev) {\n        var dayInfos = getDayInfosInRangeOfDay(day);\n        var dayRefs = getRefsFromDayInfos(dayInfos);\n        dayRefs.forEach(function (dayRef, index) {\n            var _a;\n            if (dayRef) {\n                dayRef.classList.remove('ms-CalendarDay-hoverStyle');\n                dayRef.classList.remove('ms-CalendarDay-pressedStyle');\n                if (!dayInfos[index].isSelected &&\n                    dateRangeType === DateRangeType.Day &&\n                    daysToSelectInDayView &&\n                    daysToSelectInDayView > 1) {\n                    var classNamesToAdd = calculateRoundedStyles(classNames, false, false, index > 0, index < dayRefs.length - 1).trim();\n                    if (classNamesToAdd) {\n                        (_a = dayRef.classList).remove.apply(_a, classNamesToAdd.split(' '));\n                    }\n                }\n            }\n        });\n    };\n    var onDayKeyDown = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.enter) {\n            onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(day.originalDate);\n        }\n        else {\n            navigateMonthEdge(ev, day.originalDate);\n        }\n    };\n    var ariaLabel = day.originalDate.getDate() +\n        ', ' +\n        strings.months[day.originalDate.getMonth()] +\n        ', ' +\n        day.originalDate.getFullYear();\n    if (day.isMarked) {\n        ariaLabel = ariaLabel + ', ' + strings.dayMarkedAriaLabel;\n    }\n    return (React.createElement(\"td\", { className: css(classNames.dayCell, weekCorners && cornerStyle, day.isSelected && classNames.daySelected, day.isSelected && 'ms-CalendarDay-daySelected', !day.isInBounds && classNames.dayOutsideBounds, !day.isInMonth && classNames.dayOutsideNavigatedMonth), ref: function (element) {\n            customDayCellRef === null || customDayCellRef === void 0 ? void 0 : customDayCellRef(element, day.originalDate, classNames);\n            day.setRef(element);\n            isNavigatedDate && (navigatedDayRef.current = element);\n        }, \"aria-hidden\": ariaHidden, \"aria-disabled\": !ariaHidden && !day.isInBounds, onClick: day.isInBounds && !ariaHidden ? day.onSelected : undefined, onMouseOver: !ariaHidden ? onMouseOverDay : undefined, onMouseDown: !ariaHidden ? onMouseDownDay : undefined, onMouseUp: !ariaHidden ? onMouseUpDay : undefined, onMouseOut: !ariaHidden ? onMouseOutDay : undefined, onKeyDown: !ariaHidden ? onDayKeyDown : undefined, role: \"gridcell\", tabIndex: isNavigatedDate ? 0 : undefined, \"aria-current\": day.isToday ? 'date' : undefined, \"aria-selected\": day.isInBounds ? day.isSelected : undefined, \"data-is-focusable\": !ariaHidden && (allFocusable || (day.isInBounds ? true : undefined)) },\n        React.createElement(\"button\", { key: day.key + 'button', \"aria-hidden\": ariaHidden, className: css(classNames.dayButton, day.isToday && classNames.dayIsToday, day.isToday && 'ms-CalendarDay-dayIsToday'), \"aria-label\": ariaLabel, id: isNavigatedDate ? activeDescendantId : undefined, disabled: !ariaHidden && !day.isInBounds, type: \"button\", tabIndex: -1, \"data-is-focusable\": \"false\" },\n            React.createElement(\"span\", { \"aria-hidden\": \"true\" }, dateTimeFormatter.formatDay(day.originalDate)),\n            day.isMarked && React.createElement(\"div\", { \"aria-hidden\": \"true\", className: classNames.dayMarker }))));\n};\n//# sourceMappingURL=CalendarGridDayCell.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { format } from '@fluentui/utilities';\nimport { getWeekNumbersInMonth } from '@fluentui/date-time-utilities';\nimport { CalendarGridDayCell } from './CalendarGridDayCell';\nexport var CalendarGridRow = function (props) {\n    var classNames = props.classNames, week = props.week, weeks = props.weeks, weekIndex = props.weekIndex, rowClassName = props.rowClassName, ariaRole = props.ariaRole, showWeekNumbers = props.showWeekNumbers, firstDayOfWeek = props.firstDayOfWeek, firstWeekOfYear = props.firstWeekOfYear, navigatedDate = props.navigatedDate, strings = props.strings;\n    var weekNumbers = showWeekNumbers\n        ? getWeekNumbersInMonth(weeks.length, firstDayOfWeek, firstWeekOfYear, navigatedDate)\n        : null;\n    var titleString = weekNumbers\n        ? strings.weekNumberFormatString && format(strings.weekNumberFormatString, weekNumbers[weekIndex])\n        : '';\n    return (React.createElement(\"tr\", { role: ariaRole, className: rowClassName, key: weekIndex + '_' + week[0].key },\n        showWeekNumbers && weekNumbers && (React.createElement(\"th\", { className: classNames.weekNumberCell, key: weekIndex, title: titleString, \"aria-label\": titleString, scope: \"row\" },\n            React.createElement(\"span\", null, weekNumbers[weekIndex]))),\n        week.map(function (day, dayIndex) { return (React.createElement(CalendarGridDayCell, __assign({}, props, { key: day.key, day: day, dayIndex: dayIndex }))); })));\n};\n//# sourceMappingURL=CalendarGridRow.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getRTL, classNamesFunction } from '@fluentui/utilities';\nimport { FocusZone } from '../../FocusZone';\nimport { getDateRangeArray, getDayGrid, getBoundedDateRange, isRestrictedDate, DAYS_IN_WEEK, compareDates, DateRangeType, } from '@fluentui/date-time-utilities';\nimport { usePrevious, useId } from '@fluentui/react-hooks';\nimport { CalendarMonthHeaderRow } from './CalendarMonthHeaderRow';\nimport { CalendarGridRow } from './CalendarGridRow';\nvar getClassNames = classNamesFunction();\nfunction useDayRefs() {\n    var daysRef = React.useRef({});\n    var getSetRefCallback = function (dayKey) { return function (element) {\n        if (element === null) {\n            delete daysRef.current[dayKey];\n        }\n        else {\n            daysRef.current[dayKey] = element;\n        }\n    }; };\n    return [daysRef, getSetRefCallback];\n}\nfunction useWeeks(props, onSelectDate, getSetRefCallback) {\n    /**\n     * Initial parsing of the given props to generate IDayInfo two dimensional array, which contains a representation\n     * of every day in the grid. Convenient for helping with conversions between day refs and Date objects in callbacks.\n     */\n    var weeks = React.useMemo(function () {\n        var _a;\n        var weeksGrid = getDayGrid(props);\n        var firstVisibleDay = weeksGrid[1][0].originalDate;\n        var lastVisibleDay = weeksGrid[weeksGrid.length - 1][6].originalDate;\n        var markedDays = ((_a = props.getMarkedDays) === null || _a === void 0 ? void 0 : _a.call(props, firstVisibleDay, lastVisibleDay)) || [];\n        /**\n         * Weeks is a 2D array. Weeks[0] contains the last week of the prior range,\n         * Weeks[weeks.length - 1] contains first week of next range. These are for transition states.\n         *\n         * Weeks[1... weeks.length - 2] contains the actual visible data\n         */\n        var returnValue = [];\n        for (var weekIndex = 0; weekIndex < weeksGrid.length; weekIndex++) {\n            var week = [];\n            var _loop_1 = function (dayIndex) {\n                var day = weeksGrid[weekIndex][dayIndex];\n                var dayInfo = __assign(__assign({ onSelected: function () { return onSelectDate(day.originalDate); }, setRef: getSetRefCallback(day.key) }, day), { isMarked: day.isMarked || (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some(function (markedDay) { return compareDates(day.originalDate, markedDay); })) });\n                week.push(dayInfo);\n            };\n            for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {\n                _loop_1(dayIndex);\n            }\n            returnValue.push(week);\n        }\n        return returnValue;\n        // TODO: this is missing deps on getSetRefCallback and onSelectDate (and depending on the entire\n        // props object may not be a good idea due to likely frequent mutation). It would be easy to\n        // fix getSetRefCallback to not mutate every render, but onSelectDate is passed down from\n        // Calendar and trying to fix it requires a huge cascade of changes.\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [props]);\n    return weeks;\n}\n/**\n * Hook to determine whether to animate the CalendarDayGrid forwards or backwards\n * @returns true if the grid should animate backwards; false otherwise\n */\nfunction useAnimateBackwards(weeks) {\n    var previousNavigatedDate = usePrevious(weeks[0][0].originalDate);\n    if (!previousNavigatedDate || previousNavigatedDate.getTime() === weeks[0][0].originalDate.getTime()) {\n        return undefined;\n    }\n    else if (previousNavigatedDate <= weeks[0][0].originalDate) {\n        return false;\n    }\n    else {\n        return true;\n    }\n}\nfunction useWeekCornerStyles(props) {\n    /**\n     *\n     * Section for setting the rounded corner styles on individual day cells. Individual day cells need different\n     * corners to be rounded depending on which date range type and where the cell is located in the current grid.\n     * If we just round all of the corners, there isn't a good overlap and we get gaps between contiguous day boxes\n     * in Edge browser.\n     *\n     */\n    var getWeekCornerStyles = function (classNames, initialWeeks) {\n        var weekCornersStyled = {};\n        /* need to handle setting all of the corners on arbitrarily shaped blobs\n              __\n           __|A |\n          |B |C |__\n          |D |E |F |\n    \n          in this case, A needs top left rounded, top right rounded\n          B needs top left rounded\n          C doesn't need any rounding\n          D needs bottom left rounded\n          E doesn't need any rounding\n          F needs top right rounding\n        */\n        // cut off the animation transition weeks\n        var weeks = initialWeeks.slice(1, initialWeeks.length - 1);\n        // if there's an item above, lose both top corners. Item below, lose both bottom corners, etc.\n        weeks.forEach(function (week, weekIndex) {\n            week.forEach(function (day, dayIndex) {\n                var above = weeks[weekIndex - 1] &&\n                    weeks[weekIndex - 1][dayIndex] &&\n                    isInSameHoverRange(weeks[weekIndex - 1][dayIndex].originalDate, day.originalDate, weeks[weekIndex - 1][dayIndex].isSelected, day.isSelected);\n                var below = weeks[weekIndex + 1] &&\n                    weeks[weekIndex + 1][dayIndex] &&\n                    isInSameHoverRange(weeks[weekIndex + 1][dayIndex].originalDate, day.originalDate, weeks[weekIndex + 1][dayIndex].isSelected, day.isSelected);\n                var left = weeks[weekIndex][dayIndex - 1] &&\n                    isInSameHoverRange(weeks[weekIndex][dayIndex - 1].originalDate, day.originalDate, weeks[weekIndex][dayIndex - 1].isSelected, day.isSelected);\n                var right = weeks[weekIndex][dayIndex + 1] &&\n                    isInSameHoverRange(weeks[weekIndex][dayIndex + 1].originalDate, day.originalDate, weeks[weekIndex][dayIndex + 1].isSelected, day.isSelected);\n                var style = [];\n                style.push(calculateRoundedStyles(classNames, above, below, left, right));\n                style.push(calculateBorderStyles(classNames, above, below, left, right));\n                weekCornersStyled[weekIndex + '_' + dayIndex] = style.join(' ');\n            });\n        });\n        return weekCornersStyled;\n    };\n    var calculateRoundedStyles = function (classNames, above, below, left, right) {\n        var style = [];\n        var roundedTopLeft = !above && !left;\n        var roundedTopRight = !above && !right;\n        var roundedBottomLeft = !below && !left;\n        var roundedBottomRight = !below && !right;\n        if (roundedTopLeft) {\n            style.push(getRTL() ? classNames.topRightCornerDate : classNames.topLeftCornerDate);\n        }\n        if (roundedTopRight) {\n            style.push(getRTL() ? classNames.topLeftCornerDate : classNames.topRightCornerDate);\n        }\n        if (roundedBottomLeft) {\n            style.push(getRTL() ? classNames.bottomRightCornerDate : classNames.bottomLeftCornerDate);\n        }\n        if (roundedBottomRight) {\n            style.push(getRTL() ? classNames.bottomLeftCornerDate : classNames.bottomRightCornerDate);\n        }\n        return style.join(' ');\n    };\n    var calculateBorderStyles = function (classNames, above, below, left, right) {\n        var style = [];\n        if (!above) {\n            style.push(classNames.datesAbove);\n        }\n        if (!below) {\n            style.push(classNames.datesBelow);\n        }\n        if (!left) {\n            style.push(getRTL() ? classNames.datesRight : classNames.datesLeft);\n        }\n        if (!right) {\n            style.push(getRTL() ? classNames.datesLeft : classNames.datesRight);\n        }\n        return style.join(' ');\n    };\n    var isInSameHoverRange = function (date1, date2, date1Selected, date2Selected) {\n        var dateRangeType = props.dateRangeType, firstDayOfWeek = props.firstDayOfWeek, workWeekDays = props.workWeekDays;\n        // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n        var dateRangeHoverType = dateRangeType === DateRangeType.WorkWeek ? DateRangeType.Week : dateRangeType;\n        // we do not pass daysToSelectInDayView because we handle setting those styles dyanamically in onMouseOver\n        var dateRange = getDateRangeArray(date1, dateRangeHoverType, firstDayOfWeek, workWeekDays);\n        if (date1Selected !== date2Selected) {\n            // if one is selected and the other is not, they can't be in the same range\n            return false;\n        }\n        else if (date1Selected && date2Selected) {\n            // if they're both selected at the same time they must be in the same range\n            return true;\n        }\n        // otherwise, both must be unselected, so check the dateRange\n        return dateRange.filter(function (date) { return date.getTime() === date2.getTime(); }).length > 0;\n    };\n    return [getWeekCornerStyles, calculateRoundedStyles];\n}\nexport var CalendarDayGridBase = function (props) {\n    var navigatedDayRef = React.useRef(null);\n    var activeDescendantId = useId();\n    var onSelectDate = function (selectedDate) {\n        var _a, _b;\n        var firstDayOfWeek = props.firstDayOfWeek, minDate = props.minDate, maxDate = props.maxDate, workWeekDays = props.workWeekDays, daysToSelectInDayView = props.daysToSelectInDayView, restrictedDates = props.restrictedDates;\n        var restrictedDatesOptions = { minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates };\n        var dateRange = getDateRangeArray(selectedDate, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n        dateRange = getBoundedDateRange(dateRange, minDate, maxDate);\n        dateRange = dateRange.filter(function (d) {\n            return !isRestrictedDate(d, restrictedDatesOptions);\n        });\n        (_a = props.onSelectDate) === null || _a === void 0 ? void 0 : _a.call(props, selectedDate, dateRange);\n        (_b = props.onNavigateDate) === null || _b === void 0 ? void 0 : _b.call(props, selectedDate, true);\n    };\n    var _a = useDayRefs(), daysRef = _a[0], getSetRefCallback = _a[1];\n    var weeks = useWeeks(props, onSelectDate, getSetRefCallback);\n    var animateBackwards = useAnimateBackwards(weeks);\n    var _b = useWeekCornerStyles(props), getWeekCornerStyles = _b[0], calculateRoundedStyles = _b[1];\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        focus: function () {\n            var _a, _b;\n            (_b = (_a = navigatedDayRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n        },\n    }); }, []);\n    /**\n     *\n     * Section for setting hover/pressed styles. Because we want arbitrary blobs of days to be selectable, to support\n     * highlighting every day in the month for month view, css :hover style isn't enough, so we need mouse callbacks\n     * to set classnames on all relevant child refs to apply the styling\n     *\n     */\n    var getDayInfosInRangeOfDay = function (dayToCompare) {\n        // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n        var dateRangeHoverType = getDateRangeTypeToUse(props.dateRangeType, props.workWeekDays);\n        // gets all the dates for the given date range type that are in the same date range as the given day\n        var dateRange = getDateRangeArray(dayToCompare.originalDate, dateRangeHoverType, props.firstDayOfWeek, props.workWeekDays, props.daysToSelectInDayView).map(function (date) { return date.getTime(); });\n        // gets all the day refs for the given dates\n        var dayInfosInRange = weeks.reduce(function (accumulatedValue, currentWeek) {\n            return accumulatedValue.concat(currentWeek.filter(function (weekDay) { return dateRange.indexOf(weekDay.originalDate.getTime()) !== -1; }));\n        }, []);\n        return dayInfosInRange;\n    };\n    var getRefsFromDayInfos = function (dayInfosInRange) {\n        var dayRefs = [];\n        dayRefs = dayInfosInRange.map(function (dayInfo) { return daysRef.current[dayInfo.key]; });\n        return dayRefs;\n    };\n    var styles = props.styles, theme = props.theme, className = props.className, dateRangeType = props.dateRangeType, showWeekNumbers = props.showWeekNumbers, labelledBy = props.labelledBy, lightenDaysOutsideNavigatedMonth = props.lightenDaysOutsideNavigatedMonth, animationDirection = props.animationDirection;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        dateRangeType: dateRangeType,\n        showWeekNumbers: showWeekNumbers,\n        lightenDaysOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth === undefined ? true : lightenDaysOutsideNavigatedMonth,\n        animationDirection: animationDirection,\n        animateBackwards: animateBackwards,\n    });\n    // When the month is highlighted get the corner dates so that styles can be added to them\n    var weekCorners = getWeekCornerStyles(classNames, weeks);\n    var partialWeekProps = {\n        weeks: weeks,\n        navigatedDayRef: navigatedDayRef,\n        calculateRoundedStyles: calculateRoundedStyles,\n        activeDescendantId: activeDescendantId,\n        classNames: classNames,\n        weekCorners: weekCorners,\n        getDayInfosInRangeOfDay: getDayInfosInRangeOfDay,\n        getRefsFromDayInfos: getRefsFromDayInfos,\n    };\n    return (React.createElement(FocusZone, { className: classNames.wrapper, preventDefaultWhenHandled: true },\n        React.createElement(\"table\", { className: classNames.table, \"aria-multiselectable\": \"false\", \"aria-labelledby\": labelledBy, \"aria-activedescendant\": activeDescendantId, role: \"grid\" },\n            React.createElement(\"tbody\", null,\n                React.createElement(CalendarMonthHeaderRow, __assign({}, props, { classNames: classNames, weeks: weeks })),\n                React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { week: weeks[0], weekIndex: -1, rowClassName: classNames.firstTransitionWeek, ariaRole: \"presentation\", ariaHidden: true })),\n                weeks.slice(1, weeks.length - 1).map(function (week, weekIndex) { return (React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { key: weekIndex, week: week, weekIndex: weekIndex, rowClassName: classNames.weekRow }))); }),\n                React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { week: weeks[weeks.length - 1], weekIndex: -2, rowClassName: classNames.lastTransitionWeek, ariaRole: \"presentation\", ariaHidden: true }))))));\n};\nCalendarDayGridBase.displayName = 'CalendarDayGridBase';\n/**\n * When given work week, if the days are non-contiguous, the hover states look really weird. So for non-contiguous\n * work weeks, we'll just show week view instead.\n */\nfunction getDateRangeTypeToUse(dateRangeType, workWeekDays) {\n    if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n        var sortedWWDays = workWeekDays.slice().sort();\n        var isContiguous = true;\n        for (var i = 1; i < sortedWWDays.length; i++) {\n            if (sortedWWDays[i] !== sortedWWDays[i - 1] + 1) {\n                isContiguous = false;\n                break;\n            }\n        }\n        if (!isContiguous || workWeekDays.length === 0) {\n            return DateRangeType.Week;\n        }\n    }\n    return dateRangeType;\n}\n//# sourceMappingURL=CalendarDayGrid.base.js.map","import { addDays, compareDates, getDateRangeArray, isInDateRangeArray } from '../dateMath/dateMath';\nimport { DAYS_IN_WEEK } from '../dateValues/dateValues';\nimport { getDateRangeTypeToUse } from './getDateRangeTypeToUse';\nimport { getBoundedDateRange } from './getBoundedDateRange';\nimport { isRestrictedDate } from './isRestrictedDate';\n/**\n * Generates a grid of days, given the `options`.\n * Returns one additional week at the begining from the previous range\n * and one at the end from the future range\n * @param options - parameters to specify date related restrictions for the resulting grid\n */\nexport var getDayGrid = function (options) {\n    var selectedDate = options.selectedDate, dateRangeType = options.dateRangeType, firstDayOfWeek = options.firstDayOfWeek, today = options.today, minDate = options.minDate, maxDate = options.maxDate, weeksToShow = options.weeksToShow, workWeekDays = options.workWeekDays, daysToSelectInDayView = options.daysToSelectInDayView, restrictedDates = options.restrictedDates, markedDays = options.markedDays;\n    var restrictedDateOptions = { minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates };\n    var todaysDate = today || new Date();\n    var navigatedDate = options.navigatedDate ? options.navigatedDate : todaysDate;\n    var date;\n    if (weeksToShow && weeksToShow <= 4) {\n        // if showing less than a full month, just use date == navigatedDate\n        date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), navigatedDate.getDate());\n    }\n    else {\n        date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), 1);\n    }\n    var weeks = [];\n    // Cycle the date backwards to get to the first day of the week.\n    while (date.getDay() !== firstDayOfWeek) {\n        date.setDate(date.getDate() - 1);\n    }\n    // add the transition week as last week of previous range\n    date = addDays(date, -DAYS_IN_WEEK);\n    // a flag to indicate whether all days of the week are outside the month\n    var isAllDaysOfWeekOutOfMonth = false;\n    // in work week view if the days aren't contiguous we use week view instead\n    var selectedDateRangeType = getDateRangeTypeToUse(dateRangeType, workWeekDays, firstDayOfWeek);\n    var selectedDates = [];\n    if (selectedDate) {\n        selectedDates = getDateRangeArray(selectedDate, selectedDateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n        selectedDates = getBoundedDateRange(selectedDates, minDate, maxDate);\n    }\n    var shouldGetWeeks = true;\n    for (var weekIndex = 0; shouldGetWeeks; weekIndex++) {\n        var week = [];\n        isAllDaysOfWeekOutOfMonth = true;\n        var _loop_1 = function (dayIndex) {\n            var originalDate = new Date(date.getTime());\n            var dayInfo = {\n                key: date.toString(),\n                date: date.getDate().toString(),\n                originalDate: originalDate,\n                isInMonth: date.getMonth() === navigatedDate.getMonth(),\n                isToday: compareDates(todaysDate, date),\n                isSelected: isInDateRangeArray(date, selectedDates),\n                isInBounds: !isRestrictedDate(date, restrictedDateOptions),\n                isMarked: (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some(function (markedDay) { return compareDates(originalDate, markedDay); })) || false,\n            };\n            week.push(dayInfo);\n            if (dayInfo.isInMonth) {\n                isAllDaysOfWeekOutOfMonth = false;\n            }\n            date.setDate(date.getDate() + 1);\n        };\n        for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {\n            _loop_1(dayIndex);\n        }\n        // We append the condition of the loop depending upon the showSixWeeksByDefault prop.\n        shouldGetWeeks = weeksToShow ? weekIndex < weeksToShow + 1 : !isAllDaysOfWeekOutOfMonth || weekIndex === 0;\n        // we don't check shouldGetWeeks before pushing because we want to add one extra week for transition state\n        weeks.push(week);\n    }\n    return weeks;\n};\n//# sourceMappingURL=getDayGrid.js.map","import { DateRangeType } from '../dateValues/dateValues';\nimport { isContiguous } from './isContiguous';\n/**\n * Return corrected date range type, given `dateRangeType` and list of working days.\n * For non-contiguous working days and working week range type, returns general week range type.\n * For other cases returns input date range type.\n * @param dateRangeType - input type of range\n * @param workWeekDays - list of working days in a week\n */\nexport var getDateRangeTypeToUse = function (dateRangeType, workWeekDays, firstDayOfWeek) {\n    if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n        if (!isContiguous(workWeekDays, true, firstDayOfWeek) || workWeekDays.length === 0) {\n            return DateRangeType.Week;\n        }\n    }\n    return dateRangeType;\n};\n//# sourceMappingURL=getDateRangeTypeToUse.js.map","/**\n * Returns whether provided week days are contiguous.\n * @param days - list of days in a week\n * @param isSingleWeek - decides whether the contiguous logic applies across week boundaries or not\n * @param firstDayOfWeek - decides which day of week is the first one in the order.\n */\nexport var isContiguous = function (days, isSingleWeek, firstDayOfWeek) {\n    var daySet = new Set(days);\n    var amountOfNoNeighbors = 0;\n    for (var _i = 0, days_1 = days; _i < days_1.length; _i++) {\n        var day = days_1[_i];\n        var nextDay = (day + 1) % 7;\n        if (!(daySet.has(nextDay) && (!isSingleWeek || firstDayOfWeek !== nextDay))) {\n            amountOfNoNeighbors++;\n        }\n    }\n    // In case the full week is provided, then each day has a neighbor\n    //, otherwise the last day does not have a neighbor.\n    return amountOfNoNeighbors < 2;\n};\n//# sourceMappingURL=isContiguous.js.map","/**\n * {@docCategory Calendar}\n */\nexport var AnimationDirection;\n(function (AnimationDirection) {\n    /**\n     * Grid will transition out and in horizontally\n     */\n    AnimationDirection[AnimationDirection[\"Horizontal\"] = 0] = \"Horizontal\";\n    /**\n     * Grid will transition out and in vertically\n     */\n    AnimationDirection[AnimationDirection[\"Vertical\"] = 1] = \"Vertical\";\n})(AnimationDirection || (AnimationDirection = {}));\n//# sourceMappingURL=Calendar.types.js.map","import { __assign } from \"tslib\";\nimport { FontSizes, FontWeights, getFocusStyle, getGlobalClassNames, AnimationStyles, keyframes, HighContrastSelector, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { DateRangeType } from '@fluentui/date-time-utilities';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\nvar GlobalClassNames = {\n    hoverStyle: 'ms-CalendarDay-hoverStyle',\n    pressedStyle: 'ms-CalendarDay-pressedStyle',\n    dayIsTodayStyle: 'ms-CalendarDay-dayIsToday',\n    daySelectedStyle: 'ms-CalendarDay-daySelected',\n};\nvar transitionRowDisappearance = keyframes({\n    '100%': {\n        width: 0,\n        height: 0,\n        overflow: 'hidden',\n    },\n    '99.9%': {\n        width: '100%',\n        height: 28,\n        overflow: 'visible',\n    },\n    '0%': {\n        width: '100%',\n        height: 28,\n        overflow: 'visible',\n    },\n});\nexport var styles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n    var theme = props.theme, dateRangeType = props.dateRangeType, showWeekNumbers = props.showWeekNumbers, lightenDaysOutsideNavigatedMonth = props.lightenDaysOutsideNavigatedMonth, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n    var palette = theme.palette;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var rowAnimationStyle = {};\n    if (animateBackwards !== undefined) {\n        if (animationDirection === AnimationDirection.Horizontal) {\n            rowAnimationStyle = animateBackwards ? AnimationStyles.slideRightIn20 : AnimationStyles.slideLeftIn20;\n        }\n        else {\n            rowAnimationStyle = animateBackwards ? AnimationStyles.slideDownIn20 : AnimationStyles.slideUpIn20;\n        }\n    }\n    var firstTransitionRowAnimationStyle = {};\n    var lastTransitionRowAnimationStyle = {};\n    if (animateBackwards !== undefined) {\n        if (animationDirection !== AnimationDirection.Horizontal) {\n            firstTransitionRowAnimationStyle = animateBackwards ? { animationName: '' } : AnimationStyles.slideUpOut20;\n            lastTransitionRowAnimationStyle = animateBackwards ? AnimationStyles.slideDownOut20 : { animationName: '' };\n        }\n    }\n    var disabledStyle = {\n        selectors: {\n            '&, &:disabled, & button': {\n                color: palette.neutralTertiaryAlt,\n                pointerEvents: 'none',\n            },\n        },\n    };\n    return {\n        wrapper: {\n            paddingBottom: 10,\n        },\n        table: [\n            {\n                textAlign: 'center',\n                borderCollapse: 'collapse',\n                borderSpacing: '0',\n                tableLayout: 'fixed',\n                fontSize: 'inherit',\n                marginTop: 4,\n                width: 196,\n                position: 'relative',\n                paddingBottom: 10,\n            },\n            showWeekNumbers && {\n                width: 226,\n            },\n        ],\n        dayCell: [\n            getFocusStyle(theme, { inset: -3 }),\n            {\n                margin: 0,\n                padding: 0,\n                width: 28,\n                height: 28,\n                lineHeight: 28,\n                fontSize: FontSizes.small,\n                fontWeight: FontWeights.regular,\n                color: palette.neutralPrimary,\n                cursor: 'pointer',\n                position: 'relative',\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'transparent', zIndex: 0 }, getHighContrastNoAdjustStyle()),\n                    _a['&.' + classNames.hoverStyle] = {\n                        backgroundColor: palette.neutralLighter,\n                        selectors: (_b = {},\n                            _b[HighContrastSelector] = {\n                                zIndex: 3,\n                                backgroundColor: 'Window',\n                                outline: '1px solid Highlight',\n                            },\n                            _b),\n                    },\n                    _a['&.' + classNames.pressedStyle] = {\n                        backgroundColor: palette.neutralLight,\n                        selectors: (_c = {},\n                            _c[HighContrastSelector] = {\n                                borderColor: 'Highlight',\n                                color: 'Highlight',\n                                backgroundColor: 'Window',\n                            },\n                            _c),\n                    },\n                    _a['&.' + classNames.pressedStyle + '.' + classNames.hoverStyle] = {\n                        selectors: (_d = {},\n                            _d[HighContrastSelector] = {\n                                backgroundColor: 'Window',\n                                outline: '1px solid Highlight',\n                            },\n                            _d),\n                    },\n                    _a),\n            },\n        ],\n        daySelected: [\n            dateRangeType !== DateRangeType.Month && {\n                backgroundColor: palette.neutralLight + '!important',\n                selectors: (_e = {\n                        '&::before': {\n                            content: '\"\"',\n                            position: 'absolute',\n                            top: 0,\n                            bottom: 0,\n                            left: 0,\n                            right: 0,\n                        }\n                    },\n                    _e['&:hover, &.' + classNames.hoverStyle + ', &.' + classNames.pressedStyle] = (_f = {\n                            backgroundColor: palette.neutralLight + '!important'\n                        },\n                        _f[HighContrastSelector] = {\n                            color: 'HighlightText!important',\n                            background: 'Highlight!important',\n                        },\n                        _f),\n                    _e[HighContrastSelector] = __assign({ background: 'Highlight!important', color: 'HighlightText!important', borderColor: 'Highlight!important' }, getHighContrastNoAdjustStyle()),\n                    _e),\n            },\n        ],\n        weekRow: rowAnimationStyle,\n        weekDayLabelCell: AnimationStyles.fadeIn200,\n        weekNumberCell: {\n            margin: 0,\n            padding: 0,\n            borderRight: '1px solid',\n            borderColor: palette.neutralLight,\n            backgroundColor: palette.neutralLighterAlt,\n            color: palette.neutralSecondary,\n            boxSizing: 'border-box',\n            width: 28,\n            height: 28,\n            fontWeight: FontWeights.regular,\n            fontSize: FontSizes.small,\n        },\n        dayOutsideBounds: disabledStyle,\n        dayOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth && {\n            color: palette.neutralSecondary,\n            fontWeight: FontWeights.regular,\n        },\n        dayButton: {\n            width: 24,\n            height: 24,\n            lineHeight: 24,\n            fontSize: FontSizes.small,\n            fontWeight: 'inherit',\n            borderRadius: 2,\n            border: 'none',\n            padding: 0,\n            color: 'inherit',\n            backgroundColor: 'transparent',\n            cursor: 'pointer',\n            overflow: 'visible',\n            selectors: {\n                span: {\n                    height: 'inherit',\n                    lineHeight: 'inherit',\n                },\n            },\n        },\n        dayIsToday: {\n            backgroundColor: palette.themePrimary + '!important',\n            borderRadius: '100%',\n            color: palette.white + '!important',\n            fontWeight: (FontWeights.semibold + '!important'),\n            selectors: (_g = {},\n                _g[HighContrastSelector] = __assign({ background: 'WindowText!important', color: 'Window!important', borderColor: 'WindowText!important' }, getHighContrastNoAdjustStyle()),\n                _g),\n        },\n        firstTransitionWeek: __assign(__assign({ position: 'absolute', opacity: 0, width: 0, height: 0, overflow: 'hidden' }, firstTransitionRowAnimationStyle), { animationName: firstTransitionRowAnimationStyle.animationName + ',' + transitionRowDisappearance }),\n        lastTransitionWeek: __assign(__assign({ position: 'absolute', opacity: 0, width: 0, height: 0, overflow: 'hidden', marginTop: -28 }, lastTransitionRowAnimationStyle), { animationName: lastTransitionRowAnimationStyle.animationName + ',' + transitionRowDisappearance }),\n        dayMarker: {\n            width: 4,\n            height: 4,\n            backgroundColor: palette.neutralSecondary,\n            borderRadius: '100%',\n            bottom: 1,\n            left: 0,\n            right: 0,\n            position: 'absolute',\n            margin: 'auto',\n            selectors: (_h = {},\n                _h['.' + classNames.dayIsTodayStyle + ' &'] = {\n                    backgroundColor: palette.white,\n                    selectors: (_j = {},\n                        _j[HighContrastSelector] = {\n                            backgroundColor: 'Window',\n                        },\n                        _j),\n                },\n                _h['.' + classNames.daySelectedStyle + ' &'] = {\n                    selectors: (_k = {},\n                        _k[HighContrastSelector] = {\n                            backgroundColor: 'HighlightText',\n                        },\n                        _k),\n                },\n                _h[HighContrastSelector] = __assign({ backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _h),\n        },\n        topRightCornerDate: {\n            borderTopRightRadius: '2px',\n        },\n        topLeftCornerDate: {\n            borderTopLeftRadius: '2px',\n        },\n        bottomRightCornerDate: {\n            borderBottomRightRadius: '2px',\n        },\n        bottomLeftCornerDate: {\n            borderBottomLeftRadius: '2px',\n        },\n        datesAbove: {\n            '&::before': {\n                borderTop: \"1px solid \".concat(palette.neutralSecondary),\n            },\n        },\n        datesBelow: {\n            '&::before': {\n                borderBottom: \"1px solid \".concat(palette.neutralSecondary),\n            },\n        },\n        datesLeft: {\n            '&::before': {\n                borderLeft: \"1px solid \".concat(palette.neutralSecondary),\n            },\n        },\n        datesRight: {\n            '&::before': {\n                borderRight: \"1px solid \".concat(palette.neutralSecondary),\n            },\n        },\n    };\n};\n//# sourceMappingURL=CalendarDayGrid.styles.js.map","import { CalendarDayGridBase } from './CalendarDayGrid.base';\nimport { styles } from './CalendarDayGrid.styles';\nimport { styled } from '../../Utilities';\nexport var CalendarDayGrid = styled(CalendarDayGridBase, styles, undefined, { scope: 'CalendarDayGrid' });\n//# sourceMappingURL=CalendarDayGrid.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, classNamesFunction, format } from '@fluentui/utilities';\nimport { Icon } from '../../../Icon';\nimport { addMonths, compareDatePart, getMonthStart, getMonthEnd } from '@fluentui/date-time-utilities';\nimport { CalendarDayGrid } from '../../CalendarDayGrid/CalendarDayGrid';\nimport { useId } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nexport var CalendarDayBase = function (props) {\n    var dayGrid = React.useRef(null);\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        focus: function () {\n            var _a, _b;\n            (_b = (_a = dayGrid.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n        },\n    }); }, []);\n    var strings = props.strings, navigatedDate = props.navigatedDate, dateTimeFormatter = props.dateTimeFormatter, styles = props.styles, theme = props.theme, className = props.className, onHeaderSelect = props.onHeaderSelect, showSixWeeksByDefault = props.showSixWeeksByDefault, minDate = props.minDate, maxDate = props.maxDate, restrictedDates = props.restrictedDates, onNavigateDate = props.onNavigateDate, showWeekNumbers = props.showWeekNumbers, dateRangeType = props.dateRangeType, animationDirection = props.animationDirection;\n    var monthAndYearId = useId();\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        headerIsClickable: !!onHeaderSelect,\n        showWeekNumbers: showWeekNumbers,\n        animationDirection: animationDirection,\n    });\n    var monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);\n    var HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';\n    var headerAriaLabel = strings.yearPickerHeaderAriaLabel\n        ? format(strings.yearPickerHeaderAriaLabel, monthAndYear)\n        : monthAndYear;\n    return (React.createElement(\"div\", { className: classNames.root },\n        React.createElement(\"div\", { className: classNames.header },\n            React.createElement(HeaderButtonComponentType, { \"aria-label\": onHeaderSelect ? headerAriaLabel : undefined, className: classNames.monthAndYear, onClick: onHeaderSelect, \"data-is-focusable\": !!onHeaderSelect, tabIndex: onHeaderSelect ? 0 : -1, onKeyDown: onButtonKeyDown(onHeaderSelect), type: \"button\" },\n                React.createElement(\"span\", { id: monthAndYearId, \"aria-live\": \"polite\", \"aria-atomic\": \"true\" }, monthAndYear)),\n            React.createElement(CalendarDayNavigationButtons, __assign({}, props, { classNames: classNames }))),\n        React.createElement(CalendarDayGrid, __assign({}, props, { styles: styles, componentRef: dayGrid, strings: strings, navigatedDate: navigatedDate, weeksToShow: showSixWeeksByDefault ? 6 : undefined, dateTimeFormatter: dateTimeFormatter, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, onNavigateDate: onNavigateDate, labelledBy: monthAndYearId, dateRangeType: dateRangeType }))));\n};\nCalendarDayBase.displayName = 'CalendarDayBase';\nvar CalendarDayNavigationButtons = function (props) {\n    var _a, _b;\n    var minDate = props.minDate, maxDate = props.maxDate, navigatedDate = props.navigatedDate, allFocusable = props.allFocusable, strings = props.strings, navigationIcons = props.navigationIcons, showCloseButton = props.showCloseButton, classNames = props.classNames, onNavigateDate = props.onNavigateDate, onDismiss = props.onDismiss;\n    var onSelectNextMonth = function () {\n        onNavigateDate(addMonths(navigatedDate, 1), false);\n    };\n    var onSelectPrevMonth = function () {\n        onNavigateDate(addMonths(navigatedDate, -1), false);\n    };\n    var leftNavigationIcon = navigationIcons.leftNavigation;\n    var rightNavigationIcon = navigationIcons.rightNavigation;\n    var closeNavigationIcon = navigationIcons.closeIcon;\n    // determine if previous/next months are in bounds\n    var prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n    var nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n    // use aria-disabled instead of disabled so focus is not lost\n    // when a prev/next button becomes disabled after being clicked\n    return (React.createElement(\"div\", { className: classNames.monthComponents },\n        React.createElement(\"button\", { className: css(classNames.headerIconButton, (_a = {},\n                _a[classNames.disabledStyle] = !prevMonthInBounds,\n                _a)), tabIndex: prevMonthInBounds ? undefined : allFocusable ? 0 : -1, \"aria-disabled\": !prevMonthInBounds, onClick: prevMonthInBounds ? onSelectPrevMonth : undefined, onKeyDown: prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined, title: strings.prevMonthAriaLabel\n                ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n                : undefined, type: \"button\" },\n            React.createElement(Icon, { iconName: leftNavigationIcon })),\n        React.createElement(\"button\", { className: css(classNames.headerIconButton, (_b = {},\n                _b[classNames.disabledStyle] = !nextMonthInBounds,\n                _b)), tabIndex: nextMonthInBounds ? undefined : allFocusable ? 0 : -1, \"aria-disabled\": !nextMonthInBounds, onClick: nextMonthInBounds ? onSelectNextMonth : undefined, onKeyDown: nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined, title: strings.nextMonthAriaLabel\n                ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n                : undefined, type: \"button\" },\n            React.createElement(Icon, { iconName: rightNavigationIcon })),\n        showCloseButton && (React.createElement(\"button\", { className: css(classNames.headerIconButton), onClick: onDismiss, onKeyDown: onButtonKeyDown(onDismiss), title: strings.closeButtonAriaLabel, type: \"button\" },\n            React.createElement(Icon, { iconName: closeNavigationIcon })))));\n};\nCalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';\nvar onButtonKeyDown = function (callback) {\n    return function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.enter:\n                callback === null || callback === void 0 ? void 0 : callback();\n                break;\n        }\n    };\n};\n//# sourceMappingURL=CalendarDay.base.js.map","import { CalendarDayBase } from './CalendarDay.base';\nimport { styles } from './CalendarDay.styles';\nimport { styled } from '../../../Utilities';\nexport var CalendarDay = styled(CalendarDayBase, styles, undefined, {\n    scope: 'CalendarDay',\n});\n//# sourceMappingURL=CalendarDay.js.map","import { __assign } from \"tslib\";\nimport { normalize, FontSizes, FontWeights, getFocusStyle, AnimationStyles, HighContrastSelector, } from '@fluentui/style-utilities';\nexport var styles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, headerIsClickable = props.headerIsClickable, showWeekNumbers = props.showWeekNumbers;\n    var palette = theme.palette;\n    var disabledStyle = {\n        selectors: (_a = {\n                '&, &:disabled, & button': {\n                    color: palette.neutralTertiaryAlt,\n                    pointerEvents: 'none',\n                }\n            },\n            _a[HighContrastSelector] = {\n                color: 'GrayText',\n                forcedColorAdjust: 'none',\n            },\n            _a),\n    };\n    return {\n        root: [\n            normalize,\n            {\n                width: 196,\n                padding: 12,\n                boxSizing: 'content-box',\n            },\n            showWeekNumbers && {\n                width: 226,\n            },\n            className,\n        ],\n        header: {\n            position: 'relative',\n            display: 'inline-flex',\n            height: 28,\n            lineHeight: 44,\n            width: '100%',\n        },\n        monthAndYear: [\n            getFocusStyle(theme, { inset: 1 }),\n            __assign(__assign({}, AnimationStyles.fadeIn200), { alignItems: 'center', fontSize: FontSizes.medium, fontFamily: 'inherit', color: palette.neutralPrimary, display: 'inline-block', flexGrow: 1, fontWeight: FontWeights.semibold, padding: '0 4px 0 10px', border: 'none', backgroundColor: 'transparent', borderRadius: 2, lineHeight: 28, overflow: 'hidden', whiteSpace: 'nowrap', textAlign: 'left', textOverflow: 'ellipsis' }),\n            headerIsClickable && {\n                selectors: {\n                    '&:hover': {\n                        cursor: 'pointer',\n                        background: palette.neutralLight,\n                        color: palette.black,\n                    },\n                },\n            },\n        ],\n        monthComponents: {\n            display: 'inline-flex',\n            alignSelf: 'flex-end',\n        },\n        headerIconButton: [\n            getFocusStyle(theme, { inset: -1 }),\n            {\n                width: 28,\n                height: 28,\n                display: 'block',\n                textAlign: 'center',\n                lineHeight: 28,\n                fontSize: FontSizes.small,\n                fontFamily: 'inherit',\n                color: palette.neutralPrimary,\n                borderRadius: 2,\n                position: 'relative',\n                backgroundColor: 'transparent',\n                border: 'none',\n                padding: 0,\n                overflow: 'visible',\n                selectors: {\n                    '&:hover': {\n                        color: palette.neutralDark,\n                        backgroundColor: palette.neutralLight,\n                        cursor: 'pointer',\n                        outline: '1px solid transparent',\n                    },\n                },\n            },\n        ],\n        disabledStyle: disabledStyle,\n    };\n};\n//# sourceMappingURL=CalendarDay.styles.js.map","import { __assign } from \"tslib\";\nimport { normalize, FontSizes, FontWeights, getFocusStyle, AnimationStyles, HighContrastSelector, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { AnimationDirection } from '../Calendar.types';\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g;\n    var className = props.className, theme = props.theme, hasHeaderClickCallback = props.hasHeaderClickCallback, highlightCurrent = props.highlightCurrent, highlightSelected = props.highlightSelected, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n    var palette = theme.palette;\n    var animationStyle = {};\n    if (animateBackwards !== undefined) {\n        if (animationDirection === AnimationDirection.Horizontal) {\n            animationStyle = animateBackwards ? AnimationStyles.slideRightIn20 : AnimationStyles.slideLeftIn20;\n        }\n        else {\n            animationStyle = animateBackwards ? AnimationStyles.slideDownIn20 : AnimationStyles.slideUpIn20;\n        }\n    }\n    var headerAnimationStyle = animateBackwards !== undefined ? AnimationStyles.fadeIn200 : {};\n    return {\n        root: [\n            normalize,\n            {\n                width: 196,\n                padding: 12,\n                boxSizing: 'content-box',\n                overflow: 'hidden',\n            },\n            className,\n        ],\n        headerContainer: {\n            display: 'flex',\n        },\n        currentItemButton: [\n            getFocusStyle(theme, { inset: -1 }),\n            __assign(__assign({}, headerAnimationStyle), { fontSize: FontSizes.medium, fontWeight: FontWeights.semibold, fontFamily: 'inherit', textAlign: 'left', color: 'inherit', backgroundColor: 'transparent', flexGrow: 1, padding: '0 4px 0 10px', border: 'none', overflow: 'visible' }),\n            hasHeaderClickCallback && {\n                selectors: {\n                    '&:hover, &:active': {\n                        cursor: !hasHeaderClickCallback ? 'default' : 'pointer',\n                        color: palette.neutralDark,\n                        outline: '1px solid transparent',\n                        backgroundColor: palette.neutralLight,\n                    },\n                },\n            },\n        ],\n        navigationButtonsContainer: {\n            display: 'flex',\n            alignItems: 'center',\n        },\n        navigationButton: [\n            getFocusStyle(theme, { inset: -1 }),\n            {\n                fontFamily: 'inherit',\n                width: 28,\n                minWidth: 28,\n                height: 28,\n                minHeight: 28,\n                display: 'block',\n                textAlign: 'center',\n                lineHeight: 28,\n                fontSize: FontSizes.small,\n                color: palette.neutralPrimary,\n                borderRadius: 2,\n                position: 'relative',\n                backgroundColor: 'transparent',\n                border: 'none',\n                padding: 0,\n                overflow: 'visible',\n                selectors: {\n                    '&:hover': {\n                        color: palette.neutralDark,\n                        cursor: 'pointer',\n                        outline: '1px solid transparent',\n                        backgroundColor: palette.neutralLight,\n                    },\n                },\n            },\n        ],\n        gridContainer: {\n            marginTop: 4,\n        },\n        buttonRow: __assign(__assign({}, animationStyle), { marginBottom: 16, selectors: {\n                '&:nth-child(n + 3)': {\n                    marginBottom: 0,\n                },\n            } }),\n        itemButton: [\n            getFocusStyle(theme, { inset: -1 }),\n            {\n                width: 40,\n                height: 40,\n                minWidth: 40,\n                minHeight: 40,\n                lineHeight: 40,\n                fontSize: FontSizes.small,\n                fontFamily: 'inherit',\n                padding: 0,\n                margin: '0 12px 0 0',\n                color: palette.neutralPrimary,\n                backgroundColor: 'transparent',\n                border: 'none',\n                borderRadius: 2,\n                overflow: 'visible',\n                selectors: {\n                    '&:nth-child(4n + 4)': {\n                        marginRight: 0,\n                    },\n                    '&:nth-child(n + 9)': {\n                        marginBottom: 0,\n                    },\n                    '& div': {\n                        fontWeight: FontWeights.regular,\n                    },\n                    '&:hover': {\n                        color: palette.neutralDark,\n                        backgroundColor: palette.neutralLight,\n                        cursor: 'pointer',\n                        outline: '1px solid transparent',\n                        selectors: (_a = {},\n                            _a[HighContrastSelector] = __assign({ background: 'Window', color: 'WindowText', outline: '1px solid Highlight' }, getHighContrastNoAdjustStyle()),\n                            _a),\n                    },\n                    '&:active': {\n                        backgroundColor: palette.themeLight,\n                        selectors: (_b = {},\n                            _b[HighContrastSelector] = __assign({ background: 'Window', color: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                            _b),\n                    },\n                },\n            },\n        ],\n        current: highlightCurrent\n            ? {\n                color: palette.white,\n                backgroundColor: palette.themePrimary,\n                selectors: (_c = {\n                        '& div': {\n                            fontWeight: FontWeights.semibold,\n                        },\n                        '&:hover': {\n                            backgroundColor: palette.themePrimary,\n                            selectors: (_d = {},\n                                _d[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n                                _d),\n                        }\n                    },\n                    _c[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n                    _c),\n            }\n            : {},\n        selected: highlightSelected\n            ? {\n                color: palette.neutralPrimary,\n                backgroundColor: palette.themeLight,\n                fontWeight: FontWeights.semibold,\n                selectors: (_e = {\n                        '& div': {\n                            fontWeight: FontWeights.semibold,\n                        },\n                        '&:hover, &:active': {\n                            backgroundColor: palette.themeLight,\n                            selectors: (_f = {},\n                                _f[HighContrastSelector] = __assign({ color: 'Window', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                                _f),\n                        }\n                    },\n                    _e[HighContrastSelector] = __assign({ background: 'Highlight', color: 'Window' }, getHighContrastNoAdjustStyle()),\n                    _e),\n            }\n            : {},\n        disabled: {\n            selectors: (_g = {\n                    '&, &:disabled, & button': {\n                        color: palette.neutralTertiaryAlt,\n                        pointerEvents: 'none',\n                    }\n                },\n                _g[HighContrastSelector] = {\n                    color: 'GrayText',\n                    forcedColorAdjust: 'none',\n                },\n                _g),\n        },\n    };\n};\n//# sourceMappingURL=CalendarPicker.styles.js.map","import { getStyles as getPickerStyles } from '../CalendarPicker/CalendarPicker.styles';\nexport var getStyles = function (props) {\n    /*  Return styles from the base class.\n     *  If this component has extra styles not in the base, apply them here i.e.:\n     *  const myStyle: IStyle = {\n     *    display: \"block\"\n     *  };     *\n     *  return {...getPickerStyles(props), myStyle};\n     */\n    return getPickerStyles(props);\n};\n//# sourceMappingURL=CalendarMonth.styles.js.map","import { DEFAULT_CALENDAR_STRINGS } from '@fluentui/date-time-utilities';\nexport var defaultCalendarStrings = DEFAULT_CALENDAR_STRINGS;\n/**\n * @deprecated Use `defaultCalendarStrings`\n */\nexport var defaultDayPickerStrings = defaultCalendarStrings;\nexport var defaultCalendarNavigationIcons = {\n    leftNavigation: 'Up',\n    rightNavigation: 'Down',\n    closeIcon: 'CalculatorMultiply',\n};\n//# sourceMappingURL=defaults.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, getRTL, classNamesFunction, css, format } from '../../../Utilities';\nimport { FocusZone } from '../../../FocusZone';\nimport { Icon } from '../../../Icon';\nimport { usePrevious } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from '../defaults';\nvar getClassNames = classNamesFunction();\nvar CELL_COUNT = 12;\nvar CELLS_PER_ROW = 4;\nvar DefaultCalendarYearStrings = {\n    prevRangeAriaLabel: undefined,\n    nextRangeAriaLabel: undefined,\n};\nvar CalendarYearGridCell = function (props) {\n    var _a;\n    var _b;\n    var styles = props.styles, theme = props.theme, className = props.className, highlightCurrentYear = props.highlightCurrentYear, highlightSelectedYear = props.highlightSelectedYear, year = props.year, selected = props.selected, disabled = props.disabled, componentRef = props.componentRef, onSelectYear = props.onSelectYear, onRenderYear = props.onRenderYear;\n    var buttonRef = React.useRef(null);\n    React.useImperativeHandle(componentRef, function () { return ({\n        focus: function () {\n            var _a, _b;\n            (_b = (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n        },\n    }); }, []);\n    var onClick = function () {\n        onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n    };\n    var onKeyDown = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.enter) {\n            onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n        }\n    };\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        highlightCurrent: highlightCurrentYear,\n        highlightSelected: highlightSelectedYear,\n    });\n    return (React.createElement(\"button\", { className: css(classNames.itemButton, (_a = {},\n            _a[classNames.selected] = selected,\n            _a[classNames.disabled] = disabled,\n            _a)), type: \"button\", role: \"gridcell\", onClick: !disabled ? onClick : undefined, onKeyDown: !disabled ? onKeyDown : undefined, disabled: disabled, \"aria-selected\": selected, ref: buttonRef }, (_b = onRenderYear === null || onRenderYear === void 0 ? void 0 : onRenderYear(year)) !== null && _b !== void 0 ? _b : year));\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\nvar CalendarYearGrid = function (props) {\n    var styles = props.styles, theme = props.theme, className = props.className, fromYear = props.fromYear, toYear = props.toYear, animationDirection = props.animationDirection, animateBackwards = props.animateBackwards, minYear = props.minYear, maxYear = props.maxYear, onSelectYear = props.onSelectYear, selectedYear = props.selectedYear, componentRef = props.componentRef;\n    var selectedCellRef = React.useRef(null);\n    var currentCellRef = React.useRef(null);\n    React.useImperativeHandle(componentRef, function () { return ({\n        focus: function () {\n            var _a, _b;\n            (_b = (_a = (selectedCellRef.current || currentCellRef.current)) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n        },\n    }); }, []);\n    var renderCell = function (yearToRender) {\n        var selected = yearToRender === selectedYear;\n        var disabled = (minYear !== undefined && yearToRender < minYear) || (maxYear !== undefined && yearToRender > maxYear);\n        var current = yearToRender === new Date().getFullYear();\n        return (React.createElement(CalendarYearGridCell, __assign({}, props, { key: yearToRender, year: yearToRender, selected: selected, current: current, disabled: disabled, onSelectYear: onSelectYear, componentRef: selected ? selectedCellRef : current ? currentCellRef : undefined, theme: theme })));\n    };\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        animateBackwards: animateBackwards,\n        animationDirection: animationDirection,\n    });\n    var onRenderYear = function (value) {\n        var _a, _b;\n        return (_b = (_a = props.onRenderYear) === null || _a === void 0 ? void 0 : _a.call(props, value)) !== null && _b !== void 0 ? _b : value;\n    };\n    var gridAriaLabel = \"\".concat(onRenderYear(fromYear), \" - \").concat(onRenderYear(toYear));\n    var year = fromYear;\n    var cells = [];\n    for (var i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++) {\n        cells.push([]);\n        for (var j = 0; j < CELLS_PER_ROW; j++) {\n            cells[i].push(renderCell(year));\n            year++;\n        }\n    }\n    return (React.createElement(FocusZone, null,\n        React.createElement(\"div\", { className: classNames.gridContainer, role: \"grid\", \"aria-label\": gridAriaLabel }, cells.map(function (cellRow, index) {\n            return (React.createElement.apply(React, __spreadArray([\"div\", { key: 'yearPickerRow_' + index + '_' + fromYear, role: \"row\", className: classNames.buttonRow }], cellRow, false)));\n        }))));\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\nvar CalendarYearNavDirection;\n(function (CalendarYearNavDirection) {\n    CalendarYearNavDirection[CalendarYearNavDirection[\"Previous\"] = 0] = \"Previous\";\n    CalendarYearNavDirection[CalendarYearNavDirection[\"Next\"] = 1] = \"Next\";\n})(CalendarYearNavDirection || (CalendarYearNavDirection = {}));\nvar CalendarYearNavArrow = function (props) {\n    var _a;\n    var styles = props.styles, theme = props.theme, className = props.className, _b = props.navigationIcons, navigationIcons = _b === void 0 ? defaultCalendarNavigationIcons : _b, _c = props.strings, strings = _c === void 0 ? DefaultCalendarYearStrings : _c, direction = props.direction, onSelectPrev = props.onSelectPrev, onSelectNext = props.onSelectNext, fromYear = props.fromYear, toYear = props.toYear, maxYear = props.maxYear, minYear = props.minYear;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n    });\n    var ariaLabel = direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n    var newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n    var newRange = { fromYear: fromYear + newRangeOffset, toYear: toYear + newRangeOffset };\n    var ariaLabelString = ariaLabel ? (typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange)) : undefined;\n    var disabled = direction === CalendarYearNavDirection.Previous\n        ? minYear !== undefined && fromYear < minYear\n        : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n    var onNavigate = function () {\n        direction === CalendarYearNavDirection.Previous ? onSelectPrev === null || onSelectPrev === void 0 ? void 0 : onSelectPrev() : onSelectNext === null || onSelectNext === void 0 ? void 0 : onSelectNext();\n    };\n    var onKeyDown = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.enter) {\n            onNavigate();\n        }\n    };\n    // can be condensed, but leaving verbose for clarity due to regressions\n    var isLeftNavigation = getRTL()\n        ? direction === CalendarYearNavDirection.Next\n        : direction === CalendarYearNavDirection.Previous;\n    return (React.createElement(\"button\", { className: css(classNames.navigationButton, (_a = {},\n            _a[classNames.disabled] = disabled,\n            _a)), onClick: !disabled ? onNavigate : undefined, onKeyDown: !disabled ? onKeyDown : undefined, type: \"button\", title: ariaLabelString, disabled: disabled },\n        React.createElement(Icon, { iconName: isLeftNavigation ? navigationIcons.leftNavigation : navigationIcons.rightNavigation })));\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\nvar CalendarYearNav = function (props) {\n    var styles = props.styles, theme = props.theme, className = props.className;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n    });\n    return (React.createElement(\"div\", { className: classNames.navigationButtonsContainer },\n        React.createElement(CalendarYearNavArrow, __assign({}, props, { direction: CalendarYearNavDirection.Previous })),\n        React.createElement(CalendarYearNavArrow, __assign({}, props, { direction: CalendarYearNavDirection.Next }))));\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\nvar CalendarYearTitle = function (props) {\n    var styles = props.styles, theme = props.theme, className = props.className, fromYear = props.fromYear, toYear = props.toYear, _a = props.strings, strings = _a === void 0 ? DefaultCalendarYearStrings : _a, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n    var onHeaderSelect = function () {\n        var _a;\n        (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props, true);\n    };\n    var onHeaderKeyDown = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n            onHeaderSelect();\n        }\n    };\n    var onRenderYear = function (year) {\n        var _a, _b;\n        return (_b = (_a = props.onRenderYear) === null || _a === void 0 ? void 0 : _a.call(props, year)) !== null && _b !== void 0 ? _b : year;\n    };\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        hasHeaderClickCallback: !!props.onHeaderSelect,\n        animateBackwards: animateBackwards,\n        animationDirection: animationDirection,\n    });\n    if (props.onHeaderSelect) {\n        var rangeAriaLabel = strings.rangeAriaLabel;\n        var headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n        var currentDateRange = rangeAriaLabel\n            ? typeof rangeAriaLabel === 'string'\n                ? rangeAriaLabel\n                : rangeAriaLabel(props)\n            : undefined;\n        var ariaLabel = headerAriaLabelFormatString\n            ? format(headerAriaLabelFormatString, currentDateRange)\n            : currentDateRange;\n        return (React.createElement(\"button\", { className: classNames.currentItemButton, onClick: onHeaderSelect, onKeyDown: onHeaderKeyDown, \"aria-label\": ariaLabel, role: \"button\", type: \"button\" },\n            React.createElement(\"span\", { \"aria-live\": \"assertive\", \"aria-atomic\": \"true\" },\n                onRenderYear(fromYear),\n                \" - \",\n                onRenderYear(toYear))));\n    }\n    return (React.createElement(\"div\", { className: classNames.current },\n        onRenderYear(fromYear),\n        \" - \",\n        onRenderYear(toYear)));\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\nvar CalendarYearHeader = function (props) {\n    var _a;\n    var styles = props.styles, theme = props.theme, className = props.className, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection, onRenderTitle = props.onRenderTitle;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        hasHeaderClickCallback: !!props.onHeaderSelect,\n        animateBackwards: animateBackwards,\n        animationDirection: animationDirection,\n    });\n    return (React.createElement(\"div\", { className: classNames.headerContainer }, (_a = onRenderTitle === null || onRenderTitle === void 0 ? void 0 : onRenderTitle(props)) !== null && _a !== void 0 ? _a : React.createElement(CalendarYearTitle, __assign({}, props)),\n        React.createElement(CalendarYearNav, __assign({}, props))));\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\nfunction useAnimateBackwards(_a) {\n    var selectedYear = _a.selectedYear, navigatedYear = _a.navigatedYear;\n    var rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n    var fromYear = Math.floor(rangeYear / 10) * 10;\n    var previousFromYear = usePrevious(fromYear);\n    if (!previousFromYear || previousFromYear === fromYear) {\n        return undefined;\n    }\n    else if (previousFromYear > fromYear) {\n        return true;\n    }\n    else {\n        return false;\n    }\n}\nfunction useYearRangeState(_a) {\n    var selectedYear = _a.selectedYear, navigatedYear = _a.navigatedYear;\n    var rangeYear = React.useMemo(function () {\n        return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n    }, [navigatedYear, selectedYear]);\n    var _b = React.useState(rangeYear), fromYear = _b[0], setFromYear = _b[1];\n    var onNavNext = function () {\n        setFromYear(function (year) { return year + CELL_COUNT; });\n    };\n    var onNavPrevious = function () {\n        setFromYear(function (year) { return year - CELL_COUNT; });\n    };\n    React.useEffect(function () {\n        setFromYear(rangeYear);\n    }, [rangeYear]);\n    var toYear = fromYear + CELL_COUNT - 1;\n    return [fromYear, toYear, onNavNext, onNavPrevious];\n}\nexport var CalendarYearBase = function (props) {\n    var animateBackwards = useAnimateBackwards(props);\n    var _a = useYearRangeState(props), fromYear = _a[0], toYear = _a[1], onNavNext = _a[2], onNavPrevious = _a[3];\n    var gridRef = React.useRef(null);\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        focus: function () {\n            var _a, _b;\n            (_b = (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n        },\n    }); });\n    var styles = props.styles, theme = props.theme, className = props.className;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n    });\n    return (React.createElement(\"div\", { className: classNames.root },\n        React.createElement(CalendarYearHeader, __assign({}, props, { fromYear: fromYear, toYear: toYear, onSelectPrev: onNavPrevious, onSelectNext: onNavNext, animateBackwards: animateBackwards })),\n        React.createElement(CalendarYearGrid, __assign({}, props, { fromYear: fromYear, toYear: toYear, animateBackwards: animateBackwards, componentRef: gridRef }))));\n};\nCalendarYearBase.displayName = 'CalendarYearBase';\n//# sourceMappingURL=CalendarYear.base.js.map","import { getStyles } from './CalendarYear.styles';\nimport { styled } from '../../../Utilities';\nimport { CalendarYearBase } from './CalendarYear.base';\nexport var CalendarYear = styled(CalendarYearBase, getStyles, undefined, { scope: 'CalendarYear' });\n//# sourceMappingURL=CalendarYear.js.map","import { getStyles as getPickerStyles } from '../CalendarPicker/CalendarPicker.styles';\nexport var getStyles = function (props) {\n    /*  Return styles from the base class.\n     *  If this component has extra styles not in the base, apply them here i.e.:\n     *  const myStyle: IStyle = {\n     *    display: \"block\"\n     *  };\n     *  return {...getPickerStyles(props), myStyle};\n     */\n    return getPickerStyles(props);\n};\n//# sourceMappingURL=CalendarYear.styles.js.map","import * as React from 'react';\nimport { FocusZone } from '../../../FocusZone';\nimport { addYears, setMonth, getYearStart, getYearEnd, getMonthStart, getMonthEnd, compareDatePart, DEFAULT_DATE_FORMATTING, } from '@fluentui/date-time-utilities';\nimport { Icon } from '../../../Icon';\nimport { getStyles } from './CalendarMonth.styles';\nimport { css, getRTL, classNamesFunction, KeyCodes, format, getPropsWithDefaults } from '@fluentui/utilities';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { usePrevious } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from '../defaults';\nvar MONTHS_PER_ROW = 4;\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n    styles: getStyles,\n    strings: undefined,\n    navigationIcons: defaultCalendarNavigationIcons,\n    dateTimeFormatter: DEFAULT_DATE_FORMATTING,\n    yearPickerHidden: false,\n};\nfunction useAnimateBackwards(_a) {\n    var navigatedDate = _a.navigatedDate;\n    var currentYear = navigatedDate.getFullYear();\n    var previousYear = usePrevious(currentYear);\n    if (previousYear === undefined || previousYear === currentYear) {\n        return undefined;\n    }\n    else {\n        return previousYear > currentYear;\n    }\n}\nfunction useFocusLogic(_a) {\n    var componentRef = _a.componentRef;\n    var navigatedMonthRef = React.useRef(null);\n    var calendarYearRef = React.useRef(null);\n    var focusOnUpdate = React.useRef(false);\n    var focus = React.useCallback(function () {\n        if (calendarYearRef.current) {\n            calendarYearRef.current.focus();\n        }\n        else if (navigatedMonthRef.current) {\n            navigatedMonthRef.current.focus();\n        }\n    }, []);\n    React.useImperativeHandle(componentRef, function () { return ({ focus: focus }); }, [focus]);\n    React.useEffect(function () {\n        if (focusOnUpdate.current) {\n            focus();\n            focusOnUpdate.current = false;\n        }\n    });\n    var focusOnNextUpdate = function () {\n        focusOnUpdate.current = true;\n    };\n    return [navigatedMonthRef, calendarYearRef, focusOnNextUpdate];\n}\nexport var CalendarMonthBase = function (propsWithoutDefaults) {\n    var _a, _b;\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var _c = useFocusLogic(props), navigatedMonthRef = _c[0], calendarYearRef = _c[1], focusOnNextUpdate = _c[2];\n    var _d = React.useState(false), isYearPickerVisible = _d[0], setIsYearPickerVisible = _d[1];\n    var animateBackwards = useAnimateBackwards(props);\n    var navigatedDate = props.navigatedDate, selectedDate = props.selectedDate, strings = props.strings, _e = props.today, today = _e === void 0 ? new Date() : _e, navigationIcons = props.navigationIcons, dateTimeFormatter = props.dateTimeFormatter, minDate = props.minDate, maxDate = props.maxDate, theme = props.theme, styles = props.styles, className = props.className, allFocusable = props.allFocusable, highlightCurrentMonth = props.highlightCurrentMonth, highlightSelectedMonth = props.highlightSelectedMonth, animationDirection = props.animationDirection, yearPickerHidden = props.yearPickerHidden, onNavigateDate = props.onNavigateDate;\n    var selectMonthCallback = function (newMonth) {\n        return function () { return onSelectMonth(newMonth); };\n    };\n    var onSelectNextYear = function () {\n        onNavigateDate(addYears(navigatedDate, 1), false);\n    };\n    var onSelectPrevYear = function () {\n        onNavigateDate(addYears(navigatedDate, -1), false);\n    };\n    var onSelectMonth = function (newMonth) {\n        var _a;\n        // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n        (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props);\n        onNavigateDate(setMonth(navigatedDate, newMonth), true);\n    };\n    var onHeaderSelect = function () {\n        var _a;\n        if (!yearPickerHidden) {\n            focusOnNextUpdate();\n            setIsYearPickerVisible(true);\n        }\n        else {\n            (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props);\n        }\n    };\n    var onSelectYear = function (selectedYear) {\n        focusOnNextUpdate();\n        var navYear = navigatedDate.getFullYear();\n        if (navYear !== selectedYear) {\n            var newNavigationDate = new Date(navigatedDate.getTime());\n            newNavigationDate.setFullYear(selectedYear);\n            // for min and max dates, adjust the new navigation date - perhaps this should be\n            // checked on the master navigation date handler (i.e. in Calendar)\n            if (maxDate && newNavigationDate > maxDate) {\n                newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n            }\n            else if (minDate && newNavigationDate < minDate) {\n                newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n            }\n            onNavigateDate(newNavigationDate, true);\n        }\n        setIsYearPickerVisible(false);\n    };\n    var onYearPickerHeaderSelect = function (focus) {\n        focusOnNextUpdate();\n        setIsYearPickerVisible(false);\n    };\n    // navigationIcons has a default value in defaultProps, but typescript doesn't recognize this\n    var leftNavigationIcon = navigationIcons.leftNavigation;\n    var rightNavigationIcon = navigationIcons.rightNavigation;\n    var dateFormatter = dateTimeFormatter;\n    // determine if previous/next years are in bounds\n    var isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n    var isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        hasHeaderClickCallback: !!props.onHeaderSelect || !yearPickerHidden,\n        highlightCurrent: highlightCurrentMonth,\n        highlightSelected: highlightSelectedMonth,\n        animateBackwards: animateBackwards,\n        animationDirection: animationDirection,\n    });\n    if (isYearPickerVisible) {\n        var _f = getYearStrings(props), onRenderYear = _f[0], yearStrings = _f[1];\n        // use navigated date for the year picker\n        return (React.createElement(CalendarYear, { key: 'calendarYear', minYear: minDate ? minDate.getFullYear() : undefined, maxYear: maxDate ? maxDate.getFullYear() : undefined, \n            // eslint-disable-next-line react/jsx-no-bind\n            onSelectYear: onSelectYear, navigationIcons: navigationIcons, \n            // eslint-disable-next-line react/jsx-no-bind\n            onHeaderSelect: onYearPickerHeaderSelect, selectedYear: selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined, navigatedYear: navigatedDate.getFullYear(), onRenderYear: onRenderYear, strings: yearStrings, componentRef: calendarYearRef, styles: styles, highlightCurrentYear: highlightCurrentMonth, highlightSelectedYear: highlightSelectedMonth, animationDirection: animationDirection }));\n    }\n    var rowIndexes = [];\n    for (var i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n        rowIndexes.push(i);\n    }\n    var yearString = dateFormatter.formatYear(navigatedDate);\n    var headerAriaLabel = strings.monthPickerHeaderAriaLabel\n        ? format(strings.monthPickerHeaderAriaLabel, yearString)\n        : yearString;\n    return (React.createElement(\"div\", { className: classNames.root },\n        React.createElement(\"div\", { className: classNames.headerContainer },\n            React.createElement(\"button\", { className: classNames.currentItemButton, onClick: onHeaderSelect, onKeyDown: onButtonKeyDown(onHeaderSelect), \"aria-label\": headerAriaLabel, \"data-is-focusable\": !!props.onHeaderSelect || !yearPickerHidden, tabIndex: !!props.onHeaderSelect || !yearPickerHidden ? 0 : -1, type: \"button\" },\n                React.createElement(\"span\", { \"aria-live\": \"polite\", \"aria-atomic\": \"true\" }, yearString)),\n            React.createElement(\"div\", { className: classNames.navigationButtonsContainer },\n                React.createElement(\"button\", { className: css(classNames.navigationButton, (_a = {},\n                        _a[classNames.disabled] = !isPrevYearInBounds,\n                        _a)), \"aria-disabled\": !isPrevYearInBounds, tabIndex: isPrevYearInBounds ? undefined : allFocusable ? 0 : -1, onClick: isPrevYearInBounds ? onSelectPrevYear : undefined, onKeyDown: isPrevYearInBounds ? onButtonKeyDown(onSelectPrevYear) : undefined, title: strings.prevYearAriaLabel\n                        ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1))\n                        : undefined, type: \"button\" },\n                    React.createElement(Icon, { iconName: getRTL() ? rightNavigationIcon : leftNavigationIcon })),\n                React.createElement(\"button\", { className: css(classNames.navigationButton, (_b = {},\n                        _b[classNames.disabled] = !isNextYearInBounds,\n                        _b)), \"aria-disabled\": !isNextYearInBounds, tabIndex: isNextYearInBounds ? undefined : allFocusable ? 0 : -1, onClick: isNextYearInBounds ? onSelectNextYear : undefined, onKeyDown: isNextYearInBounds ? onButtonKeyDown(onSelectNextYear) : undefined, title: strings.nextYearAriaLabel\n                        ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1))\n                        : undefined, type: \"button\" },\n                    React.createElement(Icon, { iconName: getRTL() ? leftNavigationIcon : rightNavigationIcon })))),\n        React.createElement(FocusZone, null,\n            React.createElement(\"div\", { className: classNames.gridContainer, role: \"grid\", \"aria-label\": yearString }, rowIndexes.map(function (rowNum) {\n                var monthsForRow = strings.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n                return (React.createElement(\"div\", { key: 'monthRow_' + rowNum + navigatedDate.getFullYear(), role: \"row\", className: classNames.buttonRow }, monthsForRow.map(function (month, index) {\n                    var _a;\n                    var monthIndex = rowNum * MONTHS_PER_ROW + index;\n                    var indexedMonth = setMonth(navigatedDate, monthIndex);\n                    var isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n                    var isSelectedMonth = selectedDate.getMonth() === monthIndex;\n                    var isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n                    var isInBounds = (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n                        (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n                    return (React.createElement(\"button\", { ref: isNavigatedMonth ? navigatedMonthRef : undefined, role: 'gridcell', className: css(classNames.itemButton, (_a = {},\n                            _a[classNames.current] = highlightCurrentMonth && isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today),\n                            _a[classNames.selected] = highlightSelectedMonth && isSelectedMonth && isSelectedYear,\n                            _a[classNames.disabled] = !isInBounds,\n                            _a)), disabled: !allFocusable && !isInBounds, key: monthIndex, onClick: isInBounds ? selectMonthCallback(monthIndex) : undefined, onKeyDown: isInBounds ? onButtonKeyDown(selectMonthCallback(monthIndex)) : undefined, \"aria-label\": dateFormatter.formatMonth(indexedMonth, strings), \"aria-selected\": isNavigatedMonth, \"data-is-focusable\": isInBounds ? true : undefined, type: \"button\" }, month));\n                })));\n            })))));\n};\nCalendarMonthBase.displayName = 'CalendarMonthBase';\nfunction getYearStrings(_a) {\n    var strings = _a.strings, navigatedDate = _a.navigatedDate, dateTimeFormatter = _a.dateTimeFormatter;\n    var yearToString = function (year) {\n        if (dateTimeFormatter) {\n            // create a date based on the current nav date\n            var yearFormattingDate = new Date(navigatedDate.getTime());\n            yearFormattingDate.setFullYear(year);\n            return dateTimeFormatter.formatYear(yearFormattingDate);\n        }\n        return String(year);\n    };\n    var yearRangeToString = function (yearRange) {\n        return \"\".concat(yearToString(yearRange.fromYear), \" - \").concat(yearToString(yearRange.toYear));\n    };\n    var yearRangeToNextDecadeLabel = function (yearRange) {\n        return strings.nextYearRangeAriaLabel ? \"\".concat(strings.nextYearRangeAriaLabel, \" \").concat(yearRangeToString(yearRange)) : '';\n    };\n    var yearRangeToPrevDecadeLabel = function (yearRange) {\n        return strings.prevYearRangeAriaLabel ? \"\".concat(strings.prevYearRangeAriaLabel, \" \").concat(yearRangeToString(yearRange)) : '';\n    };\n    return [\n        yearToString,\n        {\n            rangeAriaLabel: yearRangeToString,\n            prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n            nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n            headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n        },\n    ];\n}\nfunction isCurrentMonth(month, year, today) {\n    return today.getFullYear() === year && today.getMonth() === month;\n}\nfunction onButtonKeyDown(callback) {\n    return function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.enter:\n                callback();\n                break;\n        }\n    };\n}\n//# sourceMappingURL=CalendarMonth.base.js.map","import { CalendarMonthBase } from './CalendarMonth.base';\nimport { getStyles } from './CalendarMonth.styles';\nimport { styled } from '../../../Utilities';\nexport var CalendarMonth = styled(CalendarMonthBase, getStyles, undefined, { scope: 'CalendarMonth' });\n//# sourceMappingURL=CalendarMonth.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DayOfWeek, FirstWeekOfYear, DateRangeType, addMonths, addYears, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, } from '@fluentui/date-time-utilities';\nimport { CalendarDay } from './CalendarDay/CalendarDay';\nimport { CalendarMonth } from './CalendarMonth/CalendarMonth';\nimport { css, KeyCodes, classNamesFunction, focusAsync, format, FocusRects, getPropsWithDefaults, getWindow, } from '@fluentui/utilities';\nimport { useControllableValue } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from './defaults';\nvar MIN_SIZE_FORCE_OVERLAY = 440;\nvar getClassNames = classNamesFunction();\nvar defaultWorkWeekDays = [\n    DayOfWeek.Monday,\n    DayOfWeek.Tuesday,\n    DayOfWeek.Wednesday,\n    DayOfWeek.Thursday,\n    DayOfWeek.Friday,\n];\nvar DEFAULT_PROPS = {\n    isMonthPickerVisible: true,\n    isDayPickerVisible: true,\n    showMonthPickerAsOverlay: false,\n    today: new Date(),\n    firstDayOfWeek: DayOfWeek.Sunday,\n    dateRangeType: DateRangeType.Day,\n    showGoToToday: true,\n    strings: DEFAULT_CALENDAR_STRINGS,\n    highlightCurrentMonth: false,\n    highlightSelectedMonth: false,\n    navigationIcons: defaultCalendarNavigationIcons,\n    showWeekNumbers: false,\n    firstWeekOfYear: FirstWeekOfYear.FirstDay,\n    dateTimeFormatter: DEFAULT_DATE_FORMATTING,\n    showSixWeeksByDefault: false,\n    workWeekDays: defaultWorkWeekDays,\n    showCloseButton: false,\n    allFocusable: false,\n};\nfunction useDateState(_a) {\n    var value = _a.value, _b = _a.today, today = _b === void 0 ? new Date() : _b, onSelectDate = _a.onSelectDate;\n    /** The currently selected date in the calendar */\n    var _c = useControllableValue(value, today), _d = _c[0], selectedDate = _d === void 0 ? today : _d, setSelectedDate = _c[1];\n    /** The currently focused date in the day picker, but not necessarily selected */\n    var _e = React.useState(value), _f = _e[0], navigatedDay = _f === void 0 ? today : _f, setNavigatedDay = _e[1];\n    /** The currently focused date in the month picker, but not necessarily selected */\n    var _g = React.useState(value), _h = _g[0], navigatedMonth = _h === void 0 ? today : _h, setNavigatedMonth = _g[1];\n    /** If using a controlled value, when that value changes, navigate to that date */\n    var _j = React.useState(value), _k = _j[0], lastSelectedDate = _k === void 0 ? today : _k, setLastSelectedDate = _j[1];\n    if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n        setNavigatedDay(value);\n        setNavigatedMonth(value);\n        setLastSelectedDate(value);\n    }\n    var navigateMonth = function (date) {\n        setNavigatedMonth(date);\n    };\n    var navigateDay = function (date) {\n        setNavigatedMonth(date);\n        setNavigatedDay(date);\n    };\n    var onDateSelected = function (date, selectedDateRangeArray) {\n        setNavigatedMonth(date);\n        setNavigatedDay(date);\n        setSelectedDate(date);\n        onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);\n    };\n    return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth];\n}\nfunction useVisibilityState(props) {\n    /** State used to show/hide month picker */\n    var _a = useControllableValue(getShowMonthPickerAsOverlay(props) ? undefined : props.isMonthPickerVisible, false), _b = _a[0], isMonthPickerVisible = _b === void 0 ? true : _b, setIsMonthPickerVisible = _a[1];\n    /** State used to show/hide day picker */\n    var _c = useControllableValue(getShowMonthPickerAsOverlay(props) ? undefined : props.isDayPickerVisible, true), _d = _c[0], isDayPickerVisible = _d === void 0 ? true : _d, setIsDayPickerVisible = _c[1];\n    var toggleDayMonthPickerVisibility = function () {\n        setIsMonthPickerVisible(!isMonthPickerVisible);\n        setIsDayPickerVisible(!isDayPickerVisible);\n    };\n    return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility];\n}\nfunction useFocusLogic(_a, isDayPickerVisible, isMonthPickerVisible) {\n    var componentRef = _a.componentRef;\n    var dayPicker = React.useRef(null);\n    var monthPicker = React.useRef(null);\n    var focusOnUpdate = React.useRef(false);\n    var focus = React.useCallback(function () {\n        if (isDayPickerVisible && dayPicker.current) {\n            focusAsync(dayPicker.current);\n        }\n        else if (isMonthPickerVisible && monthPicker.current) {\n            focusAsync(monthPicker.current);\n        }\n    }, [isDayPickerVisible, isMonthPickerVisible]);\n    React.useImperativeHandle(componentRef, function () { return ({ focus: focus }); }, [focus]);\n    React.useEffect(function () {\n        if (focusOnUpdate.current) {\n            focus();\n            focusOnUpdate.current = false;\n        }\n    });\n    var focusOnNextUpdate = function () {\n        focusOnUpdate.current = true;\n    };\n    return [dayPicker, monthPicker, focusOnNextUpdate];\n}\nexport var CalendarBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var _a = useDateState(props), selectedDate = _a[0], navigatedDay = _a[1], navigatedMonth = _a[2], onDateSelected = _a[3], navigateDay = _a[4], navigateMonth = _a[5];\n    var _b = useVisibilityState(props), isMonthPickerVisible = _b[0], isDayPickerVisible = _b[1], toggleDayMonthPickerVisibility = _b[2];\n    var _c = useFocusLogic(props, isDayPickerVisible, isMonthPickerVisible), dayPicker = _c[0], monthPicker = _c[1], focusOnNextUpdate = _c[2];\n    var renderGoToTodayButton = function () {\n        var goTodayEnabled = showGoToToday;\n        if (goTodayEnabled && today) {\n            goTodayEnabled =\n                navigatedDay.getFullYear() !== today.getFullYear() ||\n                    navigatedDay.getMonth() !== today.getMonth() ||\n                    navigatedMonth.getFullYear() !== today.getFullYear() ||\n                    navigatedMonth.getMonth() !== today.getMonth();\n        }\n        return (showGoToToday && (React.createElement(\"button\", { className: css('js-goToday', classes.goTodayButton), onClick: onGotoToday, onKeyDown: onButtonKeyDown(onGotoToday), type: \"button\", disabled: !goTodayEnabled }, strings.goToToday)));\n    };\n    var onNavigateDayDate = function (date, focusOnNavigatedDay) {\n        navigateDay(date);\n        if (focusOnNavigatedDay) {\n            focusOnNextUpdate();\n        }\n    };\n    var onNavigateMonthDate = function (date, focusOnNavigatedDay) {\n        if (focusOnNavigatedDay) {\n            focusOnNextUpdate();\n        }\n        if (!focusOnNavigatedDay) {\n            navigateMonth(date);\n            return;\n        }\n        if (monthPickerOnly) {\n            onDateSelected(date);\n        }\n        navigateDay(date);\n    };\n    var onHeaderSelect = getShowMonthPickerAsOverlay(props)\n        ? function () {\n            toggleDayMonthPickerVisibility();\n            focusOnNextUpdate();\n        }\n        : undefined;\n    var onGotoToday = function () {\n        navigateDay(today);\n        focusOnNextUpdate();\n    };\n    var onButtonKeyDown = function (callback) {\n        return function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.enter:\n                case KeyCodes.space:\n                    callback();\n                    break;\n            }\n        };\n    };\n    var onDatePickerPopupKeyDown = function (ev) {\n        var _a;\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.enter:\n                ev.preventDefault();\n                break;\n            case KeyCodes.backspace:\n                ev.preventDefault();\n                break;\n            case KeyCodes.escape:\n                (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props);\n                break;\n            case KeyCodes.pageUp:\n                if (ev.ctrlKey) {\n                    // go to next year\n                    navigateDay(addYears(navigatedDay, 1));\n                }\n                else {\n                    // go to next month\n                    navigateDay(addMonths(navigatedDay, 1));\n                }\n                ev.preventDefault();\n                break;\n            case KeyCodes.pageDown:\n                if (ev.ctrlKey) {\n                    // go to previous year\n                    navigateDay(addYears(navigatedDay, -1));\n                }\n                else {\n                    // go to previous month\n                    navigateDay(addMonths(navigatedDay, -1));\n                }\n                ev.preventDefault();\n                break;\n            default:\n                break;\n        }\n    };\n    var rootClass = 'ms-DatePicker';\n    var firstDayOfWeek = props.firstDayOfWeek, dateRangeType = props.dateRangeType, strings = props.strings, showGoToToday = props.showGoToToday, highlightCurrentMonth = props.highlightCurrentMonth, highlightSelectedMonth = props.highlightSelectedMonth, navigationIcons = props.navigationIcons, minDate = props.minDate, maxDate = props.maxDate, restrictedDates = props.restrictedDates, id = props.id, className = props.className, showCloseButton = props.showCloseButton, allFocusable = props.allFocusable, styles = props.styles, showWeekNumbers = props.showWeekNumbers, theme = props.theme, calendarDayProps = props.calendarDayProps, calendarMonthProps = props.calendarMonthProps, dateTimeFormatter = props.dateTimeFormatter, _d = props.today, today = _d === void 0 ? new Date() : _d;\n    var showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n    var monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n    var overlaidWithButton = showMonthPickerAsOverlay && showGoToToday;\n    var classes = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        isMonthPickerVisible: isMonthPickerVisible,\n        isDayPickerVisible: isDayPickerVisible,\n        monthPickerOnly: monthPickerOnly,\n        showMonthPickerAsOverlay: showMonthPickerAsOverlay,\n        overlaidWithButton: overlaidWithButton,\n        overlayedWithButton: overlaidWithButton,\n        showGoToToday: showGoToToday,\n        showWeekNumbers: showWeekNumbers,\n    });\n    var todayDateString = '';\n    var selectedDateString = '';\n    if (dateTimeFormatter && strings.todayDateFormatString) {\n        todayDateString = format(strings.todayDateFormatString, dateTimeFormatter.formatMonthDayYear(today, strings));\n    }\n    if (dateTimeFormatter && strings.selectedDateFormatString) {\n        var dateStringFormatter = monthPickerOnly\n            ? dateTimeFormatter.formatMonthYear\n            : dateTimeFormatter.formatMonthDayYear;\n        selectedDateString = format(strings.selectedDateFormatString, dateStringFormatter(selectedDate, strings));\n    }\n    var selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n    return (React.createElement(\"div\", { id: id, ref: forwardedRef, role: \"group\", \"aria-label\": selectionAndTodayString, className: css(rootClass, classes.root, className, 'ms-slideDownIn10'), onKeyDown: onDatePickerPopupKeyDown },\n        React.createElement(\"div\", { className: classes.liveRegion, \"aria-live\": \"polite\", \"aria-atomic\": \"true\" },\n            React.createElement(\"span\", null, selectedDateString)),\n        isDayPickerVisible && (React.createElement(CalendarDay, __assign({ selectedDate: selectedDate, navigatedDate: navigatedDay, today: props.today, onSelectDate: onDateSelected, \n            // eslint-disable-next-line react/jsx-no-bind\n            onNavigateDate: onNavigateDayDate, onDismiss: props.onDismiss, firstDayOfWeek: firstDayOfWeek, dateRangeType: dateRangeType, strings: strings, \n            // eslint-disable-next-line react/jsx-no-bind\n            onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, showWeekNumbers: props.showWeekNumbers, firstWeekOfYear: props.firstWeekOfYear, dateTimeFormatter: props.dateTimeFormatter, showSixWeeksByDefault: props.showSixWeeksByDefault, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, workWeekDays: props.workWeekDays, componentRef: dayPicker, showCloseButton: showCloseButton, allFocusable: allFocusable }, calendarDayProps))),\n        isDayPickerVisible && isMonthPickerVisible && React.createElement(\"div\", { className: classes.divider }),\n        isMonthPickerVisible ? (React.createElement(\"div\", { className: classes.monthPickerWrapper },\n            React.createElement(CalendarMonth, __assign({ navigatedDate: navigatedMonth, selectedDate: navigatedDay, strings: strings, \n                // eslint-disable-next-line react/jsx-no-bind\n                onNavigateDate: onNavigateMonthDate, today: props.today, highlightCurrentMonth: highlightCurrentMonth, highlightSelectedMonth: highlightSelectedMonth, \n                // eslint-disable-next-line react/jsx-no-bind\n                onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, dateTimeFormatter: props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: monthPicker }, calendarMonthProps)),\n            renderGoToTodayButton())) : (renderGoToTodayButton()),\n        React.createElement(FocusRects, null)));\n});\nCalendarBase.displayName = 'CalendarBase';\nfunction getShowMonthPickerAsOverlay(_a) {\n    var showMonthPickerAsOverlay = _a.showMonthPickerAsOverlay, isDayPickerVisible = _a.isDayPickerVisible;\n    var win = getWindow();\n    return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n//# sourceMappingURL=Calendar.base.js.map","import { normalize, FontSizes, getFocusStyle, HighContrastSelector } from '@fluentui/style-utilities';\nexport var styles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, isDayPickerVisible = props.isDayPickerVisible, isMonthPickerVisible = props.isMonthPickerVisible, showWeekNumbers = props.showWeekNumbers;\n    var palette = theme.palette;\n    var totalWidth = isDayPickerVisible && isMonthPickerVisible ? 440 : 220;\n    if (showWeekNumbers && isDayPickerVisible) {\n        totalWidth += 30;\n    }\n    return {\n        root: [\n            normalize,\n            {\n                display: 'flex',\n                width: totalWidth,\n            },\n            !isMonthPickerVisible && {\n                flexDirection: 'column',\n            },\n            className,\n        ],\n        divider: {\n            top: 0,\n            borderRight: '1px solid',\n            borderColor: palette.neutralLight,\n        },\n        monthPickerWrapper: [\n            {\n                display: 'flex',\n                flexDirection: 'column',\n            },\n        ],\n        goTodayButton: [\n            getFocusStyle(theme, { inset: -1 }),\n            {\n                bottom: 0,\n                color: palette.neutralPrimary,\n                height: 30,\n                lineHeight: 30,\n                backgroundColor: 'transparent',\n                border: 'none',\n                boxSizing: 'content-box',\n                padding: '0 4px',\n                alignSelf: 'flex-end',\n                marginRight: 16,\n                marginTop: 3,\n                fontSize: FontSizes.small,\n                fontFamily: 'inherit',\n                overflow: 'visible',\n                selectors: {\n                    '& div': {\n                        fontSize: FontSizes.small,\n                    },\n                    '&:hover': {\n                        color: palette.themePrimary,\n                        backgroundColor: 'transparent',\n                        cursor: 'pointer',\n                        selectors: (_a = {},\n                            _a[HighContrastSelector] = {\n                                outline: '1px solid Buttontext',\n                                borderRadius: '2px',\n                            },\n                            _a),\n                    },\n                    '&:active': {\n                        color: palette.themeDark,\n                    },\n                    '&:disabled': {\n                        color: palette.neutralTertiaryAlt,\n                        pointerEvents: 'none',\n                    },\n                },\n            },\n        ],\n        liveRegion: {\n            border: 0,\n            height: '1px',\n            margin: '-1px',\n            overflow: 'hidden',\n            padding: 0,\n            width: '1px',\n            position: 'absolute',\n        },\n    };\n};\n//# sourceMappingURL=Calendar.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { CalendarBase } from './Calendar.base';\nimport { styles } from './Calendar.styles';\nexport var Calendar = styled(CalendarBase, styles, undefined, {\n    scope: 'Calendar',\n});\n//# sourceMappingURL=Calendar.js.map","import { __assign } from \"tslib\";\nimport { defaultCalendarStrings } from '../../Calendar';\nexport var defaultDatePickerStrings = __assign(__assign({}, defaultCalendarStrings), { prevMonthAriaLabel: 'Go to previous month', nextMonthAriaLabel: 'Go to next month', prevYearAriaLabel: 'Go to previous year', nextYearAriaLabel: 'Go to next year', closeButtonAriaLabel: 'Close date picker', isRequiredErrorMessage: 'Field is required', invalidInputErrorMessage: 'Invalid date format', isResetStatusMessage: 'Invalid entry \"{0}\", date reset to \"{1}\"' });\n//# sourceMappingURL=defaults.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, classNamesFunction, getNativeProps, divProperties, css, format, getPropsWithDefaults, } from '@fluentui/utilities';\nimport { Calendar } from '../../Calendar';\nimport { FirstWeekOfYear, getDatePartHashValue, compareDatePart, DayOfWeek } from '@fluentui/date-time-utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { mergeStyles } from '../../Styling';\nimport { TextField } from '../../TextField';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { useId, useAsync, useControllableValue } from '@fluentui/react-hooks';\nimport { defaultDatePickerStrings } from './defaults';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n    allowTextInput: false,\n    formatDate: function (date) { return (date ? date.toDateString() : ''); },\n    parseDateFromString: function (dateStr) {\n        //if dateStr is DATE ONLY ISO 8601 -> add time so Date.parse() won't convert it to UTC\n        //See here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#date_time_string_format\n        if (dateStr.match(/^\\d{4}(-\\d{2}){2}$/)) {\n            dateStr += 'T12:00';\n        }\n        var date = Date.parse(dateStr);\n        return date ? new Date(date) : null;\n    },\n    firstDayOfWeek: DayOfWeek.Sunday,\n    initialPickerDate: new Date(),\n    isRequired: false,\n    isMonthPickerVisible: true,\n    showMonthPickerAsOverlay: false,\n    strings: defaultDatePickerStrings,\n    highlightCurrentMonth: false,\n    highlightSelectedMonth: false,\n    borderless: false,\n    pickerAriaLabel: 'Calendar',\n    showWeekNumbers: false,\n    firstWeekOfYear: FirstWeekOfYear.FirstDay,\n    showGoToToday: true,\n    showCloseButton: false,\n    underlined: false,\n    allFocusable: false,\n};\nfunction useFocusLogic() {\n    var textFieldRef = React.useRef(null);\n    var preventFocusOpeningPicker = React.useRef(false);\n    var focus = function () {\n        var _a, _b;\n        (_b = (_a = textFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n    };\n    var preventNextFocusOpeningPicker = function () {\n        preventFocusOpeningPicker.current = true;\n    };\n    return [textFieldRef, focus, preventFocusOpeningPicker, preventNextFocusOpeningPicker];\n}\nfunction useCalendarVisibility(_a, focus) {\n    var allowTextInput = _a.allowTextInput, onAfterMenuDismiss = _a.onAfterMenuDismiss;\n    var _b = React.useState(false), isCalendarShown = _b[0], setIsCalendarShown = _b[1];\n    var isMounted = React.useRef(false);\n    var async = useAsync();\n    React.useEffect(function () {\n        if (isMounted.current && !isCalendarShown) {\n            // In browsers like IE, textfield gets unfocused when datepicker is collapsed\n            if (allowTextInput) {\n                async.requestAnimationFrame(focus);\n            }\n            // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n            onAfterMenuDismiss === null || onAfterMenuDismiss === void 0 ? void 0 : onAfterMenuDismiss();\n        }\n        isMounted.current = true;\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isCalendarShown]);\n    return [isCalendarShown, setIsCalendarShown];\n}\nfunction useSelectedDate(_a) {\n    var formatDate = _a.formatDate, value = _a.value, onSelectDate = _a.onSelectDate;\n    var _b = useControllableValue(value, undefined, function (ev, newValue) {\n        return onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(newValue);\n    }), selectedDate = _b[0], setSelectedDateState = _b[1];\n    var _c = React.useState(function () { return (value && formatDate ? formatDate(value) : ''); }), formattedDate = _c[0], setFormattedDate = _c[1];\n    var setSelectedDate = function (newDate) {\n        setSelectedDateState(newDate);\n        setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n    };\n    React.useEffect(function () {\n        setFormattedDate(value && formatDate ? formatDate(value) : '');\n    }, [formatDate, value]);\n    return [selectedDate, formattedDate, setSelectedDate, setFormattedDate];\n}\nfunction useErrorMessage(_a, selectedDate, setSelectedDate, inputValue, isCalendarShown) {\n    var _b;\n    var isRequired = _a.isRequired, allowTextInput = _a.allowTextInput, strings = _a.strings, parseDateFromString = _a.parseDateFromString, onSelectDate = _a.onSelectDate, formatDate = _a.formatDate, minDate = _a.minDate, maxDate = _a.maxDate, textField = _a.textField;\n    var _c = React.useState(), errorMessage = _c[0], setErrorMessage = _c[1];\n    var _d = React.useState(), statusMessage = _d[0], setStatusMessage = _d[1];\n    var isFirstLoadRef = React.useRef(true);\n    var validateOnLoad = (_b = textField === null || textField === void 0 ? void 0 : textField.validateOnLoad) !== null && _b !== void 0 ? _b : true;\n    var validateTextInput = function (date) {\n        if (date === void 0) { date = null; }\n        if (allowTextInput) {\n            if (inputValue || date) {\n                // Don't parse if the selected date has the same formatted string as what we're about to parse.\n                // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n                // not be able to come up with the exact same date.\n                if (selectedDate && !errorMessage && formatDate && formatDate(date !== null && date !== void 0 ? date : selectedDate) === inputValue) {\n                    return;\n                }\n                date = date || parseDateFromString(inputValue);\n                // Check if date is null, or date is Invalid Date\n                if (!date || isNaN(date.getTime())) {\n                    // Reset invalid input field, if formatting is available\n                    setSelectedDate(selectedDate);\n                    // default the newer isResetStatusMessage string to invalidInputErrorMessage for legacy support\n                    var selectedText = formatDate ? formatDate(selectedDate) : '';\n                    var statusText = strings.isResetStatusMessage\n                        ? format(strings.isResetStatusMessage, inputValue, selectedText)\n                        : strings.invalidInputErrorMessage || '';\n                    setStatusMessage(statusText);\n                }\n                else {\n                    // Check against optional date boundaries\n                    if (isDateOutOfBounds(date, minDate, maxDate)) {\n                        setErrorMessage(strings.isOutOfBoundsErrorMessage || ' ');\n                    }\n                    else {\n                        setSelectedDate(date);\n                        setErrorMessage(undefined);\n                        setStatusMessage(undefined);\n                    }\n                }\n            }\n            else {\n                // Only show error for empty inputValue if it is a required field\n                setErrorMessage(isRequired ? strings.isRequiredErrorMessage || ' ' : undefined);\n                // If no input date string or input date string is invalid\n                // date variable will be null, callback should expect null value for this case\n                onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date);\n            }\n        }\n        else if (isRequired && !inputValue) {\n            // Check when DatePicker is a required field but has NO input value\n            setErrorMessage(strings.isRequiredErrorMessage || ' ');\n        }\n        else {\n            // Cleanup the error message and status message\n            setErrorMessage(undefined);\n            setStatusMessage(undefined);\n        }\n    };\n    React.useEffect(function () {\n        if (isFirstLoadRef.current) {\n            isFirstLoadRef.current = false;\n            if (!validateOnLoad) {\n                return;\n            }\n        }\n        if (isRequired && !selectedDate) {\n            setErrorMessage(strings.isRequiredErrorMessage || ' ');\n        }\n        else if (selectedDate && isDateOutOfBounds(selectedDate, minDate, maxDate)) {\n            setErrorMessage(strings.isOutOfBoundsErrorMessage || ' ');\n        }\n        else {\n            setErrorMessage(undefined);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        // We don't want to compare the date itself, since two instances of date at the same time are not equal\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        minDate && getDatePartHashValue(minDate),\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        maxDate && getDatePartHashValue(maxDate),\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        selectedDate && getDatePartHashValue(selectedDate),\n        isRequired,\n        validateOnLoad,\n    ]);\n    return [\n        isCalendarShown ? undefined : errorMessage,\n        validateTextInput,\n        setErrorMessage,\n        isCalendarShown ? undefined : statusMessage,\n        setStatusMessage,\n    ];\n}\nexport var DatePickerBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var _a, _b;\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var firstDayOfWeek = props.firstDayOfWeek, strings = props.strings, label = props.label, theme = props.theme, className = props.className, styles = props.styles, initialPickerDate = props.initialPickerDate, isRequired = props.isRequired, disabled = props.disabled, ariaLabel = props.ariaLabel, pickerAriaLabel = props.pickerAriaLabel, placeholder = props.placeholder, allowTextInput = props.allowTextInput, borderless = props.borderless, minDate = props.minDate, maxDate = props.maxDate, showCloseButton = props.showCloseButton, calendarProps = props.calendarProps, calloutProps = props.calloutProps, textFieldProps = props.textField, underlined = props.underlined, allFocusable = props.allFocusable, _c = props.calendarAs, CalendarType = _c === void 0 ? Calendar : _c, tabIndex = props.tabIndex, _d = props.disableAutoFocus, disableAutoFocus = _d === void 0 ? true : _d;\n    var id = useId('DatePicker', props.id);\n    var calloutId = useId('DatePicker-Callout');\n    var calendar = React.useRef(null);\n    var datePickerDiv = React.useRef(null);\n    var _e = useFocusLogic(), textFieldRef = _e[0], focus = _e[1], preventFocusOpeningPicker = _e[2], preventNextFocusOpeningPicker = _e[3];\n    var _f = useCalendarVisibility(props, focus), isCalendarShown = _f[0], setIsCalendarShown = _f[1];\n    var _g = useSelectedDate(props), selectedDate = _g[0], formattedDate = _g[1], setSelectedDate = _g[2], setFormattedDate = _g[3];\n    var _h = useErrorMessage(props, selectedDate, setSelectedDate, formattedDate, isCalendarShown), errorMessage = _h[0], validateTextInput = _h[1], setErrorMessage = _h[2], statusMessage = _h[3], setStatusMessage = _h[4];\n    var showDatePickerPopup = React.useCallback(function () {\n        if (!isCalendarShown) {\n            preventNextFocusOpeningPicker();\n            setIsCalendarShown(true);\n        }\n    }, [isCalendarShown, preventNextFocusOpeningPicker, setIsCalendarShown]);\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        focus: focus,\n        reset: function () {\n            setIsCalendarShown(false);\n            setSelectedDate(undefined);\n            setErrorMessage(undefined);\n            setStatusMessage(undefined);\n        },\n        showDatePickerPopup: showDatePickerPopup,\n    }); }, [focus, setErrorMessage, setIsCalendarShown, setSelectedDate, setStatusMessage, showDatePickerPopup]);\n    var onTextFieldFocus = function () {\n        if (disableAutoFocus) {\n            return;\n        }\n        if (!allowTextInput) {\n            if (!preventFocusOpeningPicker.current) {\n                showDatePickerPopup();\n            }\n            preventFocusOpeningPicker.current = false;\n        }\n    };\n    var onSelectDate = function (date) {\n        if (props.calendarProps && props.calendarProps.onSelectDate) {\n            props.calendarProps.onSelectDate(date);\n        }\n        calendarDismissed(date);\n    };\n    var onCalloutPositioned = function () {\n        var shouldFocus = true;\n        // If the user has specified that the callout shouldn't use initial focus, then respect\n        // that and don't attempt to set focus. That will default to true within the callout\n        // so we need to check if it's undefined here.\n        if (props.calloutProps && props.calloutProps.setInitialFocus !== undefined) {\n            shouldFocus = props.calloutProps.setInitialFocus;\n        }\n        if (calendar.current && shouldFocus) {\n            calendar.current.focus();\n        }\n    };\n    var onTextFieldBlur = function (ev) {\n        validateTextInput();\n    };\n    var onTextFieldChanged = function (ev, newValue) {\n        var _a;\n        var textField = props.textField;\n        if (allowTextInput) {\n            if (isCalendarShown) {\n                dismissDatePickerPopup();\n            }\n            setFormattedDate(newValue);\n        }\n        (_a = textField === null || textField === void 0 ? void 0 : textField.onChange) === null || _a === void 0 ? void 0 : _a.call(textField, ev, newValue);\n    };\n    var onTextFieldKeyDown = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.enter:\n                ev.preventDefault();\n                ev.stopPropagation();\n                if (!isCalendarShown) {\n                    validateTextInput();\n                    showDatePickerPopup();\n                }\n                else {\n                    // When DatePicker allows input date string directly,\n                    // it is expected to hit another enter to close the popup\n                    if (props.allowTextInput) {\n                        dismissDatePickerPopup();\n                    }\n                }\n                break;\n            case KeyCodes.escape:\n                handleEscKey(ev);\n                break;\n            case KeyCodes.down:\n                if (ev.altKey && !isCalendarShown) {\n                    showDatePickerPopup();\n                }\n                break;\n            default:\n                break;\n        }\n    };\n    var onTextFieldClick = function (ev) {\n        // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n        var openOnClick = props.openOnClick || !props.disableAutoFocus;\n        if (openOnClick && !isCalendarShown && !props.disabled) {\n            showDatePickerPopup();\n            return;\n        }\n        if (props.allowTextInput) {\n            dismissDatePickerPopup();\n        }\n    };\n    var onIconClick = function (ev) {\n        ev.stopPropagation();\n        if (!isCalendarShown && !props.disabled) {\n            showDatePickerPopup();\n        }\n        else if (props.allowTextInput) {\n            dismissDatePickerPopup();\n        }\n    };\n    var dismissDatePickerPopup = function (newlySelectedDate) {\n        if (isCalendarShown) {\n            setIsCalendarShown(false);\n            validateTextInput(newlySelectedDate);\n            if (!allowTextInput && newlySelectedDate) {\n                setSelectedDate(newlySelectedDate);\n            }\n        }\n    };\n    var renderTextfieldDescription = function (inputProps, defaultRender) {\n        return (React.createElement(React.Fragment, null,\n            inputProps.description || inputProps.onRenderDescription ? defaultRender(inputProps) : null,\n            React.createElement(\"div\", { \"aria-live\": \"assertive\", className: classNames.statusMessage }, statusMessage)));\n    };\n    var renderReadOnlyInput = function (inputProps) {\n        var divProps = getNativeProps(inputProps, divProperties);\n        // Need to merge styles so the provided styles win over the default ones. This is due to the classnames having the\n        // same specificity.\n        var readOnlyTextFieldClassName = mergeStyles(divProps.className, classNames.readOnlyTextField);\n        // Talkback on Android treats readonly inputs as disabled, so swipe gestures to open the Calendar\n        // don't register. Workaround is rendering a div with role=\"combobox\" (passed in via TextField props).\n        return (React.createElement(\"div\", __assign({}, divProps, { className: readOnlyTextFieldClassName, tabIndex: tabIndex || 0 }), formattedDate || (\n        // Putting the placeholder in a separate span fixes specificity issues for the text color\n        React.createElement(\"span\", { className: classNames.readOnlyPlaceholder }, placeholder))));\n    };\n    /**\n     * Callback for closing the calendar callout\n     */\n    var calendarDismissed = function (newlySelectedDate) {\n        preventNextFocusOpeningPicker();\n        dismissDatePickerPopup(newlySelectedDate);\n        // don't need to focus the text box, if necessary the focusTrapZone will do it\n    };\n    var calloutDismissed = function (ev) {\n        calendarDismissed();\n    };\n    var handleEscKey = function (ev) {\n        if (isCalendarShown) {\n            ev.stopPropagation();\n            calendarDismissed();\n        }\n    };\n    var onCalendarDismissed = function (ev) {\n        calendarDismissed();\n    };\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        disabled: disabled,\n        underlined: underlined,\n        label: !!label,\n        isDatePickerShown: isCalendarShown,\n    });\n    var nativeProps = getNativeProps(props, divProperties, ['value']);\n    var iconProps = textFieldProps && textFieldProps.iconProps;\n    var textFieldId = textFieldProps && textFieldProps.id && textFieldProps.id !== id ? textFieldProps.id : id + '-label';\n    var readOnly = !allowTextInput && !disabled;\n    var dataIsFocusable = (_b = (_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps['data-is-focusable']) !== null && _a !== void 0 ? _a : props['data-is-focusable']) !== null && _b !== void 0 ? _b : true;\n    return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root, ref: forwardedRef }),\n        React.createElement(\"div\", { ref: datePickerDiv, \"aria-owns\": isCalendarShown ? calloutId : undefined, className: classNames.wrapper },\n            React.createElement(TextField, __assign({ role: \"combobox\", label: label, \"aria-expanded\": isCalendarShown, ariaLabel: ariaLabel, \"aria-haspopup\": \"dialog\", \"aria-controls\": isCalendarShown ? calloutId : undefined, required: isRequired, disabled: disabled, errorMessage: errorMessage, placeholder: placeholder, borderless: borderless, value: formattedDate, componentRef: textFieldRef, underlined: underlined, tabIndex: tabIndex, readOnly: !allowTextInput }, textFieldProps, { \"data-is-focusable\": dataIsFocusable, id: textFieldId, className: css(classNames.textField, textFieldProps && textFieldProps.className), iconProps: __assign(__assign({ iconName: 'Calendar' }, iconProps), { className: css(classNames.icon, iconProps && iconProps.className), onClick: onIconClick }), \n                // eslint-disable-next-line react/jsx-no-bind\n                onRenderDescription: renderTextfieldDescription, \n                // eslint-disable-next-line react/jsx-no-bind\n                onKeyDown: onTextFieldKeyDown, \n                // eslint-disable-next-line react/jsx-no-bind\n                onFocus: onTextFieldFocus, \n                // eslint-disable-next-line react/jsx-no-bind\n                onBlur: onTextFieldBlur, \n                // eslint-disable-next-line react/jsx-no-bind\n                onClick: onTextFieldClick, \n                // eslint-disable-next-line react/jsx-no-bind\n                onChange: onTextFieldChanged, onRenderInput: readOnly ? renderReadOnlyInput : undefined }))),\n        isCalendarShown && (React.createElement(Callout, __assign({ id: calloutId, role: \"dialog\", ariaLabel: pickerAriaLabel, isBeakVisible: false, gapSpace: 0, doNotLayer: false, target: datePickerDiv.current, directionalHint: DirectionalHint.bottomLeftEdge }, calloutProps, { className: css(classNames.callout, calloutProps && calloutProps.className), \n            // eslint-disable-next-line react/jsx-no-bind\n            onDismiss: calloutDismissed, \n            // eslint-disable-next-line react/jsx-no-bind\n            onPositioned: onCalloutPositioned }),\n            React.createElement(FocusTrapZone, { isClickableOutsideFocusTrap: true, disableFirstFocus: disableAutoFocus },\n                React.createElement(CalendarType, __assign({}, calendarProps, { \n                    // eslint-disable-next-line react/jsx-no-bind\n                    onSelectDate: onSelectDate, \n                    // eslint-disable-next-line react/jsx-no-bind\n                    onDismiss: onCalendarDismissed, isMonthPickerVisible: props.isMonthPickerVisible, showMonthPickerAsOverlay: props.showMonthPickerAsOverlay, today: props.today, value: selectedDate || initialPickerDate, firstDayOfWeek: firstDayOfWeek, strings: strings, highlightCurrentMonth: props.highlightCurrentMonth, highlightSelectedMonth: props.highlightSelectedMonth, showWeekNumbers: props.showWeekNumbers, firstWeekOfYear: props.firstWeekOfYear, showGoToToday: props.showGoToToday, dateTimeFormatter: props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: calendar, showCloseButton: showCloseButton, allFocusable: allFocusable })))))));\n});\nDatePickerBase.displayName = 'DatePickerBase';\nfunction isDateOutOfBounds(date, minDate, maxDate) {\n    return (!!minDate && compareDatePart(minDate, date) > 0) || (!!maxDate && compareDatePart(maxDate, date) < 0);\n}\n//# sourceMappingURL=DatePicker.base.js.map","import { normalize, getGlobalClassNames, FontSizes, HighContrastSelector } from '@fluentui/style-utilities';\nvar GlobalClassNames = {\n    root: 'ms-DatePicker',\n    callout: 'ms-DatePicker-callout',\n    withLabel: 'ms-DatePicker-event--with-label',\n    withoutLabel: 'ms-DatePicker-event--without-label',\n    disabled: 'msDatePickerDisabled ',\n};\nvar TEXTFIELD_HEIGHT = 32;\nexport var styles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, disabled = props.disabled, underlined = props.underlined, label = props.label, isDatePickerShown = props.isDatePickerShown;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var DatePickerIcon = {\n        color: palette.neutralSecondary,\n        fontSize: FontSizes.icon,\n        lineHeight: '18px',\n        pointerEvents: 'none',\n        position: 'absolute',\n        right: '4px',\n        padding: '5px',\n    };\n    return {\n        root: [classNames.root, theme.fonts.large, isDatePickerShown && 'is-open', normalize, className],\n        textField: [\n            {\n                position: 'relative',\n                selectors: {\n                    '& input[readonly]': {\n                        cursor: 'pointer',\n                    },\n                    input: {\n                        selectors: {\n                            '::-ms-clear': {\n                                display: 'none',\n                            },\n                        },\n                    },\n                },\n            },\n            disabled && {\n                selectors: {\n                    '& input[readonly]': {\n                        cursor: 'default',\n                    },\n                },\n            },\n        ],\n        callout: [classNames.callout],\n        icon: [\n            DatePickerIcon,\n            label ? classNames.withLabel : classNames.withoutLabel,\n            { paddingTop: '7px' },\n            !disabled && [\n                classNames.disabled,\n                {\n                    pointerEvents: 'initial',\n                    cursor: 'pointer',\n                },\n            ],\n            disabled && {\n                color: semanticColors.disabledText,\n                cursor: 'default',\n            },\n        ],\n        statusMessage: [\n            fonts.small,\n            {\n                color: semanticColors.errorText,\n                marginTop: 5,\n            },\n        ],\n        readOnlyTextField: [\n            {\n                cursor: 'pointer',\n                height: TEXTFIELD_HEIGHT,\n                lineHeight: TEXTFIELD_HEIGHT - 2,\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n            },\n            underlined && {\n                lineHeight: TEXTFIELD_HEIGHT + 2,\n            },\n        ],\n        readOnlyPlaceholder: (_a = {\n                color: semanticColors.inputPlaceholderText\n            },\n            _a[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _a),\n    };\n};\n//# sourceMappingURL=DatePicker.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { DatePickerBase } from './DatePicker.base';\nimport { styles } from './DatePicker.styles';\nexport var DatePicker = styled(DatePickerBase, styles, undefined, {\n    scope: 'DatePicker',\n});\n//# sourceMappingURL=DatePicker.js.map","/**\n * {@docCategory GroupedList}\n */\nexport var CollapseAllVisibility;\n(function (CollapseAllVisibility) {\n    CollapseAllVisibility[CollapseAllVisibility[\"hidden\"] = 0] = \"hidden\";\n    CollapseAllVisibility[CollapseAllVisibility[\"visible\"] = 1] = \"visible\";\n})(CollapseAllVisibility || (CollapseAllVisibility = {}));\n//# sourceMappingURL=GroupedList.types.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Icon, FontIcon } from '../../Icon';\nimport { initializeComponentRef, EventGroup, Async, classNamesFunction, composeRenderFunction } from '../../Utilities';\nimport { ColumnActionsMode } from './DetailsList.types';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar getClassNames = classNamesFunction();\nvar TRANSITION_DURATION_DRAG = 200; // ms\nvar TRANSITION_DURATION_DROP = 1500; // ms\nvar CLASSNAME_ADD_INTERVAL = 20; // ms\nvar defaultOnRenderHeader = function (classNames) {\n    return function (props) {\n        if (!props) {\n            return null;\n        }\n        if (props.column.isIconOnly) {\n            return React.createElement(\"span\", { className: classNames.accessibleLabel }, props.column.name);\n        }\n        return React.createElement(React.Fragment, null, props.column.name);\n    };\n};\n/**\n * Component for rendering columns in a `DetailsList`.\n *\n * {@docCategory DetailsList}\n */\nvar DetailsColumnBase = /** @class */ (function (_super) {\n    __extends(DetailsColumnBase, _super);\n    function DetailsColumnBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._tooltipRef = React.createRef();\n        _this._onRenderFilterIcon = function (classNames) {\n            return function (props) {\n                var columnProps = props.columnProps, iconProps = __rest(props, [\"columnProps\"]);\n                var IconComponent = (columnProps === null || columnProps === void 0 ? void 0 : columnProps.useFastIcons) ? FontIcon : Icon;\n                return React.createElement(IconComponent, __assign({}, iconProps));\n            };\n        };\n        _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {\n            return React.createElement(\"span\", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);\n        };\n        _this._onColumnClick = function (ev) {\n            var _a = _this.props, onColumnClick = _a.onColumnClick, column = _a.column;\n            if (column.columnActionsMode === ColumnActionsMode.disabled) {\n                return;\n            }\n            if (column.onColumnClick) {\n                column.onColumnClick(ev, column);\n            }\n            if (onColumnClick) {\n                onColumnClick(ev, column);\n            }\n        };\n        _this._onColumnBlur = function () {\n            _this._tooltipRef.current && _this._tooltipRef.current.dismiss();\n        };\n        _this._onColumnFocus = function () {\n            _this._tooltipRef.current && _this._tooltipRef.current.show();\n        };\n        _this._onDragStart = function (item, itemIndex, selectedItems, event) {\n            var classNames = _this._classNames;\n            if (itemIndex) {\n                _this._updateHeaderDragInfo(itemIndex);\n                _this._root.current.classList.add(classNames.borderWhileDragging);\n                _this._async.setTimeout(function () {\n                    if (_this._root.current) {\n                        _this._root.current.classList.add(classNames.noBorderWhileDragging);\n                    }\n                }, CLASSNAME_ADD_INTERVAL);\n            }\n        };\n        _this._onDragEnd = function (item, event) {\n            var classNames = _this._classNames;\n            if (event) {\n                _this._updateHeaderDragInfo(-1, event);\n            }\n            _this._root.current.classList.remove(classNames.borderWhileDragging);\n            _this._root.current.classList.remove(classNames.noBorderWhileDragging);\n        };\n        _this._updateHeaderDragInfo = function (itemIndex, event) {\n            /* eslint-disable deprecation/deprecation */\n            if (_this.props.setDraggedItemIndex) {\n                _this.props.setDraggedItemIndex(itemIndex);\n            }\n            /* eslint-enable deprecation/deprecation */\n            if (_this.props.updateDragInfo) {\n                _this.props.updateDragInfo({ itemIndex: itemIndex }, event);\n            }\n        };\n        _this._onColumnContextMenu = function (ev) {\n            var _a = _this.props, onColumnContextMenu = _a.onColumnContextMenu, column = _a.column;\n            if (column.onColumnContextMenu) {\n                column.onColumnContextMenu(column, ev);\n                ev.preventDefault();\n            }\n            if (onColumnContextMenu) {\n                onColumnContextMenu(column, ev);\n                ev.preventDefault();\n            }\n        };\n        _this._onRootMouseDown = function (ev) {\n            var isDraggable = _this.props.isDraggable;\n            // Ignore anything except the primary button.\n            if (isDraggable && ev.button === MOUSEDOWN_PRIMARY_BUTTON) {\n                ev.stopPropagation();\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        return _this;\n    }\n    DetailsColumnBase.prototype.render = function () {\n        var _a = this.props, column = _a.column, parentId = _a.parentId, isDraggable = _a.isDraggable, styles = _a.styles, theme = _a.theme, _b = _a.cellStyleProps, cellStyleProps = _b === void 0 ? DEFAULT_CELL_STYLE_PROPS : _b, _c = _a.useFastIcons, useFastIcons = _c === void 0 ? true : _c;\n        var _d = this.props.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _d === void 0 ? this._onRenderColumnHeaderTooltip : _d;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            headerClassName: column.headerClassName,\n            iconClassName: column.iconClassName,\n            isActionable: column.columnActionsMode !== ColumnActionsMode.disabled,\n            isEmpty: !column.name,\n            isIconVisible: column.isSorted || column.isGrouped || column.isFiltered,\n            isPadded: column.isPadded,\n            isIconOnly: column.isIconOnly,\n            cellStyleProps: cellStyleProps,\n            transitionDurationDrag: TRANSITION_DURATION_DRAG,\n            transitionDurationDrop: TRANSITION_DURATION_DROP,\n        });\n        var classNames = this._classNames;\n        var IconComponent = useFastIcons ? FontIcon : Icon;\n        var onRenderFilterIcon = column.onRenderFilterIcon\n            ? composeRenderFunction(column.onRenderFilterIcon, this._onRenderFilterIcon(this._classNames))\n            : this._onRenderFilterIcon(this._classNames);\n        var onRenderHeader = column.onRenderHeader\n            ? composeRenderFunction(column.onRenderHeader, defaultOnRenderHeader(this._classNames))\n            : defaultOnRenderHeader(this._classNames);\n        var hasInnerButton = column.columnActionsMode !== ColumnActionsMode.disabled &&\n            (column.onColumnClick !== undefined || this.props.onColumnClick !== undefined);\n        // use aria-describedby to point to the tooltip if the tooltip is not using the ariaLabel string\n        var shouldAssociateTooltip = this.props.onRenderColumnHeaderTooltip\n            ? !column.ariaLabel\n            : this._hasAccessibleDescription();\n        var accNameDescription = {\n            'aria-label': column.ariaLabel ? column.ariaLabel : column.isIconOnly ? column.name : undefined,\n            'aria-labelledby': column.ariaLabel || column.isIconOnly ? undefined : \"\".concat(parentId, \"-\").concat(column.key, \"-name\"),\n            'aria-describedby': shouldAssociateTooltip ? \"\".concat(parentId, \"-\").concat(column.key, \"-tooltip\") : undefined,\n        };\n        return (React.createElement(React.Fragment, null,\n            React.createElement(\"div\", __assign({ key: column.key, ref: this._root, role: 'columnheader' }, (!hasInnerButton && accNameDescription), { \"aria-sort\": column.isSorted ? (column.isSortedDescending ? 'descending' : 'ascending') : 'none', \"data-is-focusable\": !hasInnerButton && column.columnActionsMode !== ColumnActionsMode.disabled ? 'true' : undefined, className: classNames.root, \"data-is-draggable\": isDraggable, draggable: isDraggable, style: {\n                    width: column.calculatedWidth +\n                        cellStyleProps.cellLeftPadding +\n                        cellStyleProps.cellRightPadding +\n                        (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0),\n                }, \"data-automationid\": 'ColumnsHeaderColumn', \"data-item-key\": column.key, onBlur: this._onColumnBlur, onFocus: this._onColumnFocus }),\n                isDraggable && (React.createElement(IconComponent, { iconName: \"GripperBarVertical\", className: classNames.gripperBarVerticalStyle })),\n                onRenderColumnHeaderTooltip({\n                    hostClassName: classNames.cellTooltip,\n                    id: \"\".concat(parentId, \"-\").concat(column.key, \"-tooltip\"),\n                    setAriaDescribedBy: false,\n                    column: column,\n                    componentRef: this._tooltipRef,\n                    content: column.columnActionsMode !== ColumnActionsMode.disabled ? column.ariaLabel : '',\n                    children: (React.createElement(\"span\", __assign({ id: \"\".concat(parentId, \"-\").concat(column.key), className: classNames.cellTitle, \"data-is-focusable\": hasInnerButton && column.columnActionsMode !== ColumnActionsMode.disabled ? 'true' : undefined, role: hasInnerButton ? 'button' : undefined }, (hasInnerButton && accNameDescription), { onContextMenu: this._onColumnContextMenu, onClick: this._onColumnClick, \"aria-haspopup\": column.columnActionsMode === ColumnActionsMode.hasDropdown ? 'menu' : undefined, \"aria-expanded\": column.columnActionsMode === ColumnActionsMode.hasDropdown ? !!column.isMenuOpen : undefined }),\n                        React.createElement(\"span\", { id: \"\".concat(parentId, \"-\").concat(column.key, \"-name\"), className: classNames.cellName },\n                            (column.iconName || column.iconClassName) && (React.createElement(IconComponent, { className: classNames.iconClassName, iconName: column.iconName })),\n                            onRenderHeader(this.props)),\n                        column.isFiltered && React.createElement(IconComponent, { className: classNames.nearIcon, iconName: \"Filter\" }),\n                        (column.isSorted || column.showSortIconWhenUnsorted) && (React.createElement(IconComponent, { className: classNames.sortIcon, iconName: column.isSorted ? (column.isSortedDescending ? 'SortDown' : 'SortUp') : 'Sort' })),\n                        column.isGrouped && React.createElement(IconComponent, { className: classNames.nearIcon, iconName: \"GroupedDescending\" }),\n                        column.columnActionsMode === ColumnActionsMode.hasDropdown &&\n                            !column.isIconOnly &&\n                            onRenderFilterIcon({\n                                'aria-hidden': true,\n                                columnProps: this.props,\n                                className: classNames.filterChevron,\n                                iconName: 'ChevronDown',\n                            }))),\n                }, this._onRenderColumnHeaderTooltip)),\n            !this.props.onRenderColumnHeaderTooltip ? this._renderAccessibleDescription() : null));\n    };\n    DetailsColumnBase.prototype.componentDidMount = function () {\n        var _this = this;\n        if (this.props.dragDropHelper && this.props.isDraggable) {\n            this._addDragDropHandling();\n        }\n        var classNames = this._classNames;\n        if (this.props.isDropped) {\n            if (this._root.current) {\n                this._root.current.classList.add(classNames.borderAfterDropping);\n                this._async.setTimeout(function () {\n                    if (_this._root.current) {\n                        _this._root.current.classList.add(classNames.noBorderAfterDropping);\n                    }\n                }, CLASSNAME_ADD_INTERVAL);\n            }\n            this._async.setTimeout(function () {\n                if (_this._root.current) {\n                    _this._root.current.classList.remove(classNames.borderAfterDropping);\n                    _this._root.current.classList.remove(classNames.noBorderAfterDropping);\n                }\n            }, TRANSITION_DURATION_DROP + CLASSNAME_ADD_INTERVAL);\n        }\n    };\n    DetailsColumnBase.prototype.componentWillUnmount = function () {\n        if (this._dragDropSubscription) {\n            this._dragDropSubscription.dispose();\n            delete this._dragDropSubscription;\n        }\n        this._async.dispose();\n        this._events.dispose();\n    };\n    DetailsColumnBase.prototype.componentDidUpdate = function () {\n        if (!this._dragDropSubscription && this.props.dragDropHelper && this.props.isDraggable) {\n            this._addDragDropHandling();\n        }\n        if (this._dragDropSubscription && !this.props.isDraggable) {\n            this._dragDropSubscription.dispose();\n            this._events.off(this._root.current, 'mousedown');\n            delete this._dragDropSubscription;\n        }\n    };\n    DetailsColumnBase.prototype._getColumnDragDropOptions = function () {\n        var _this = this;\n        var columnIndex = this.props.columnIndex;\n        var options = {\n            selectionIndex: columnIndex,\n            context: { data: columnIndex, index: columnIndex },\n            canDrag: function () { return _this.props.isDraggable; },\n            canDrop: function () { return false; },\n            onDragStart: this._onDragStart,\n            updateDropState: function () { return undefined; },\n            onDrop: function () { return undefined; },\n            onDragEnd: this._onDragEnd,\n        };\n        return options;\n    };\n    DetailsColumnBase.prototype._hasAccessibleDescription = function () {\n        var column = this.props.column;\n        return !!(column.filterAriaLabel ||\n            column.sortAscendingAriaLabel ||\n            column.sortDescendingAriaLabel ||\n            column.groupAriaLabel ||\n            column.sortableAriaLabel);\n    };\n    DetailsColumnBase.prototype._renderAccessibleDescription = function () {\n        var _a = this.props, column = _a.column, parentId = _a.parentId;\n        var classNames = this._classNames;\n        return this._hasAccessibleDescription() && !this.props.onRenderColumnHeaderTooltip ? (React.createElement(\"label\", { key: \"\".concat(column.key, \"_label\"), id: \"\".concat(parentId, \"-\").concat(column.key, \"-tooltip\"), className: classNames.accessibleLabel, hidden: true },\n            (column.isFiltered && column.filterAriaLabel) || null,\n            ((column.isSorted || column.showSortIconWhenUnsorted) &&\n                (column.isSorted\n                    ? column.isSortedDescending\n                        ? column.sortDescendingAriaLabel\n                        : column.sortAscendingAriaLabel\n                    : column.sortableAriaLabel)) ||\n                null,\n            (column.isGrouped && column.groupAriaLabel) || null)) : null;\n    };\n    DetailsColumnBase.prototype._addDragDropHandling = function () {\n        this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getColumnDragDropOptions());\n        // We need to use native on this to prevent MarqueeSelection from handling the event before us.\n        this._events.on(this._root.current, 'mousedown', this._onRootMouseDown);\n    };\n    return DetailsColumnBase;\n}(React.Component));\nexport { DetailsColumnBase };\n//# sourceMappingURL=DetailsColumn.base.js.map","import { __assign } from \"tslib\";\nimport { getFocusStyle, getGlobalClassNames, hiddenContentStyle, FontWeights } from '../../Styling';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nimport { getCellStyles } from './DetailsHeader.styles';\nvar GlobalClassNames = {\n    isActionable: 'is-actionable',\n    cellIsCheck: 'ms-DetailsHeader-cellIsCheck',\n    collapseButton: 'ms-DetailsHeader-collapseButton',\n    isCollapsed: 'is-collapsed',\n    isAllSelected: 'is-allSelected',\n    isSelectAllHidden: 'is-selectAllHidden',\n    isResizingColumn: 'is-resizingColumn',\n    isEmpty: 'is-empty',\n    isIconVisible: 'is-icon-visible',\n    cellSizer: 'ms-DetailsHeader-cellSizer',\n    isResizing: 'is-resizing',\n    dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',\n    dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',\n    cellTitle: 'ms-DetailsHeader-cellTitle',\n    cellName: 'ms-DetailsHeader-cellName',\n    filterChevron: 'ms-DetailsHeader-filterChevron',\n    gripperBarVerticalStyle: 'ms-DetailsColumn-gripperBar',\n    nearIcon: 'ms-DetailsColumn-nearIcon',\n};\nexport var getDetailsColumnStyles = function (props) {\n    var _a;\n    var theme = props.theme, headerClassName = props.headerClassName, iconClassName = props.iconClassName, isActionable = props.isActionable, isEmpty = props.isEmpty, isIconVisible = props.isIconVisible, isPadded = props.isPadded, isIconOnly = props.isIconOnly, _b = props.cellStyleProps, cellStyleProps = _b === void 0 ? DEFAULT_CELL_STYLE_PROPS : _b, transitionDurationDrag = props.transitionDurationDrag, transitionDurationDrop = props.transitionDurationDrop;\n    var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var colors = {\n        iconForegroundColor: semanticColors.bodySubtext,\n        headerForegroundColor: semanticColors.bodyText,\n        headerBackgroundColor: semanticColors.bodyBackground,\n        dropdownChevronForegroundColor: palette.neutralSecondary,\n        resizerColor: palette.neutralTertiaryAlt,\n    };\n    var nearIconStyle = {\n        color: colors.iconForegroundColor,\n        opacity: 1,\n        paddingLeft: 8,\n    };\n    var borderWhileDragging = {\n        outline: \"1px solid \".concat(palette.themePrimary),\n    };\n    var borderAfterDragOrDrop = {\n        outlineColor: 'transparent',\n    };\n    return {\n        root: [\n            getCellStyles(props),\n            fonts.small,\n            isActionable && [\n                classNames.isActionable,\n                {\n                    selectors: {\n                        ':hover': {\n                            color: semanticColors.bodyText,\n                            background: semanticColors.listHeaderBackgroundHovered,\n                        },\n                        ':active': {\n                            background: semanticColors.listHeaderBackgroundPressed,\n                        },\n                    },\n                },\n            ],\n            isEmpty && [\n                classNames.isEmpty,\n                {\n                    textOverflow: 'clip',\n                },\n            ],\n            isIconVisible && classNames.isIconVisible,\n            isPadded && {\n                paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding,\n            },\n            {\n                selectors: {\n                    ':hover i[data-icon-name=\"GripperBarVertical\"]': {\n                        display: 'block',\n                    },\n                },\n            },\n            headerClassName,\n        ],\n        gripperBarVerticalStyle: {\n            display: 'none',\n            position: 'absolute',\n            textAlign: 'left',\n            color: palette.neutralTertiary,\n            left: 1,\n        },\n        nearIcon: [classNames.nearIcon, nearIconStyle],\n        sortIcon: [\n            nearIconStyle,\n            {\n                paddingLeft: 4,\n                position: 'relative',\n                top: 1,\n            },\n        ],\n        iconClassName: [\n            {\n                color: colors.iconForegroundColor,\n                opacity: 1,\n            },\n            iconClassName,\n        ],\n        filterChevron: [\n            classNames.filterChevron,\n            {\n                color: colors.dropdownChevronForegroundColor,\n                paddingLeft: 6,\n                verticalAlign: 'middle',\n                fontSize: fonts.small.fontSize,\n            },\n        ],\n        cellTitle: [\n            classNames.cellTitle,\n            getFocusStyle(theme),\n            __assign({ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'stretch', boxSizing: 'border-box', overflow: 'hidden', padding: \"0 \".concat(cellStyleProps.cellRightPadding, \"px 0 \").concat(cellStyleProps.cellLeftPadding, \"px\") }, (isIconOnly\n                ? {\n                    alignContent: 'flex-end',\n                    maxHeight: '100%',\n                    flexWrap: 'wrap-reverse',\n                }\n                : {})),\n        ],\n        cellName: [\n            classNames.cellName,\n            {\n                flex: '0 1 auto',\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                fontWeight: FontWeights.semibold,\n                fontSize: fonts.medium.fontSize,\n            },\n            isIconOnly && {\n                selectors: (_a = {},\n                    _a[\".\".concat(classNames.nearIcon)] = {\n                        paddingLeft: 0,\n                    },\n                    _a),\n            },\n        ],\n        cellTooltip: {\n            display: 'block',\n            position: 'absolute',\n            top: 0,\n            left: 0,\n            bottom: 0,\n            right: 0,\n        },\n        accessibleLabel: hiddenContentStyle,\n        borderWhileDragging: borderWhileDragging,\n        noBorderWhileDragging: [borderAfterDragOrDrop, { transition: \"outline \".concat(transitionDurationDrag, \"ms ease\") }],\n        borderAfterDropping: borderWhileDragging,\n        noBorderAfterDropping: [borderAfterDragOrDrop, { transition: \"outline  \".concat(transitionDurationDrop, \"ms ease\") }],\n    };\n};\n//# sourceMappingURL=DetailsColumn.styles.js.map","import { styled } from '../../Utilities';\nimport { DetailsColumnBase } from './DetailsColumn.base';\nimport { getDetailsColumnStyles } from './DetailsColumn.styles';\nexport var DetailsColumn = styled(DetailsColumnBase, getDetailsColumnStyles, undefined, { scope: 'DetailsColumn' });\n//# sourceMappingURL=DetailsColumn.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, EventGroup, css, getRTL, getId, KeyCodes, classNamesFunction } from '../../Utilities';\nimport { ColumnDragEndLocation, CheckboxVisibility } from './DetailsList.types';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon, FontIcon } from '../../Icon';\nimport { Layer } from '../../Layer';\nimport { GroupSpacer } from '../GroupedList/GroupSpacer';\nimport { CollapseAllVisibility } from '../../GroupedList';\nimport { DetailsRowCheck } from './DetailsRowCheck';\nimport { SelectionMode, SELECTION_CHANGE } from '../../Selection';\nimport { DragDropHelper } from '../../DragDrop';\nimport { DetailsColumn } from '../../components/DetailsList/DetailsColumn';\nimport { SelectAllVisibility } from './DetailsHeader.types';\nvar getClassNames = classNamesFunction();\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button\nvar NO_COLUMNS = [];\nvar DetailsHeaderBase = /** @class */ (function (_super) {\n    __extends(DetailsHeaderBase, _super);\n    function DetailsHeaderBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._rootElement = React.createRef();\n        _this._rootComponent = React.createRef();\n        _this._draggedColumnIndex = -1;\n        _this._dropHintDetails = {};\n        _this._updateDroppingState = function (newValue, event) {\n            if (_this._draggedColumnIndex >= 0 && event.type !== 'drop' && !newValue) {\n                _this._resetDropHints();\n            }\n        };\n        _this._onDragOver = function (item, event) {\n            if (_this._draggedColumnIndex >= 0) {\n                event.stopPropagation();\n                _this._computeDropHintToBeShown(event.clientX);\n            }\n        };\n        _this._onDrop = function (item, event) {\n            // Safe to assume this is defined since we're handling a drop event\n            var columnReorderProps = _this._getColumnReorderProps();\n            // Target index will not get changed if draggeditem is after target item.\n            if (_this._draggedColumnIndex >= 0 && event) {\n                var targetIndex = _this._draggedColumnIndex > _this._currentDropHintIndex\n                    ? _this._currentDropHintIndex\n                    : _this._currentDropHintIndex - 1;\n                var isValidDrop = _this._isValidCurrentDropHintIndex();\n                event.stopPropagation();\n                if (isValidDrop) {\n                    _this._onDropIndexInfo.sourceIndex = _this._draggedColumnIndex;\n                    _this._onDropIndexInfo.targetIndex = targetIndex;\n                    if (columnReorderProps.onColumnDrop) {\n                        var dragDropDetails = {\n                            draggedIndex: _this._draggedColumnIndex,\n                            targetIndex: targetIndex,\n                        };\n                        columnReorderProps.onColumnDrop(dragDropDetails);\n                        /* eslint-disable deprecation/deprecation */\n                    }\n                    else if (columnReorderProps.handleColumnReorder) {\n                        columnReorderProps.handleColumnReorder(_this._draggedColumnIndex, targetIndex);\n                        /* eslint-enable deprecation/deprecation */\n                    }\n                }\n            }\n            _this._resetDropHints();\n            _this._dropHintDetails = {};\n            _this._draggedColumnIndex = -1;\n        };\n        _this._computeColumnIndexOffset = function (showCheckbox) {\n            var hasGroupExpander = _this.props.groupNestingDepth && _this.props.groupNestingDepth > 0;\n            var offset = 1;\n            if (showCheckbox) {\n                offset += 1;\n            }\n            if (hasGroupExpander) {\n                offset += 1;\n            }\n            return offset;\n        };\n        _this._updateDragInfo = function (props, event) {\n            // Safe to assume this is defined since we're handling a drag event\n            var columnReorderProps = _this._getColumnReorderProps();\n            var itemIndex = props.itemIndex;\n            if (itemIndex >= 0) {\n                // Column index is set based on the checkbox\n                _this._draggedColumnIndex = itemIndex - _this._computeColumnIndexOffset(!_this._isCheckboxColumnHidden());\n                _this._getDropHintPositions();\n                if (columnReorderProps.onColumnDragStart) {\n                    columnReorderProps.onColumnDragStart(true);\n                }\n            }\n            else if (event && _this._draggedColumnIndex >= 0) {\n                _this._resetDropHints();\n                _this._draggedColumnIndex = -1;\n                _this._dropHintDetails = {};\n                if (columnReorderProps.onColumnDragEnd) {\n                    var columnDragEndLocation = _this._isEventOnHeader(event);\n                    columnReorderProps.onColumnDragEnd({ dropLocation: columnDragEndLocation }, event);\n                }\n            }\n        };\n        _this._getDropHintPositions = function () {\n            var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n            // Safe to assume this is defined since we're handling a drag/drop event\n            var columnReorderProps = _this._getColumnReorderProps();\n            var prevX = 0;\n            var prevMid = 0;\n            var prevRef;\n            var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;\n            var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;\n            for (var i = frozenColumnCountFromStart; i < columns.length - frozenColumnCountFromEnd + 1; i++) {\n                if (_this._rootElement.current) {\n                    var dropHintElement = _this._rootElement.current.querySelectorAll('#columnDropHint_' + i)[0];\n                    if (dropHintElement) {\n                        if (i === frozenColumnCountFromStart) {\n                            prevX = dropHintElement.offsetLeft;\n                            prevMid = dropHintElement.offsetLeft;\n                            prevRef = dropHintElement;\n                        }\n                        else {\n                            var newMid = (dropHintElement.offsetLeft + prevX) / 2;\n                            _this._dropHintDetails[i - 1] = {\n                                originX: prevX,\n                                startX: prevMid,\n                                endX: newMid,\n                                dropHintElementRef: prevRef,\n                            };\n                            prevMid = newMid;\n                            prevRef = dropHintElement;\n                            prevX = dropHintElement.offsetLeft;\n                            if (i === columns.length - frozenColumnCountFromEnd) {\n                                _this._dropHintDetails[i] = {\n                                    originX: prevX,\n                                    startX: prevMid,\n                                    endX: dropHintElement.offsetLeft,\n                                    dropHintElementRef: prevRef,\n                                };\n                            }\n                        }\n                    }\n                }\n            }\n        };\n        /**\n         * Based on the given cursor position, finds the nearest drop hint and updates the state to make it visible\n         */\n        _this._computeDropHintToBeShown = function (clientX) {\n            var isRtl = getRTL(_this.props.theme);\n            if (_this._rootElement.current) {\n                var clientRect = _this._rootElement.current.getBoundingClientRect();\n                var headerOriginX = clientRect.left;\n                var eventXRelativePosition = clientX - headerOriginX;\n                var currentDropHintIndex = _this._currentDropHintIndex;\n                if (_this._isValidCurrentDropHintIndex()) {\n                    if (_liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex].startX, _this._dropHintDetails[currentDropHintIndex].endX)) {\n                        return;\n                    }\n                }\n                var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n                // Safe to assume this is defined since we're handling a drag/drop event\n                var columnReorderProps = _this._getColumnReorderProps();\n                var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;\n                var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;\n                var currentIndex = frozenColumnCountFromStart;\n                var lastValidColumn = columns.length - frozenColumnCountFromEnd;\n                var indexToUpdate = -1;\n                if (_isBefore(isRtl, eventXRelativePosition, _this._dropHintDetails[currentIndex].endX)) {\n                    indexToUpdate = currentIndex;\n                }\n                else if (_isAfter(isRtl, eventXRelativePosition, _this._dropHintDetails[lastValidColumn].startX)) {\n                    indexToUpdate = lastValidColumn;\n                }\n                else if (_this._isValidCurrentDropHintIndex()) {\n                    if (_this._dropHintDetails[currentDropHintIndex + 1] &&\n                        _liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex + 1].startX, _this._dropHintDetails[currentDropHintIndex + 1].endX)) {\n                        indexToUpdate = currentDropHintIndex + 1;\n                    }\n                    else if (_this._dropHintDetails[currentDropHintIndex - 1] &&\n                        _liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex - 1].startX, _this._dropHintDetails[currentDropHintIndex - 1].endX)) {\n                        indexToUpdate = currentDropHintIndex - 1;\n                    }\n                }\n                if (indexToUpdate === -1) {\n                    var startIndex = frozenColumnCountFromStart;\n                    var endIndex = lastValidColumn;\n                    while (startIndex < endIndex) {\n                        var middleIndex = Math.ceil((endIndex + startIndex) / 2);\n                        if (_liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].startX, _this._dropHintDetails[middleIndex].endX)) {\n                            indexToUpdate = middleIndex;\n                            break;\n                        }\n                        else if (_isBefore(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {\n                            endIndex = middleIndex;\n                        }\n                        else if (_isAfter(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {\n                            startIndex = middleIndex;\n                        }\n                    }\n                }\n                if (indexToUpdate === _this._draggedColumnIndex || indexToUpdate === _this._draggedColumnIndex + 1) {\n                    if (_this._isValidCurrentDropHintIndex()) {\n                        _this._resetDropHints();\n                    }\n                }\n                else if (currentDropHintIndex !== indexToUpdate && indexToUpdate >= 0) {\n                    _this._resetDropHints();\n                    _this._updateDropHintElement(_this._dropHintDetails[indexToUpdate].dropHintElementRef, 'inline-block');\n                    _this._currentDropHintIndex = indexToUpdate;\n                }\n            }\n        };\n        _this._renderColumnSizer = function (_a) {\n            var _b;\n            var columnIndex = _a.columnIndex;\n            var _c = _this.props.columns, columns = _c === void 0 ? NO_COLUMNS : _c;\n            var column = columns[columnIndex];\n            var columnResizeDetails = _this.state.columnResizeDetails;\n            var classNames = _this._classNames;\n            return column.isResizable ? (React.createElement(\"div\", { key: \"\".concat(column.key, \"_sizer\"), \"aria-hidden\": true, role: \"button\", \"data-is-focusable\": false, onClick: _stopPropagation, \"data-sizer-index\": columnIndex, onBlur: _this._onSizerBlur, className: css(classNames.cellSizer, columnIndex < columns.length - 1 ? classNames.cellSizerStart : classNames.cellSizerEnd, (_b = {},\n                    _b[classNames.cellIsResizing] = columnResizeDetails && columnResizeDetails.columnIndex === columnIndex,\n                    _b)), onDoubleClick: _this._onSizerDoubleClick.bind(_this, columnIndex) })) : null;\n        };\n        _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {\n            return React.createElement(\"span\", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);\n        };\n        /**\n         * Called when the select all toggle is clicked.\n         */\n        _this._onSelectAllClicked = function () {\n            var selection = _this.props.selection;\n            if (selection) {\n                selection.toggleAllSelected();\n            }\n        };\n        _this._onRootMouseDown = function (ev) {\n            var columnIndexAttr = ev.target.getAttribute('data-sizer-index');\n            var columnIndex = Number(columnIndexAttr);\n            var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n            if (columnIndexAttr === null || ev.button !== MOUSEDOWN_PRIMARY_BUTTON) {\n                // Ignore anything except the primary button.\n                return;\n            }\n            _this.setState({\n                columnResizeDetails: {\n                    columnIndex: columnIndex,\n                    columnMinWidth: columns[columnIndex].calculatedWidth,\n                    originX: ev.clientX,\n                },\n            });\n            ev.preventDefault();\n            ev.stopPropagation();\n        };\n        _this._onRootMouseMove = function (ev) {\n            var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;\n            if (columnResizeDetails && !isSizing && ev.clientX !== columnResizeDetails.originX) {\n                _this.setState({ isSizing: true });\n            }\n        };\n        _this._onRootKeyDown = function (ev) {\n            var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;\n            var _b = _this.props, _c = _b.columns, columns = _c === void 0 ? NO_COLUMNS : _c, onColumnResized = _b.onColumnResized;\n            var columnIndexAttr = ev.target.getAttribute('data-sizer-index');\n            if (!columnIndexAttr || isSizing) {\n                return;\n            }\n            var columnIndex = Number(columnIndexAttr);\n            if (!columnResizeDetails) {\n                // eslint-disable-next-line deprecation/deprecation\n                if (ev.which === KeyCodes.enter) {\n                    _this.setState({\n                        columnResizeDetails: {\n                            columnIndex: columnIndex,\n                            columnMinWidth: columns[columnIndex].calculatedWidth,\n                        },\n                    });\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n            }\n            else {\n                var increment = void 0;\n                // eslint-disable-next-line deprecation/deprecation\n                if (ev.which === KeyCodes.enter) {\n                    _this.setState({\n                        columnResizeDetails: undefined,\n                    });\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                    // eslint-disable-next-line deprecation/deprecation\n                }\n                else if (ev.which === KeyCodes.left) {\n                    increment = getRTL(_this.props.theme) ? 1 : -1;\n                    // eslint-disable-next-line deprecation/deprecation\n                }\n                else if (ev.which === KeyCodes.right) {\n                    increment = getRTL(_this.props.theme) ? -1 : 1;\n                }\n                if (increment) {\n                    if (!ev.shiftKey) {\n                        increment *= 10;\n                    }\n                    _this.setState({\n                        columnResizeDetails: __assign(__assign({}, columnResizeDetails), { columnMinWidth: columnResizeDetails.columnMinWidth + increment }),\n                    });\n                    if (onColumnResized) {\n                        onColumnResized(columns[columnIndex], columnResizeDetails.columnMinWidth + increment, columnIndex);\n                    }\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n            }\n        };\n        /**\n         * mouse move event handler in the header\n         * it will set isSizing state to true when user clicked on the sizer and move the mouse.\n         *\n         * @param ev - mouse move event\n         */\n        _this._onSizerMouseMove = function (ev) {\n            var \n            // use buttons property here since ev.button in some edge case is not upding well during the move.\n            // but firefox doesn't support it, so we set the default value when it is not defined.\n            buttons = ev.buttons;\n            var _a = _this.props, onColumnIsSizingChanged = _a.onColumnIsSizingChanged, onColumnResized = _a.onColumnResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n            var columnResizeDetails = _this.state.columnResizeDetails;\n            if (buttons !== undefined && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {\n                // cancel mouse down event and return early when the primary button is not pressed\n                _this._onSizerMouseUp(ev);\n                return;\n            }\n            if (ev.clientX !== columnResizeDetails.originX) {\n                if (onColumnIsSizingChanged) {\n                    onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], true);\n                }\n            }\n            if (onColumnResized) {\n                var movement = ev.clientX - columnResizeDetails.originX;\n                if (getRTL(_this.props.theme)) {\n                    movement = -movement;\n                }\n                onColumnResized(columns[columnResizeDetails.columnIndex], columnResizeDetails.columnMinWidth + movement, columnResizeDetails.columnIndex);\n            }\n        };\n        _this._onSizerBlur = function (ev) {\n            var columnResizeDetails = _this.state.columnResizeDetails;\n            if (columnResizeDetails) {\n                _this.setState({\n                    columnResizeDetails: undefined,\n                    isSizing: false,\n                });\n            }\n        };\n        /**\n         * mouse up event handler in the header\n         * clear the resize related state.\n         * This is to ensure we can catch double click event\n         *\n         * @param ev - mouse up event\n         */\n        _this._onSizerMouseUp = function (ev) {\n            var _a = _this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, onColumnIsSizingChanged = _a.onColumnIsSizingChanged;\n            var columnResizeDetails = _this.state.columnResizeDetails;\n            _this.setState({\n                columnResizeDetails: undefined,\n                isSizing: false,\n            });\n            if (onColumnIsSizingChanged) {\n                onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], false);\n            }\n        };\n        _this._onToggleCollapseAll = function () {\n            var onToggleCollapseAll = _this.props.onToggleCollapseAll;\n            var newCollapsed = !_this.state.isAllCollapsed;\n            _this.setState({\n                isAllCollapsed: newCollapsed,\n            });\n            if (onToggleCollapseAll) {\n                onToggleCollapseAll(newCollapsed);\n            }\n        };\n        initializeComponentRef(_this);\n        _this._events = new EventGroup(_this);\n        _this.state = {\n            columnResizeDetails: undefined,\n            isAllCollapsed: _this.props.isAllCollapsed,\n            isAllSelected: !!_this.props.selection && _this.props.selection.isAllSelected(),\n        };\n        _this._onDropIndexInfo = {\n            sourceIndex: -1,\n            targetIndex: -1,\n        };\n        _this._id = getId('header');\n        _this._currentDropHintIndex = -1;\n        // The drag drop handler won't do any work until subscribe() is called,\n        // so always set it up for convenience\n        _this._dragDropHelper = new DragDropHelper({\n            selection: {\n                getSelection: function () {\n                    return;\n                },\n            },\n            minimumPixelsForDrag: _this.props.minimumPixelsForDrag,\n        });\n        return _this;\n    }\n    DetailsHeaderBase.prototype.componentDidMount = function () {\n        var selection = this.props.selection;\n        this._events.on(selection, SELECTION_CHANGE, this._onSelectionChanged);\n        // this._rootElement.current will be null in tests using react-test-renderer\n        if (this._rootElement.current) {\n            // We need to use native on this to prevent MarqueeSelection from handling the event before us.\n            this._events.on(this._rootElement.current, 'mousedown', this._onRootMouseDown);\n            this._events.on(this._rootElement.current, 'keydown', this._onRootKeyDown);\n            if (this._getColumnReorderProps()) {\n                this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement.current, this._events, this._getHeaderDragDropOptions());\n            }\n        }\n    };\n    DetailsHeaderBase.prototype.componentDidUpdate = function (prevProps) {\n        if (this._getColumnReorderProps()) {\n            if (!this._subscriptionObject && this._rootElement.current) {\n                this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement.current, this._events, this._getHeaderDragDropOptions());\n            }\n        }\n        else if (this._subscriptionObject) {\n            this._subscriptionObject.dispose();\n            delete this._subscriptionObject;\n        }\n        if (this.props !== prevProps && this._onDropIndexInfo.sourceIndex >= 0 && this._onDropIndexInfo.targetIndex >= 0) {\n            var _a = prevProps.columns, previousColumns = _a === void 0 ? NO_COLUMNS : _a;\n            var _b = this.props.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n            if (previousColumns[this._onDropIndexInfo.sourceIndex].key === columns[this._onDropIndexInfo.targetIndex].key) {\n                this._onDropIndexInfo = {\n                    sourceIndex: -1,\n                    targetIndex: -1,\n                };\n            }\n        }\n        if (this.props.isAllCollapsed !== prevProps.isAllCollapsed) {\n            this.setState({ isAllCollapsed: this.props.isAllCollapsed });\n        }\n    };\n    DetailsHeaderBase.prototype.componentWillUnmount = function () {\n        if (this._subscriptionObject) {\n            this._subscriptionObject.dispose();\n            delete this._subscriptionObject;\n        }\n        this._dragDropHelper.dispose();\n        this._events.dispose();\n    };\n    DetailsHeaderBase.prototype.render = function () {\n        var _this = this;\n        var _a = this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, ariaLabel = _a.ariaLabel, ariaLabelForToggleAllGroupsButton = _a.ariaLabelForToggleAllGroupsButton, ariaLabelForSelectAllCheckbox = _a.ariaLabelForSelectAllCheckbox, selectAllVisibility = _a.selectAllVisibility, ariaLabelForSelectionColumn = _a.ariaLabelForSelectionColumn, indentWidth = _a.indentWidth, onColumnClick = _a.onColumnClick, onColumnContextMenu = _a.onColumnContextMenu, _c = _a.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _c === void 0 ? this._onRenderColumnHeaderTooltip : _c, styles = _a.styles, selectionMode = _a.selectionMode, theme = _a.theme, onRenderDetailsCheckbox = _a.onRenderDetailsCheckbox, groupNestingDepth = _a.groupNestingDepth, useFastIcons = _a.useFastIcons, checkboxVisibility = _a.checkboxVisibility, className = _a.className;\n        var _d = this.state, isAllSelected = _d.isAllSelected, columnResizeDetails = _d.columnResizeDetails, isSizing = _d.isSizing, isAllCollapsed = _d.isAllCollapsed;\n        var showCheckbox = selectAllVisibility !== SelectAllVisibility.none;\n        var isCheckboxHidden = selectAllVisibility === SelectAllVisibility.hidden;\n        var isCheckboxAlwaysVisible = checkboxVisibility === CheckboxVisibility.always;\n        var columnReorderProps = this._getColumnReorderProps();\n        var frozenColumnCountFromStart = columnReorderProps && columnReorderProps.frozenColumnCountFromStart\n            ? columnReorderProps.frozenColumnCountFromStart\n            : 0;\n        var frozenColumnCountFromEnd = columnReorderProps && columnReorderProps.frozenColumnCountFromEnd\n            ? columnReorderProps.frozenColumnCountFromEnd\n            : 0;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            isAllSelected: isAllSelected,\n            isSelectAllHidden: selectAllVisibility === SelectAllVisibility.hidden,\n            isResizingColumn: !!columnResizeDetails && isSizing,\n            isSizing: isSizing,\n            isAllCollapsed: isAllCollapsed,\n            isCheckboxHidden: isCheckboxHidden,\n            className: className,\n        });\n        var classNames = this._classNames;\n        var IconComponent = useFastIcons ? FontIcon : Icon;\n        var hasGroupExpander = groupNestingDepth > 0;\n        var showGroupExpander = hasGroupExpander && this.props.collapseAllVisibility === CollapseAllVisibility.visible;\n        var columnIndexOffset = this._computeColumnIndexOffset(showCheckbox);\n        var isRTL = getRTL(theme);\n        return (React.createElement(FocusZone, { role: \"row\", \"aria-label\": ariaLabel, className: classNames.root, componentRef: this._rootComponent, elementRef: this._rootElement, onMouseMove: this._onRootMouseMove, \"data-automationid\": \"DetailsHeader\", direction: FocusZoneDirection.horizontal },\n            showCheckbox\n                ? [\n                    React.createElement(\"div\", { key: \"__checkbox\", className: classNames.cellIsCheck, \"aria-labelledby\": \"\".concat(this._id, \"-checkTooltip\"), onClick: !isCheckboxHidden ? this._onSelectAllClicked : undefined, role: 'columnheader' }, onRenderColumnHeaderTooltip({\n                        hostClassName: classNames.checkTooltip,\n                        id: \"\".concat(this._id, \"-checkTooltip\"),\n                        setAriaDescribedBy: false,\n                        content: ariaLabelForSelectAllCheckbox,\n                        children: (React.createElement(DetailsRowCheck, { id: \"\".concat(this._id, \"-check\"), \"aria-label\": selectionMode === SelectionMode.multiple\n                                ? ariaLabelForSelectAllCheckbox\n                                : ariaLabelForSelectionColumn, \"data-is-focusable\": !isCheckboxHidden || undefined, isHeader: true, selected: isAllSelected, anySelected: false, canSelect: !isCheckboxHidden, className: classNames.check, onRenderDetailsCheckbox: onRenderDetailsCheckbox, useFastIcons: useFastIcons, isVisible: isCheckboxAlwaysVisible })),\n                    }, this._onRenderColumnHeaderTooltip)),\n                    !this.props.onRenderColumnHeaderTooltip ? (ariaLabelForSelectAllCheckbox && !isCheckboxHidden ? (React.createElement(\"label\", { key: \"__checkboxLabel\", id: \"\".concat(this._id, \"-checkTooltip\"), className: classNames.accessibleLabel, \"aria-hidden\": true }, ariaLabelForSelectAllCheckbox)) : ariaLabelForSelectionColumn && isCheckboxHidden ? (React.createElement(\"label\", { key: \"__checkboxLabel\", id: \"\".concat(this._id, \"-checkTooltip\"), className: classNames.accessibleLabel, \"aria-hidden\": true }, ariaLabelForSelectionColumn)) : null) : null,\n                ]\n                : null,\n            showGroupExpander ? (React.createElement(\"div\", { className: classNames.cellIsGroupExpander, onClick: this._onToggleCollapseAll, \"data-is-focusable\": true, \"aria-label\": ariaLabelForToggleAllGroupsButton, \"aria-expanded\": !isAllCollapsed, role: \"columnheader\" },\n                React.createElement(IconComponent, { className: classNames.collapseButton, iconName: isRTL ? 'ChevronLeftMed' : 'ChevronRightMed' }),\n                React.createElement(\"span\", { className: classNames.accessibleLabel }, ariaLabelForToggleAllGroupsButton))) : hasGroupExpander ? (React.createElement(\"div\", { className: classNames.cellIsGroupExpander, \"data-is-focusable\": false, role: \"columnheader\" })) : null,\n            React.createElement(GroupSpacer, { indentWidth: indentWidth, role: \"gridcell\", count: groupNestingDepth - 1 }),\n            columns.map(function (column, columnIndex) {\n                var _isDraggable = columnReorderProps\n                    ? columnIndex >= frozenColumnCountFromStart && columnIndex < columns.length - frozenColumnCountFromEnd\n                    : false;\n                return [\n                    columnReorderProps &&\n                        (_isDraggable || columnIndex === columns.length - frozenColumnCountFromEnd) &&\n                        _this._renderDropHint(columnIndex),\n                    React.createElement(DetailsColumn, { column: column, styles: column.styles, key: column.key, columnIndex: columnIndexOffset + columnIndex, parentId: _this._id, isDraggable: _isDraggable, updateDragInfo: _this._updateDragInfo, dragDropHelper: _this._dragDropHelper, onColumnClick: onColumnClick, onColumnContextMenu: onColumnContextMenu, \n                        // Do not render tooltips by default, but allow for override via props.\n                        onRenderColumnHeaderTooltip: _this.props.onRenderColumnHeaderTooltip, isDropped: _this._onDropIndexInfo.targetIndex === columnIndex, cellStyleProps: _this.props.cellStyleProps, useFastIcons: useFastIcons }),\n                    _this._renderColumnDivider(columnIndex),\n                ];\n            }),\n            columnReorderProps && frozenColumnCountFromEnd === 0 && this._renderDropHint(columns.length),\n            isSizing && (React.createElement(Layer, null,\n                React.createElement(\"div\", { className: classNames.sizingOverlay, onMouseMove: this._onSizerMouseMove, onMouseUp: this._onSizerMouseUp })))));\n    };\n    /** Set focus to the active thing in the focus area. */\n    DetailsHeaderBase.prototype.focus = function () {\n        var _a;\n        return !!((_a = this._rootComponent.current) === null || _a === void 0 ? void 0 : _a.focus());\n    };\n    /**\n     * Gets column reorder props from this.props. If the calling code is part of setting up or\n     * handling drag/drop events, it's safe to assume that this method's return value is defined\n     * (because drag/drop handling will only be set up if reorder props are given).\n     */\n    DetailsHeaderBase.prototype._getColumnReorderProps = function () {\n        var _a = this.props, columnReorderOptions = _a.columnReorderOptions, columnReorderProps = _a.columnReorderProps;\n        return columnReorderProps || (columnReorderOptions && __assign(__assign({}, columnReorderOptions), { onColumnDragEnd: undefined }));\n    };\n    DetailsHeaderBase.prototype._getHeaderDragDropOptions = function () {\n        var options = {\n            selectionIndex: 1,\n            context: { data: this, index: 0 },\n            canDrag: function () { return false; },\n            canDrop: function () { return true; },\n            onDragStart: function () { return undefined; },\n            updateDropState: this._updateDroppingState,\n            onDrop: this._onDrop,\n            onDragEnd: function () { return undefined; },\n            onDragOver: this._onDragOver,\n        };\n        return options;\n    };\n    DetailsHeaderBase.prototype._isValidCurrentDropHintIndex = function () {\n        return this._currentDropHintIndex >= 0;\n    };\n    /**\n     * @returns whether or not the \"Select All\" checkbox column is hidden.\n     */\n    DetailsHeaderBase.prototype._isCheckboxColumnHidden = function () {\n        var _a = this.props, selectionMode = _a.selectionMode, checkboxVisibility = _a.checkboxVisibility;\n        return selectionMode === SelectionMode.none || checkboxVisibility === CheckboxVisibility.hidden;\n    };\n    DetailsHeaderBase.prototype._resetDropHints = function () {\n        if (this._currentDropHintIndex >= 0) {\n            this._updateDropHintElement(this._dropHintDetails[this._currentDropHintIndex].dropHintElementRef, 'none');\n            this._currentDropHintIndex = -1;\n        }\n    };\n    DetailsHeaderBase.prototype._updateDropHintElement = function (element, displayProperty) {\n        element.childNodes[1].style.display = displayProperty;\n        element.childNodes[0].style.display = displayProperty;\n    };\n    DetailsHeaderBase.prototype._isEventOnHeader = function (event) {\n        if (this._rootElement.current) {\n            var clientRect = this._rootElement.current.getBoundingClientRect();\n            if (event.clientX > clientRect.left &&\n                event.clientX < clientRect.right &&\n                event.clientY > clientRect.top &&\n                event.clientY < clientRect.bottom) {\n                return ColumnDragEndLocation.header;\n            }\n        }\n    };\n    DetailsHeaderBase.prototype._renderColumnDivider = function (columnIndex) {\n        var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n        var column = columns[columnIndex];\n        var onRenderDivider = column.onRenderDivider;\n        return onRenderDivider\n            ? onRenderDivider({ column: column, columnIndex: columnIndex }, this._renderColumnSizer)\n            : this._renderColumnSizer({ column: column, columnIndex: columnIndex });\n    };\n    DetailsHeaderBase.prototype._renderDropHint = function (dropHintIndex) {\n        var classNames = this._classNames;\n        var IconComponent = this.props.useFastIcons ? FontIcon : Icon;\n        return (React.createElement(\"div\", { key: 'dropHintKey', className: classNames.dropHintStyle, id: \"columnDropHint_\".concat(dropHintIndex) },\n            React.createElement(\"div\", { role: \"presentation\", key: \"dropHintCircleKey\", className: classNames.dropHintCaretStyle, \"data-is-focusable\": false, \"data-sizer-index\": dropHintIndex, \"aria-hidden\": true },\n                React.createElement(IconComponent, { iconName: 'CircleShapeSolid' })),\n            React.createElement(\"div\", { key: \"dropHintLineKey\", \"aria-hidden\": true, \"data-is-focusable\": false, \"data-sizer-index\": dropHintIndex, className: classNames.dropHintLineStyle })));\n    };\n    /**\n     * double click on the column sizer will auto ajust column width\n     * to fit the longest content among current rendered rows.\n     *\n     * @param columnIndex - index of the column user double clicked\n     * @param ev - mouse double click event\n     */\n    DetailsHeaderBase.prototype._onSizerDoubleClick = function (columnIndex, ev) {\n        var _a = this.props, onColumnAutoResized = _a.onColumnAutoResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n        if (onColumnAutoResized) {\n            onColumnAutoResized(columns[columnIndex], columnIndex);\n        }\n    };\n    DetailsHeaderBase.prototype._onSelectionChanged = function () {\n        var isAllSelected = !!this.props.selection && this.props.selection.isAllSelected();\n        if (this.state.isAllSelected !== isAllSelected) {\n            this.setState({\n                isAllSelected: isAllSelected,\n            });\n        }\n    };\n    DetailsHeaderBase.defaultProps = {\n        selectAllVisibility: SelectAllVisibility.visible,\n        collapseAllVisibility: CollapseAllVisibility.visible,\n        useFastIcons: true,\n    };\n    return DetailsHeaderBase;\n}(React.Component));\nexport { DetailsHeaderBase };\nfunction _liesBetween(rtl, target, left, right) {\n    return rtl ? target <= left && target >= right : target >= left && target <= right;\n}\nfunction _isBefore(rtl, a, b) {\n    return rtl ? a >= b : a <= b;\n}\nfunction _isAfter(rtl, a, b) {\n    return rtl ? a <= b : a >= b;\n}\nfunction _stopPropagation(ev) {\n    ev.stopPropagation();\n}\n//# sourceMappingURL=DetailsHeader.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsHeaderBase } from './DetailsHeader.base';\nimport { getDetailsHeaderStyles } from './DetailsHeader.styles';\nexport var DetailsHeader = styled(DetailsHeaderBase, getDetailsHeaderStyles, undefined, { scope: 'DetailsHeader' });\n//# sourceMappingURL=DetailsHeader.js.map","import { __assign } from \"tslib\";\nimport { getFocusStyle, focusClear, getGlobalClassNames, HighContrastSelector, hiddenContentStyle, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, IsFocusVisibleClassName } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as GROUP_EXPANDER_WIDTH } from '../GroupedList/GroupSpacer';\nvar GlobalClassNames = {\n    tooltipHost: 'ms-TooltipHost',\n    root: 'ms-DetailsHeader',\n    cell: 'ms-DetailsHeader-cell',\n    cellIsCheck: 'ms-DetailsHeader-cellIsCheck',\n    collapseButton: 'ms-DetailsHeader-collapseButton',\n    isCollapsed: 'is-collapsed',\n    isAllSelected: 'is-allSelected',\n    isSelectAllHidden: 'is-selectAllHidden',\n    isResizingColumn: 'is-resizingColumn',\n    cellSizer: 'ms-DetailsHeader-cellSizer',\n    isResizing: 'is-resizing',\n    dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',\n    dropHintCaretStyle: 'ms-DetailsHeader-dropHintCaretStyle',\n    dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',\n    cellTitle: 'ms-DetailsHeader-cellTitle',\n    cellName: 'ms-DetailsHeader-cellName',\n    filterChevron: 'ms-DetailsHeader-filterChevron',\n    gripperBarVertical: 'ms-DetailsColumn-gripperBarVertical',\n    checkTooltip: 'ms-DetailsHeader-checkTooltip',\n    check: 'ms-DetailsHeader-check',\n};\nexport var HEADER_HEIGHT = 42;\nexport var getCellStyles = function (props) {\n    var theme = props.theme, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n    var semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return [\n        classNames.cell,\n        getFocusStyle(theme),\n        {\n            color: semanticColors.bodyText,\n            position: 'relative',\n            display: 'inline-block',\n            boxSizing: 'border-box',\n            padding: \"0 \".concat(cellStyleProps.cellRightPadding, \"px 0 \").concat(cellStyleProps.cellLeftPadding, \"px\"),\n            lineHeight: 'inherit',\n            margin: '0',\n            height: HEADER_HEIGHT,\n            verticalAlign: 'top',\n            whiteSpace: 'nowrap',\n            textOverflow: 'ellipsis',\n            textAlign: 'left',\n        },\n    ];\n};\nexport var getDetailsHeaderStyles = function (props) {\n    var _a, _b, _c, _d;\n    var theme = props.theme, className = props.className, isAllSelected = props.isAllSelected, isResizingColumn = props.isResizingColumn, isSizing = props.isSizing, isAllCollapsed = props.isAllCollapsed, _e = props.cellStyleProps, cellStyleProps = _e === void 0 ? DEFAULT_CELL_STYLE_PROPS : _e;\n    var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var colors = {\n        iconForegroundColor: semanticColors.bodySubtext,\n        headerForegroundColor: semanticColors.bodyText,\n        headerBackgroundColor: semanticColors.bodyBackground,\n        resizerColor: palette.neutralTertiaryAlt,\n    };\n    var cellSizerFadeInStyles = {\n        opacity: 1,\n        transition: 'opacity 0.3s linear',\n    };\n    var cellStyles = getCellStyles(props);\n    return {\n        root: [\n            classNames.root,\n            fonts.small,\n            {\n                display: 'inline-block',\n                background: colors.headerBackgroundColor,\n                position: 'relative',\n                minWidth: '100%',\n                verticalAlign: 'top',\n                height: HEADER_HEIGHT,\n                lineHeight: HEADER_HEIGHT,\n                whiteSpace: 'nowrap',\n                boxSizing: 'content-box',\n                paddingBottom: '1px',\n                paddingTop: '16px',\n                borderBottom: \"1px solid \".concat(semanticColors.bodyDivider),\n                cursor: 'default',\n                userSelect: 'none',\n                selectors: (_a = {},\n                    _a[\"&:hover .\".concat(classNames.check)] = {\n                        opacity: 1,\n                    },\n                    _a[\"& .\".concat(classNames.tooltipHost, \" .\").concat(classNames.checkTooltip)] = {\n                        display: 'block',\n                    },\n                    _a),\n            },\n            isAllSelected && classNames.isAllSelected,\n            isResizingColumn && classNames.isResizingColumn,\n            className,\n        ],\n        check: [\n            classNames.check,\n            {\n                height: HEADER_HEIGHT,\n            },\n            {\n                selectors: (_b = {},\n                    _b[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n                        opacity: 1,\n                    },\n                    _b),\n            },\n        ],\n        cellWrapperPadded: {\n            paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding,\n        },\n        cellIsCheck: [\n            cellStyles,\n            classNames.cellIsCheck,\n            {\n                position: 'relative',\n                padding: 0,\n                margin: 0,\n                display: 'inline-flex',\n                alignItems: 'center',\n                border: 'none',\n            },\n            isAllSelected && {\n                opacity: 1,\n            },\n        ],\n        cellIsGroupExpander: [\n            cellStyles,\n            {\n                display: 'inline-flex',\n                alignItems: 'center',\n                justifyContent: 'center',\n                fontSize: fonts.small.fontSize,\n                padding: 0,\n                border: 'none',\n                width: GROUP_EXPANDER_WIDTH,\n                color: palette.neutralSecondary,\n                selectors: {\n                    ':hover': {\n                        backgroundColor: palette.neutralLighter,\n                    },\n                    ':active': {\n                        backgroundColor: palette.neutralLight,\n                    },\n                },\n            },\n        ],\n        cellIsActionable: {\n            selectors: {\n                ':hover': {\n                    color: semanticColors.bodyText,\n                    background: semanticColors.listHeaderBackgroundHovered,\n                },\n                ':active': {\n                    background: semanticColors.listHeaderBackgroundPressed,\n                },\n            },\n        },\n        cellIsEmpty: {\n            textOverflow: 'clip',\n        },\n        cellSizer: [\n            classNames.cellSizer,\n            focusClear(),\n            {\n                display: 'inline-block',\n                position: 'relative',\n                cursor: 'ew-resize',\n                bottom: 0,\n                top: 0,\n                overflow: 'hidden',\n                height: 'inherit',\n                background: 'transparent',\n                zIndex: 1,\n                width: 16,\n                selectors: (_c = {\n                        ':after': {\n                            content: '\"\"',\n                            position: 'absolute',\n                            top: 0,\n                            bottom: 0,\n                            width: 1,\n                            background: colors.resizerColor,\n                            opacity: 0,\n                            left: '50%',\n                        },\n                        ':focus:after': cellSizerFadeInStyles,\n                        ':hover:after': cellSizerFadeInStyles\n                    },\n                    _c[\"&.\".concat(classNames.isResizing, \":after\")] = [\n                        cellSizerFadeInStyles,\n                        {\n                            boxShadow: '0 0 5px 0 rgba(0, 0, 0, 0.4)',\n                        },\n                    ],\n                    _c),\n            },\n        ],\n        cellIsResizing: classNames.isResizing,\n        cellSizerStart: {\n            margin: '0 -8px',\n        },\n        cellSizerEnd: {\n            margin: 0,\n            marginLeft: -16,\n        },\n        collapseButton: [\n            classNames.collapseButton,\n            {\n                transformOrigin: '50% 50%',\n                transition: 'transform .1s linear',\n            },\n            isAllCollapsed\n                ? [\n                    classNames.isCollapsed,\n                    {\n                        transform: 'rotate(0deg)',\n                    },\n                ]\n                : {\n                    transform: getRTL(theme) ? 'rotate(-90deg)' : 'rotate(90deg)',\n                },\n        ],\n        checkTooltip: classNames.checkTooltip,\n        sizingOverlay: isSizing && {\n            position: 'absolute',\n            left: 0,\n            top: 0,\n            right: 0,\n            bottom: 0,\n            cursor: 'ew-resize',\n            background: 'rgba(255, 255, 255, 0)',\n            selectors: (_d = {},\n                _d[HighContrastSelector] = __assign({ background: 'transparent' }, getHighContrastNoAdjustStyle()),\n                _d),\n        },\n        accessibleLabel: hiddenContentStyle,\n        dropHintCircleStyle: [\n            classNames.dropHintCircleStyle,\n            {\n                display: 'inline-block',\n                visibility: 'hidden',\n                position: 'absolute',\n                bottom: 0,\n                height: 9,\n                width: 9,\n                borderRadius: '50%',\n                marginLeft: -5,\n                top: 34,\n                overflow: 'visible',\n                zIndex: 10,\n                border: \"1px solid \".concat(palette.themePrimary),\n                background: palette.white,\n            },\n        ],\n        dropHintCaretStyle: [\n            classNames.dropHintCaretStyle,\n            {\n                display: 'none',\n                position: 'absolute',\n                top: -28,\n                left: -6.5,\n                fontSize: fonts.medium.fontSize,\n                color: palette.themePrimary,\n                overflow: 'visible',\n                zIndex: 10,\n            },\n        ],\n        dropHintLineStyle: [\n            classNames.dropHintLineStyle,\n            {\n                display: 'none',\n                position: 'absolute',\n                bottom: 0,\n                top: 0,\n                overflow: 'hidden',\n                height: 42,\n                width: 1,\n                background: palette.themePrimary,\n                zIndex: 10,\n            },\n        ],\n        dropHintStyle: {\n            display: 'inline-block',\n            position: 'absolute',\n        },\n    };\n};\n//# sourceMappingURL=DetailsHeader.styles.js.map","/**\n * {@docCategory DetailsList}\n */\nexport var SelectAllVisibility;\n(function (SelectAllVisibility) {\n    SelectAllVisibility[SelectAllVisibility[\"none\"] = 0] = \"none\";\n    SelectAllVisibility[SelectAllVisibility[\"hidden\"] = 1] = \"hidden\";\n    SelectAllVisibility[SelectAllVisibility[\"visible\"] = 2] = \"visible\";\n})(SelectAllVisibility || (SelectAllVisibility = {}));\n//# sourceMappingURL=DetailsHeader.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { findScrollableParent, getRect, getWindow, Async, EventGroup } from '../../Utilities';\nvar RESIZE_DELAY = 500;\nvar MAX_RESIZE_ATTEMPTS = 3;\n/**\n * A decorator to update decorated component on viewport or window resize events.\n *\n * @param ComposedComponent - decorated React component reference.\n */\nexport function withViewport(ComposedComponent) {\n    return /** @class */ (function (_super) {\n        __extends(WithViewportComponent, _super);\n        function WithViewportComponent(props) {\n            var _this = _super.call(this, props) || this;\n            _this._root = React.createRef();\n            _this._registerResizeObserver = function () {\n                var win = getWindow(_this._root.current);\n                _this._viewportResizeObserver = new win.ResizeObserver(_this._onAsyncResize);\n                _this._viewportResizeObserver.observe(_this._root.current);\n            };\n            _this._unregisterResizeObserver = function () {\n                if (_this._viewportResizeObserver) {\n                    _this._viewportResizeObserver.disconnect();\n                    delete _this._viewportResizeObserver;\n                }\n            };\n            /* Note: using lambda here because decorators don't seem to work in decorators. */\n            _this._updateViewport = function (withForceUpdate) {\n                var viewport = _this.state.viewport;\n                var viewportElement = _this._root.current;\n                var scrollElement = findScrollableParent(viewportElement);\n                var scrollRect = getRect(scrollElement);\n                var clientRect = getRect(viewportElement);\n                var updateComponent = function () {\n                    if (withForceUpdate && _this._composedComponentInstance) {\n                        _this._composedComponentInstance.forceUpdate();\n                    }\n                };\n                var isSizeChanged = (clientRect && clientRect.width) !== viewport.width || (scrollRect && scrollRect.height) !== viewport.height;\n                if (isSizeChanged && _this._resizeAttempts < MAX_RESIZE_ATTEMPTS && clientRect && scrollRect) {\n                    _this._resizeAttempts++;\n                    _this.setState({\n                        viewport: {\n                            width: clientRect.width,\n                            height: scrollRect.height,\n                        },\n                    }, function () {\n                        _this._updateViewport(withForceUpdate);\n                    });\n                }\n                else {\n                    _this._resizeAttempts = 0;\n                    updateComponent();\n                }\n            };\n            _this._async = new Async(_this);\n            _this._events = new EventGroup(_this);\n            _this._resizeAttempts = 0;\n            _this.state = {\n                viewport: {\n                    width: 0,\n                    height: 0,\n                },\n            };\n            return _this;\n        }\n        WithViewportComponent.prototype.componentDidMount = function () {\n            var _this = this;\n            var _a = this.props, delayFirstMeasure = _a.delayFirstMeasure, disableResizeObserver = _a.disableResizeObserver, skipViewportMeasures = _a.skipViewportMeasures;\n            var win = getWindow(this._root.current);\n            this._onAsyncResize = this._async.debounce(this._onAsyncResize, RESIZE_DELAY, {\n                leading: false,\n            });\n            if (!skipViewportMeasures) {\n                if (!disableResizeObserver && this._isResizeObserverAvailable()) {\n                    this._registerResizeObserver();\n                }\n                else {\n                    this._events.on(win, 'resize', this._onAsyncResize);\n                }\n                if (delayFirstMeasure) {\n                    this._async.setTimeout(function () {\n                        _this._updateViewport();\n                    }, RESIZE_DELAY);\n                }\n                else {\n                    this._updateViewport();\n                }\n            }\n        };\n        WithViewportComponent.prototype.componentDidUpdate = function (previousProps) {\n            var previousSkipViewportMeasures = previousProps.skipViewportMeasures;\n            var _a = this.props, disableResizeObserver = _a.disableResizeObserver, skipViewportMeasures = _a.skipViewportMeasures;\n            var win = getWindow(this._root.current);\n            if (skipViewportMeasures !== previousSkipViewportMeasures) {\n                if (!skipViewportMeasures) {\n                    if (!disableResizeObserver && this._isResizeObserverAvailable()) {\n                        if (!this._viewportResizeObserver) {\n                            this._registerResizeObserver();\n                        }\n                    }\n                    else {\n                        this._events.on(win, 'resize', this._onAsyncResize);\n                    }\n                    this._updateViewport();\n                }\n                else {\n                    this._unregisterResizeObserver();\n                    this._events.off(win, 'resize', this._onAsyncResize);\n                }\n            }\n        };\n        WithViewportComponent.prototype.componentWillUnmount = function () {\n            this._events.dispose();\n            this._async.dispose();\n            this._unregisterResizeObserver();\n        };\n        WithViewportComponent.prototype.render = function () {\n            var viewport = this.state.viewport;\n            var newViewport = viewport.width > 0 && viewport.height > 0 ? viewport : undefined;\n            return (React.createElement(\"div\", { className: \"ms-Viewport\", ref: this._root, style: { minWidth: 1, minHeight: 1 } },\n                React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, viewport: newViewport }, this.props))));\n        };\n        WithViewportComponent.prototype.forceUpdate = function () {\n            this._updateViewport(true);\n        };\n        WithViewportComponent.prototype._onAsyncResize = function () {\n            this._updateViewport();\n        };\n        WithViewportComponent.prototype._isResizeObserverAvailable = function () {\n            var win = getWindow(this._root.current);\n            return win && win.ResizeObserver;\n        };\n        return WithViewportComponent;\n    }(BaseDecorator));\n}\n//# sourceMappingURL=withViewport.js.map","import { __spreadArray } from \"tslib\";\n/**\n * Takes an array of groups and returns a count of the groups and all descendant groups.\n * @param groups - The array of groups to count.\n */\nexport var GetGroupCount = function (groups) {\n    var total = 0;\n    if (groups) {\n        var remainingGroups = __spreadArray([], groups, true);\n        var currentGroup = void 0;\n        while (remainingGroups && remainingGroups.length > 0) {\n            ++total;\n            currentGroup = remainingGroups.pop();\n            if (currentGroup && currentGroup.children) {\n                remainingGroups.push.apply(remainingGroups, currentGroup.children);\n            }\n        }\n    }\n    return total;\n};\n//# sourceMappingURL=GroupedListUtility.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, FocusRects, Async, KeyCodes, elementContains, getRTLSafeKeyCode, classNamesFunction, css, memoizeFunction, warnMutuallyExclusive, } from '../../Utilities';\nimport { CheckboxVisibility, ColumnActionsMode, ConstrainMode, DetailsListLayoutMode, ColumnDragEndLocation, } from '../DetailsList/DetailsList.types';\nimport { DetailsHeader } from '../DetailsList/DetailsHeader';\nimport { SelectAllVisibility } from '../DetailsList/DetailsHeader.types';\nimport { DetailsRow } from '../DetailsList/DetailsRow';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Selection, SelectionMode, SelectionZone } from '../../Selection';\nimport { DragDropHelper } from '../../DragDrop';\nimport { GroupedList } from '../../GroupedList';\nimport { List } from '../../List';\nimport { withViewport } from '../../utilities/decorators/withViewport';\nimport { GetGroupCount } from '../../utilities/groupedList/GroupedListUtility';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nimport { CHECK_CELL_WIDTH as CHECKBOX_WIDTH } from './DetailsRowCheck.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as GROUP_EXPAND_WIDTH } from '../GroupedList/GroupSpacer';\nimport { composeComponentAs, composeRenderFunction, getId } from '@fluentui/utilities';\nimport { useConst } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'DetailsList';\nvar MIN_COLUMN_WIDTH = 100; // this is the global min width\nvar DEFAULT_RENDERED_WINDOWS_AHEAD = 2;\nvar DEFAULT_RENDERED_WINDOWS_BEHIND = 2;\nvar rowFocusZoneAddTabIndexProps = { tabIndex: 0 };\nvar rowFocusZoneNoTabIndexProps = {};\n/**\n * Hooks-based implementation of DetailsList.\n * Since many existing consumers of DetailsList expect `ref` to return a `DetailsList`,\n * this inner component handles rendering while the outer maintains compatibility.\n */\nvar DetailsListInner = function (props) {\n    var selection = props.selection;\n    var ariaLabelForListHeader = props.ariaLabelForListHeader, ariaLabelForSelectAllCheckbox = props.ariaLabelForSelectAllCheckbox, ariaLabelForSelectionColumn = props.ariaLabelForSelectionColumn, className = props.className, checkboxVisibility = props.checkboxVisibility, compact = props.compact, constrainMode = props.constrainMode, dragDropEvents = props.dragDropEvents, groups = props.groups, groupProps = props.groupProps, indentWidth = props.indentWidth, items = props.items, isPlaceholderData = props.isPlaceholderData, isHeaderVisible = props.isHeaderVisible, layoutMode = props.layoutMode, onItemInvoked = props.onItemInvoked, onItemContextMenu = props.onItemContextMenu, onColumnHeaderClick = props.onColumnHeaderClick, onColumnHeaderContextMenu = props.onColumnHeaderContextMenu, _a = props.selectionMode, selectionMode = _a === void 0 ? selection.mode : _a, selectionPreservedOnEmptyClick = props.selectionPreservedOnEmptyClick, selectionZoneProps = props.selectionZoneProps, \n    // eslint-disable-next-line deprecation/deprecation\n    ariaLabel = props.ariaLabel, ariaLabelForGrid = props.ariaLabelForGrid, rowElementEventMap = props.rowElementEventMap, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.shouldApplyApplicationRole, \n    // eslint-disable-next-line deprecation/deprecation\n    shouldApplyApplicationRole = _b === void 0 ? false : _b, getKey = props.getKey, listProps = props.listProps, usePageCache = props.usePageCache, onShouldVirtualize = props.onShouldVirtualize, viewport = props.viewport, minimumPixelsForDrag = props.minimumPixelsForDrag, getGroupHeight = props.getGroupHeight, styles = props.styles, theme = props.theme, _c = props.cellStyleProps, cellStyleProps = _c === void 0 ? DEFAULT_CELL_STYLE_PROPS : _c, onRenderCheckbox = props.onRenderCheckbox, useFastIcons = props.useFastIcons, dragDropHelper = props.dragDropHelper, adjustedColumns = props.adjustedColumns, isCollapsed = props.isCollapsed, isSizing = props.isSizing, isSomeGroupExpanded = props.isSomeGroupExpanded, version = props.version, rootRef = props.rootRef, listRef = props.listRef, focusZoneRef = props.focusZoneRef, columnReorderOptions = props.columnReorderOptions, groupedListRef = props.groupedListRef, headerRef = props.headerRef, onGroupExpandStateChanged = props.onGroupExpandStateChanged, onColumnIsSizingChanged = props.onColumnIsSizingChanged, onRowDidMount = props.onRowDidMount, onRowWillUnmount = props.onRowWillUnmount, disableSelectionZone = props.disableSelectionZone, _d = props.isSelectedOnFocus, isSelectedOnFocus = _d === void 0 ? true : _d, onColumnResized = props.onColumnResized, onColumnAutoResized = props.onColumnAutoResized, onToggleCollapse = props.onToggleCollapse, onActiveRowChanged = props.onActiveRowChanged, onBlur = props.onBlur, eventsToRegister = props.rowElementEventMap, onRenderMissingItem = props.onRenderMissingItem, onRenderItemColumn = props.onRenderItemColumn, onRenderField = props.onRenderField, getCellValueKey = props.getCellValueKey, getRowAriaLabel = props.getRowAriaLabel, getRowAriaDescribedBy = props.getRowAriaDescribedBy, checkButtonAriaLabel = props.checkButtonAriaLabel, checkButtonGroupAriaLabel = props.checkButtonGroupAriaLabel, checkboxCellClassName = props.checkboxCellClassName, useReducedRowRenderer = props.useReducedRowRenderer, enableUpdateAnimations = props.enableUpdateAnimations, enterModalSelectionOnTouch = props.enterModalSelectionOnTouch, onRenderDefaultRow = props.onRenderDefaultRow, selectionZoneRef = props.selectionZoneRef, focusZoneProps = props.focusZoneProps;\n    var defaultRole = 'grid';\n    var role = props.role ? props.role : defaultRole;\n    var rowId = getId('row');\n    var groupNestingDepth = getGroupNestingDepth(groups);\n    var groupedDetailsListIndexMap = useGroupedDetailsListIndexMap(groups);\n    var additionalListProps = React.useMemo(function () {\n        return __assign({ renderedWindowsAhead: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_AHEAD, renderedWindowsBehind: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_BEHIND, getKey: getKey, version: version }, listProps);\n    }, [isSizing, getKey, version, listProps]);\n    var selectAllVisibility = SelectAllVisibility.none; // for SelectionMode.none\n    if (selectionMode === SelectionMode.single) {\n        selectAllVisibility = SelectAllVisibility.hidden;\n    }\n    if (selectionMode === SelectionMode.multiple) {\n        // if isCollapsedGroupSelectVisible is false, disable select all when the list has all collapsed groups\n        var isCollapsedGroupSelectVisible = groupProps && groupProps.headerProps && groupProps.headerProps.isCollapsedGroupSelectVisible;\n        if (isCollapsedGroupSelectVisible === undefined) {\n            isCollapsedGroupSelectVisible = true;\n        }\n        var isSelectAllVisible = isCollapsedGroupSelectVisible || !groups || isSomeGroupExpanded;\n        selectAllVisibility = isSelectAllVisible ? SelectAllVisibility.visible : SelectAllVisibility.hidden;\n    }\n    if (checkboxVisibility === CheckboxVisibility.hidden) {\n        selectAllVisibility = SelectAllVisibility.none;\n    }\n    var defaultOnRenderDetailsHeader = React.useCallback(function (detailsHeaderProps) {\n        return React.createElement(DetailsHeader, __assign({}, detailsHeaderProps));\n    }, []);\n    var defaultOnRenderDetailsFooter = React.useCallback(function () {\n        return null;\n    }, []);\n    var propsOnRenderDetailsHeader = props.onRenderDetailsHeader;\n    var onRenderDetailsHeader = React.useMemo(function () {\n        return propsOnRenderDetailsHeader\n            ? composeRenderFunction(propsOnRenderDetailsHeader, defaultOnRenderDetailsHeader)\n            : defaultOnRenderDetailsHeader;\n    }, [propsOnRenderDetailsHeader, defaultOnRenderDetailsHeader]);\n    var propsOnRenderDetailsFooter = props.onRenderDetailsFooter;\n    var onRenderDetailsFooter = React.useMemo(function () {\n        return propsOnRenderDetailsFooter\n            ? composeRenderFunction(propsOnRenderDetailsFooter, defaultOnRenderDetailsFooter)\n            : defaultOnRenderDetailsFooter;\n    }, [propsOnRenderDetailsFooter, defaultOnRenderDetailsFooter]);\n    var detailsFooterProps = React.useMemo(function () {\n        return {\n            columns: adjustedColumns,\n            groupNestingDepth: groupNestingDepth,\n            selection: selection,\n            selectionMode: selectionMode,\n            viewport: viewport,\n            checkboxVisibility: checkboxVisibility,\n            indentWidth: indentWidth,\n            cellStyleProps: cellStyleProps,\n        };\n    }, [\n        adjustedColumns,\n        groupNestingDepth,\n        selection,\n        selectionMode,\n        viewport,\n        checkboxVisibility,\n        indentWidth,\n        cellStyleProps,\n    ]);\n    var columnReorderOnDragEnd = columnReorderOptions && columnReorderOptions.onDragEnd;\n    var onColumnDragEnd = React.useCallback(function (_a, event) {\n        var dropLocation = _a.dropLocation;\n        var finalDropLocation = ColumnDragEndLocation.outside;\n        if (columnReorderOnDragEnd) {\n            if (dropLocation && dropLocation !== ColumnDragEndLocation.header) {\n                finalDropLocation = dropLocation;\n            }\n            else if (rootRef.current) {\n                var clientRect = rootRef.current.getBoundingClientRect();\n                if (event.clientX > clientRect.left &&\n                    event.clientX < clientRect.right &&\n                    event.clientY > clientRect.top &&\n                    event.clientY < clientRect.bottom) {\n                    finalDropLocation = ColumnDragEndLocation.surface;\n                }\n            }\n            columnReorderOnDragEnd(finalDropLocation);\n        }\n    }, [columnReorderOnDragEnd, rootRef]);\n    var columnReorderProps = React.useMemo(function () {\n        if (columnReorderOptions) {\n            return __assign(__assign({}, columnReorderOptions), { onColumnDragEnd: onColumnDragEnd });\n        }\n    }, [columnReorderOptions, onColumnDragEnd]);\n    var rowCount = (isHeaderVisible ? 1 : 0) +\n        (props.onRenderDetailsFooter ? 1 : 0) +\n        GetGroupCount(groups) +\n        (items ? items.length : 0);\n    var colCount = (selectAllVisibility !== SelectAllVisibility.none ? 1 : 0) +\n        (adjustedColumns ? adjustedColumns.length : 0) +\n        (groups ? 1 : 0);\n    var classNames = React.useMemo(function () {\n        return getClassNames(styles, {\n            theme: theme,\n            compact: compact,\n            isFixed: layoutMode === DetailsListLayoutMode.fixedColumns,\n            isHorizontalConstrained: constrainMode === ConstrainMode.horizontalConstrained,\n            className: className,\n        });\n    }, [styles, theme, compact, layoutMode, constrainMode, className]);\n    var onRenderDetailsGroupFooter = groupProps && groupProps.onRenderFooter;\n    var finalOnRenderDetailsGroupFooter = React.useMemo(function () {\n        return onRenderDetailsGroupFooter\n            ? function (groupFooterProps, defaultRender) {\n                return onRenderDetailsGroupFooter(__assign(__assign({}, groupFooterProps), { columns: adjustedColumns, groupNestingDepth: groupNestingDepth, indentWidth: indentWidth, selection: selection, selectionMode: selectionMode, viewport: viewport, checkboxVisibility: checkboxVisibility, cellStyleProps: cellStyleProps }), defaultRender);\n            }\n            : undefined;\n    }, [\n        onRenderDetailsGroupFooter,\n        adjustedColumns,\n        groupNestingDepth,\n        indentWidth,\n        selection,\n        selectionMode,\n        viewport,\n        checkboxVisibility,\n        cellStyleProps,\n    ]);\n    var onRenderDetailsGroupHeader = groupProps && groupProps.onRenderHeader;\n    var finalOnRenderDetailsGroupHeader = React.useMemo(function () {\n        return onRenderDetailsGroupHeader\n            ? function (groupHeaderProps, defaultRender) {\n                var _a, _b;\n                var groupIndex = groupHeaderProps.groupIndex;\n                var groupKey = groupIndex !== undefined ? (_b = (_a = groupHeaderProps.groups) === null || _a === void 0 ? void 0 : _a[groupIndex]) === null || _b === void 0 ? void 0 : _b.key : undefined;\n                var totalRowCount = groupKey !== undefined && groupedDetailsListIndexMap[groupKey]\n                    ? groupedDetailsListIndexMap[groupKey].totalRowCount\n                    : 0;\n                return onRenderDetailsGroupHeader(__assign(__assign({}, groupHeaderProps), { columns: adjustedColumns, groupNestingDepth: groupNestingDepth, indentWidth: indentWidth, selection: selection, selectionMode: checkboxVisibility !== CheckboxVisibility.hidden ? selectionMode : SelectionMode.none, viewport: viewport, checkboxVisibility: checkboxVisibility, cellStyleProps: cellStyleProps, ariaColSpan: adjustedColumns.length, ariaLevel: undefined, ariaPosInSet: undefined, ariaSetSize: undefined, ariaRowCount: undefined, ariaRowIndex: groupIndex !== undefined ? totalRowCount + (isHeaderVisible ? 1 : 0) : undefined }), defaultRender);\n            }\n            : function (groupHeaderProps, defaultRender) {\n                var _a, _b;\n                var groupIndex = groupHeaderProps.groupIndex;\n                var groupKey = groupIndex !== undefined ? (_b = (_a = groupHeaderProps.groups) === null || _a === void 0 ? void 0 : _a[groupIndex]) === null || _b === void 0 ? void 0 : _b.key : undefined;\n                var totalRowCount = groupKey !== undefined && groupedDetailsListIndexMap[groupKey]\n                    ? groupedDetailsListIndexMap[groupKey].totalRowCount\n                    : 0;\n                return defaultRender(__assign(__assign({}, groupHeaderProps), { ariaColSpan: adjustedColumns.length, ariaLevel: undefined, ariaPosInSet: undefined, ariaSetSize: undefined, ariaRowCount: undefined, ariaRowIndex: groupIndex !== undefined ? totalRowCount + (isHeaderVisible ? 1 : 0) : undefined }));\n            };\n    }, [\n        onRenderDetailsGroupHeader,\n        adjustedColumns,\n        groupNestingDepth,\n        indentWidth,\n        isHeaderVisible,\n        selection,\n        selectionMode,\n        viewport,\n        checkboxVisibility,\n        cellStyleProps,\n        groupedDetailsListIndexMap,\n    ]);\n    var finalGroupProps = React.useMemo(function () {\n        var _a;\n        return __assign(__assign({}, groupProps), { role: role === defaultRole ? 'rowgroup' : 'presentation', onRenderFooter: finalOnRenderDetailsGroupFooter, onRenderHeader: finalOnRenderDetailsGroupHeader, \n            // pass through custom group header checkbox label\n            headerProps: __assign(__assign({}, groupProps === null || groupProps === void 0 ? void 0 : groupProps.headerProps), { selectAllButtonProps: __assign({ 'aria-label': checkButtonGroupAriaLabel }, (_a = groupProps === null || groupProps === void 0 ? void 0 : groupProps.headerProps) === null || _a === void 0 ? void 0 : _a.selectAllButtonProps) }) });\n    }, [groupProps, finalOnRenderDetailsGroupFooter, finalOnRenderDetailsGroupHeader, checkButtonGroupAriaLabel, role]);\n    var sumColumnWidths = useConst(function () {\n        return memoizeFunction(function (columns) {\n            var totalWidth = 0;\n            columns.forEach(function (column) { return (totalWidth += column.calculatedWidth || column.minWidth); });\n            return totalWidth;\n        });\n    });\n    var collapseAllVisibility = groupProps && groupProps.collapseAllVisibility;\n    var rowWidth = React.useMemo(function () {\n        return sumColumnWidths(adjustedColumns);\n    }, [adjustedColumns, sumColumnWidths]);\n    var onRenderCell = React.useCallback(function (nestingDepth, item, index, group) {\n        var finalOnRenderRow = props.onRenderRow\n            ? composeRenderFunction(props.onRenderRow, onRenderDefaultRow)\n            : onRenderDefaultRow;\n        var groupKey = group ? group.key : undefined;\n        var numOfGroupHeadersBeforeItem = groupKey && groupedDetailsListIndexMap[groupKey]\n            ? groupedDetailsListIndexMap[groupKey].numOfGroupHeadersBeforeItem\n            : 0;\n        var rowRole = role === defaultRole ? undefined : 'presentation';\n        // add tabindex=\"0\" to first row if no header exists, to ensure the focuszone is in the tab order\n        var rowFocusZoneProps = isHeaderVisible || index > 0 ? rowFocusZoneNoTabIndexProps : rowFocusZoneAddTabIndexProps;\n        var rowProps = {\n            item: item,\n            itemIndex: index,\n            flatIndexOffset: (isHeaderVisible ? 2 : 1) + numOfGroupHeadersBeforeItem,\n            compact: compact,\n            columns: adjustedColumns,\n            groupNestingDepth: nestingDepth,\n            id: \"\".concat(rowId, \"-\").concat(index),\n            selectionMode: selectionMode,\n            selection: selection,\n            onDidMount: onRowDidMount,\n            onWillUnmount: onRowWillUnmount,\n            onRenderItemColumn: onRenderItemColumn,\n            onRenderField: onRenderField,\n            getCellValueKey: getCellValueKey,\n            eventsToRegister: eventsToRegister,\n            dragDropEvents: dragDropEvents,\n            dragDropHelper: dragDropHelper,\n            viewport: viewport,\n            checkboxVisibility: checkboxVisibility,\n            collapseAllVisibility: collapseAllVisibility,\n            getRowAriaLabel: getRowAriaLabel,\n            getRowAriaDescribedBy: getRowAriaDescribedBy,\n            checkButtonAriaLabel: checkButtonAriaLabel,\n            checkboxCellClassName: checkboxCellClassName,\n            useReducedRowRenderer: useReducedRowRenderer,\n            indentWidth: indentWidth,\n            cellStyleProps: cellStyleProps,\n            onRenderDetailsCheckbox: onRenderCheckbox,\n            enableUpdateAnimations: enableUpdateAnimations,\n            rowWidth: rowWidth,\n            useFastIcons: useFastIcons,\n            role: rowRole,\n            isGridRow: true,\n            focusZoneProps: rowFocusZoneProps,\n        };\n        if (!item) {\n            if (onRenderMissingItem) {\n                return onRenderMissingItem(index, rowProps);\n            }\n            return null;\n        }\n        return finalOnRenderRow(rowProps);\n    }, [\n        compact,\n        adjustedColumns,\n        selectionMode,\n        selection,\n        rowId,\n        onRowDidMount,\n        onRowWillUnmount,\n        onRenderItemColumn,\n        onRenderField,\n        getCellValueKey,\n        eventsToRegister,\n        dragDropEvents,\n        dragDropHelper,\n        viewport,\n        checkboxVisibility,\n        collapseAllVisibility,\n        getRowAriaLabel,\n        getRowAriaDescribedBy,\n        isHeaderVisible,\n        checkButtonAriaLabel,\n        checkboxCellClassName,\n        useReducedRowRenderer,\n        indentWidth,\n        cellStyleProps,\n        onRenderCheckbox,\n        enableUpdateAnimations,\n        useFastIcons,\n        onRenderDefaultRow,\n        onRenderMissingItem,\n        props.onRenderRow,\n        rowWidth,\n        role,\n        groupedDetailsListIndexMap,\n    ]);\n    var onRenderListCell = React.useCallback(function (nestingDepth) {\n        return function (item, itemIndex) {\n            return onRenderCell(nestingDepth, item, itemIndex);\n        };\n    }, [onRenderCell]);\n    var isRightArrow = React.useCallback(function (event) {\n        // eslint-disable-next-line deprecation/deprecation\n        return event.which === getRTLSafeKeyCode(KeyCodes.right, theme);\n    }, [theme]);\n    var focusZoneInnerProps = __assign(__assign({}, focusZoneProps), { componentRef: focusZoneProps && focusZoneProps.componentRef ? focusZoneProps.componentRef : focusZoneRef, className: focusZoneProps && focusZoneProps.className\n            ? css(classNames.focusZone, focusZoneProps.className)\n            : classNames.focusZone, direction: focusZoneProps ? focusZoneProps.direction : FocusZoneDirection.vertical, shouldEnterInnerZone: focusZoneProps && focusZoneProps.shouldEnterInnerZone ? focusZoneProps.shouldEnterInnerZone : isRightArrow, onActiveElementChanged: focusZoneProps && focusZoneProps.onActiveElementChanged\n            ? focusZoneProps.onActiveElementChanged\n            : onActiveRowChanged, shouldRaiseClicksOnEnter: false, onBlur: focusZoneProps && focusZoneProps.onBlur ? focusZoneProps.onBlur : onBlur });\n    var FinalGroupedList = groups && (groupProps === null || groupProps === void 0 ? void 0 : groupProps.groupedListAs) ? composeComponentAs(groupProps.groupedListAs, GroupedList) : GroupedList;\n    var list = groups ? (React.createElement(FinalGroupedList, { focusZoneProps: focusZoneInnerProps, componentRef: groupedListRef, groups: groups, groupProps: finalGroupProps, items: items, onRenderCell: onRenderCell, role: \"presentation\", selection: selection, selectionMode: checkboxVisibility !== CheckboxVisibility.hidden ? selectionMode : SelectionMode.none, dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: rowElementEventMap, listProps: additionalListProps, onGroupExpandStateChanged: onGroupExpandStateChanged, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, getGroupHeight: getGroupHeight, compact: compact })) : (React.createElement(FocusZone, __assign({}, focusZoneInnerProps),\n        React.createElement(List, __assign({ ref: listRef, role: \"presentation\", items: items, onRenderCell: onRenderListCell(0), usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize }, additionalListProps))));\n    var onHeaderKeyDown = React.useCallback(function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.down) {\n            if (focusZoneRef.current && focusZoneRef.current.focus()) {\n                // select the first item in list after down arrow key event\n                // only if nothing was selected; otherwise start with the already-selected item\n                if (isSelectedOnFocus && selection.getSelectedIndices().length === 0) {\n                    selection.setIndexSelected(0, true, false);\n                }\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        }\n    }, [selection, focusZoneRef, isSelectedOnFocus]);\n    var onContentKeyDown = React.useCallback(function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.up && !ev.altKey) {\n            if (headerRef.current && headerRef.current.focus()) {\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        }\n    }, [headerRef]);\n    return (React.createElement(\"div\", __assign({ ref: rootRef, className: classNames.root, \"data-automationid\": \"DetailsList\", \"data-is-scrollable\": \"false\" }, (shouldApplyApplicationRole ? { role: 'application' } : {})),\n        React.createElement(FocusRects, null),\n        React.createElement(\"div\", { role: role, \"aria-label\": ariaLabelForGrid || ariaLabel, \"aria-rowcount\": isPlaceholderData ? 0 : rowCount, \"aria-colcount\": colCount, \"aria-busy\": isPlaceholderData },\n            React.createElement(\"div\", { onKeyDown: onHeaderKeyDown, role: \"presentation\", className: classNames.headerWrapper }, isHeaderVisible &&\n                onRenderDetailsHeader({\n                    componentRef: headerRef,\n                    selectionMode: selectionMode,\n                    layoutMode: layoutMode,\n                    selection: selection,\n                    columns: adjustedColumns,\n                    onColumnClick: onColumnHeaderClick,\n                    onColumnContextMenu: onColumnHeaderContextMenu,\n                    onColumnResized: onColumnResized,\n                    onColumnIsSizingChanged: onColumnIsSizingChanged,\n                    onColumnAutoResized: onColumnAutoResized,\n                    groupNestingDepth: groupNestingDepth,\n                    isAllCollapsed: isCollapsed,\n                    onToggleCollapseAll: onToggleCollapse,\n                    ariaLabel: ariaLabelForListHeader,\n                    ariaLabelForSelectAllCheckbox: ariaLabelForSelectAllCheckbox,\n                    ariaLabelForSelectionColumn: ariaLabelForSelectionColumn,\n                    selectAllVisibility: selectAllVisibility,\n                    collapseAllVisibility: groupProps && groupProps.collapseAllVisibility,\n                    viewport: viewport,\n                    columnReorderProps: columnReorderProps,\n                    minimumPixelsForDrag: minimumPixelsForDrag,\n                    cellStyleProps: cellStyleProps,\n                    checkboxVisibility: checkboxVisibility,\n                    indentWidth: indentWidth,\n                    onRenderDetailsCheckbox: onRenderCheckbox,\n                    rowWidth: sumColumnWidths(adjustedColumns),\n                    useFastIcons: useFastIcons,\n                }, onRenderDetailsHeader)),\n            React.createElement(\"div\", { onKeyDown: onContentKeyDown, role: \"presentation\", className: classNames.contentWrapper }, !disableSelectionZone ? (React.createElement(SelectionZone, __assign({ ref: selectionZoneRef, selection: selection, selectionPreservedOnEmptyClick: selectionPreservedOnEmptyClick, selectionMode: selectionMode, isSelectedOnFocus: isSelectedOnFocus, selectionClearedOnEscapePress: isSelectedOnFocus, toggleWithoutModifierPressed: !isSelectedOnFocus, onItemInvoked: onItemInvoked, onItemContextMenu: onItemContextMenu, enterModalOnTouch: enterModalSelectionOnTouch }, (selectionZoneProps || {})), list)) : (list)),\n            onRenderDetailsFooter(__assign({}, detailsFooterProps)))));\n};\nvar DetailsListBase = /** @class */ (function (_super) {\n    __extends(DetailsListBase, _super);\n    function DetailsListBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._header = React.createRef();\n        _this._groupedList = React.createRef();\n        _this._list = React.createRef();\n        _this._focusZone = React.createRef();\n        _this._selectionZone = React.createRef();\n        _this._onRenderRow = function (props, defaultRender) {\n            return React.createElement(DetailsRow, __assign({}, props));\n        };\n        _this._getDerivedStateFromProps = function (nextProps, previousState) {\n            var _a = _this.props, checkboxVisibility = _a.checkboxVisibility, items = _a.items, setKey = _a.setKey, _b = _a.selectionMode, selectionMode = _b === void 0 ? _this._selection.mode : _b, columns = _a.columns, viewport = _a.viewport, compact = _a.compact, dragDropEvents = _a.dragDropEvents;\n            var _c = (_this.props.groupProps || {}).isAllGroupsCollapsed, isAllGroupsCollapsed = _c === void 0 ? undefined : _c;\n            var newViewportWidth = (nextProps.viewport && nextProps.viewport.width) || 0;\n            var oldViewportWidth = (viewport && viewport.width) || 0;\n            var shouldResetSelection = nextProps.setKey !== setKey || nextProps.setKey === undefined;\n            var shouldForceUpdates = false;\n            if (nextProps.layoutMode !== _this.props.layoutMode) {\n                shouldForceUpdates = true;\n            }\n            var nextState = previousState;\n            if (shouldResetSelection) {\n                _this._initialFocusedIndex = nextProps.initialFocusedIndex;\n                // reset focusedItemIndex when setKey changes\n                nextState = __assign(__assign({}, nextState), { focusedItemIndex: _this._initialFocusedIndex !== undefined ? _this._initialFocusedIndex : -1 });\n            }\n            if (!_this.props.disableSelectionZone && nextProps.items !== items) {\n                _this._selection.setItems(nextProps.items, shouldResetSelection);\n            }\n            if (nextProps.checkboxVisibility !== checkboxVisibility ||\n                nextProps.columns !== columns ||\n                newViewportWidth !== oldViewportWidth ||\n                nextProps.compact !== compact) {\n                shouldForceUpdates = true;\n            }\n            nextState = __assign(__assign({}, nextState), _this._adjustColumns(nextProps, nextState, true));\n            if (nextProps.selectionMode !== selectionMode) {\n                shouldForceUpdates = true;\n            }\n            if (isAllGroupsCollapsed === undefined &&\n                nextProps.groupProps &&\n                nextProps.groupProps.isAllGroupsCollapsed !== undefined) {\n                nextState = __assign(__assign({}, nextState), { isCollapsed: nextProps.groupProps.isAllGroupsCollapsed, isSomeGroupExpanded: !nextProps.groupProps.isAllGroupsCollapsed });\n            }\n            if (nextProps.dragDropEvents !== dragDropEvents) {\n                _this._dragDropHelper && _this._dragDropHelper.dispose();\n                _this._dragDropHelper = nextProps.dragDropEvents\n                    ? new DragDropHelper({\n                        selection: _this._selection,\n                        minimumPixelsForDrag: nextProps.minimumPixelsForDrag,\n                    })\n                    : undefined;\n                shouldForceUpdates = true;\n            }\n            if (shouldForceUpdates) {\n                nextState = __assign(__assign({}, nextState), { version: {} });\n            }\n            return nextState;\n        };\n        _this._onGroupExpandStateChanged = function (isSomeGroupExpanded) {\n            _this.setState({ isSomeGroupExpanded: isSomeGroupExpanded });\n        };\n        _this._onColumnIsSizingChanged = function (column, isSizing) {\n            _this.setState({ isSizing: isSizing });\n        };\n        _this._onRowDidMount = function (row) {\n            var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;\n            var itemKey = _this._getItemKey(item, itemIndex);\n            _this._activeRows[itemKey] = row; // this is used for column auto resize\n            _this._setFocusToRowIfPending(row);\n            var onRowDidMount = _this.props.onRowDidMount;\n            if (onRowDidMount) {\n                onRowDidMount(item, itemIndex);\n            }\n        };\n        _this._onRowWillUnmount = function (row) {\n            var onRowWillUnmount = _this.props.onRowWillUnmount;\n            var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;\n            var itemKey = _this._getItemKey(item, itemIndex);\n            delete _this._activeRows[itemKey];\n            if (onRowWillUnmount) {\n                onRowWillUnmount(item, itemIndex);\n            }\n        };\n        _this._onToggleCollapse = function (collapsed) {\n            _this.setState({\n                isCollapsed: collapsed,\n            });\n            if (_this._groupedList.current) {\n                _this._groupedList.current.toggleCollapseAll(collapsed);\n            }\n        };\n        _this._onColumnResized = function (resizingColumn, newWidth, resizingColumnIndex) {\n            var newCalculatedWidth = Math.max(resizingColumn.minWidth || MIN_COLUMN_WIDTH, newWidth);\n            if (_this.props.onColumnResize) {\n                _this.props.onColumnResize(resizingColumn, newCalculatedWidth, resizingColumnIndex);\n            }\n            _this._rememberCalculatedWidth(resizingColumn, newCalculatedWidth);\n            _this.setState(__assign(__assign({}, _this._adjustColumns(_this.props, _this.state, true, resizingColumnIndex)), { version: {} }));\n        };\n        /**\n         * Callback function when double clicked on the details header column resizer\n         * which will measure the column cells of all the active rows and resize the\n         * column to the max cell width.\n         *\n         * @param column - double clicked column definition\n         * @param columnIndex - double clicked column index\n         * TODO: min width 100 should be changed to const value and should be consistent with the\n         * value used on _onSizerMove method in DetailsHeader\n         */\n        _this._onColumnAutoResized = function (column, columnIndex) {\n            var max = 0;\n            var count = 0;\n            var totalCount = Object.keys(_this._activeRows).length;\n            for (var key in _this._activeRows) {\n                if (_this._activeRows.hasOwnProperty(key)) {\n                    var currentRow = _this._activeRows[key];\n                    currentRow.measureCell(columnIndex, function (width) {\n                        max = Math.max(max, width);\n                        count++;\n                        if (count === totalCount) {\n                            _this._onColumnResized(column, max, columnIndex);\n                        }\n                    });\n                }\n            }\n        };\n        /**\n         * Call back function when an element in FocusZone becomes active. It will translate it into item\n         * and call onActiveItemChanged callback if specified.\n         *\n         * @param row - element that became active in Focus Zone\n         * @param focus - event from Focus Zone\n         */\n        _this._onActiveRowChanged = function (el, ev) {\n            var _a = _this.props, items = _a.items, onActiveItemChanged = _a.onActiveItemChanged;\n            if (!el) {\n                return;\n            }\n            // Check and assign index only if the event was raised from any DetailsRow element\n            if (el.getAttribute('data-item-index')) {\n                var index = Number(el.getAttribute('data-item-index'));\n                if (index >= 0) {\n                    if (onActiveItemChanged) {\n                        onActiveItemChanged(items[index], index, ev);\n                    }\n                    _this.setState({\n                        focusedItemIndex: index,\n                    });\n                }\n            }\n        };\n        _this._onBlur = function (event) {\n            _this.setState({\n                focusedItemIndex: -1,\n            });\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._activeRows = {};\n        _this._columnOverrides = {};\n        _this.state = {\n            focusedItemIndex: -1,\n            lastWidth: 0,\n            adjustedColumns: _this._getAdjustedColumns(props, undefined),\n            isSizing: false,\n            isCollapsed: props.groupProps && props.groupProps.isAllGroupsCollapsed,\n            isSomeGroupExpanded: props.groupProps && !props.groupProps.isAllGroupsCollapsed,\n            version: {},\n            getDerivedStateFromProps: _this._getDerivedStateFromProps,\n        };\n        warnMutuallyExclusive(COMPONENT_NAME, props, {\n            selection: 'getKey',\n        });\n        _this._selection =\n            props.selection ||\n                new Selection({\n                    onSelectionChanged: undefined,\n                    getKey: props.getKey,\n                    selectionMode: props.selectionMode,\n                });\n        if (!_this.props.disableSelectionZone) {\n            _this._selection.setItems(props.items, false);\n        }\n        _this._dragDropHelper = props.dragDropEvents\n            ? new DragDropHelper({\n                selection: _this._selection,\n                minimumPixelsForDrag: props.minimumPixelsForDrag,\n            })\n            : undefined;\n        _this._initialFocusedIndex = props.initialFocusedIndex;\n        return _this;\n    }\n    DetailsListBase.getDerivedStateFromProps = function (nextProps, previousState) {\n        return previousState.getDerivedStateFromProps(nextProps, previousState);\n    };\n    DetailsListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n        this._list.current && this._list.current.scrollToIndex(index, measureItem, scrollToMode);\n        this._groupedList.current && this._groupedList.current.scrollToIndex(index, measureItem, scrollToMode);\n    };\n    DetailsListBase.prototype.focusIndex = function (index, forceIntoFirstElement, measureItem, scrollToMode) {\n        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n        var item = this.props.items[index];\n        if (item) {\n            this.scrollToIndex(index, measureItem, scrollToMode);\n            var itemKey = this._getItemKey(item, index);\n            var row = this._activeRows[itemKey];\n            if (row) {\n                this._setFocusToRow(row, forceIntoFirstElement);\n            }\n        }\n    };\n    DetailsListBase.prototype.getStartItemIndexInView = function () {\n        if (this._list && this._list.current) {\n            return this._list.current.getStartItemIndexInView();\n        }\n        else if (this._groupedList && this._groupedList.current) {\n            return this._groupedList.current.getStartItemIndexInView();\n        }\n        return 0;\n    };\n    DetailsListBase.prototype.updateColumn = function (column, options) {\n        var _a, _b;\n        var NO_COLUMNS = [];\n        var _c = this.props, _d = _c.columns, columns = _d === void 0 ? NO_COLUMNS : _d, selectionMode = _c.selectionMode, checkboxVisibility = _c.checkboxVisibility, columnReorderOptions = _c.columnReorderOptions;\n        var width = options.width, newColumnIndex = options.newColumnIndex;\n        var index = columns.findIndex(function (col) { return col.key === column.key; });\n        if (width) {\n            this._onColumnResized(column, width, index);\n        }\n        if (newColumnIndex !== undefined && columnReorderOptions) {\n            var isCheckboxColumnHidden = selectionMode === SelectionMode.none || checkboxVisibility === CheckboxVisibility.hidden;\n            var showCheckbox = checkboxVisibility !== CheckboxVisibility.hidden;\n            var columnIndex = (showCheckbox ? 2 : 1) + index;\n            var draggedIndex = isCheckboxColumnHidden ? columnIndex - 1 : columnIndex - 2;\n            var targetIndex = isCheckboxColumnHidden ? newColumnIndex - 1 : newColumnIndex - 2;\n            var frozenColumnCountFromStart = (_a = columnReorderOptions.frozenColumnCountFromStart) !== null && _a !== void 0 ? _a : 0;\n            var frozenColumnCountFromEnd = (_b = columnReorderOptions.frozenColumnCountFromEnd) !== null && _b !== void 0 ? _b : 0;\n            var isValidTargetIndex = targetIndex >= frozenColumnCountFromStart && targetIndex < columns.length - frozenColumnCountFromEnd;\n            if (isValidTargetIndex) {\n                if (columnReorderOptions.onColumnDrop) {\n                    var dragDropDetails = {\n                        draggedIndex: draggedIndex,\n                        targetIndex: targetIndex,\n                    };\n                    columnReorderOptions.onColumnDrop(dragDropDetails);\n                    /* eslint-disable deprecation/deprecation */\n                }\n                else if (columnReorderOptions.handleColumnReorder) {\n                    columnReorderOptions.handleColumnReorder(draggedIndex, targetIndex);\n                    /* eslint-enable deprecation/deprecation */\n                }\n            }\n        }\n    };\n    DetailsListBase.prototype.componentWillUnmount = function () {\n        if (this._dragDropHelper) {\n            // TODO If the DragDropHelper was passed via props, this will dispose it, which is incorrect behavior.\n            this._dragDropHelper.dispose();\n        }\n        this._async.dispose();\n    };\n    DetailsListBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n        this._notifyColumnsResized();\n        if (this._initialFocusedIndex !== undefined) {\n            var item = this.props.items[this._initialFocusedIndex];\n            if (item) {\n                var itemKey = this._getItemKey(item, this._initialFocusedIndex);\n                var row = this._activeRows[itemKey];\n                if (row) {\n                    this._setFocusToRowIfPending(row);\n                }\n            }\n        }\n        if (this.props.items !== prevProps.items &&\n            this.props.items.length > 0 &&\n            this.state.focusedItemIndex !== -1 &&\n            !elementContains(this._root.current, document.activeElement, false)) {\n            // Item set has changed and previously-focused item is gone.\n            // Set focus to item at index of previously-focused item if it is in range,\n            // else set focus to the last item.\n            var index = this.state.focusedItemIndex < this.props.items.length\n                ? this.state.focusedItemIndex\n                : this.props.items.length - 1;\n            var item = this.props.items[index];\n            var itemKey = this._getItemKey(item, this.state.focusedItemIndex);\n            var row = this._activeRows[itemKey];\n            if (row) {\n                this._setFocusToRow(row);\n            }\n            else {\n                this._initialFocusedIndex = index;\n            }\n        }\n        if (this.props.onDidUpdate) {\n            this.props.onDidUpdate(this);\n        }\n    };\n    DetailsListBase.prototype.render = function () {\n        return (React.createElement(DetailsListInner, __assign({}, this.props, this.state, { selection: this._selection, dragDropHelper: this._dragDropHelper, rootRef: this._root, listRef: this._list, groupedListRef: this._groupedList, focusZoneRef: this._focusZone, headerRef: this._header, selectionZoneRef: this._selectionZone, onGroupExpandStateChanged: this._onGroupExpandStateChanged, onColumnIsSizingChanged: this._onColumnIsSizingChanged, onRowDidMount: this._onRowDidMount, onRowWillUnmount: this._onRowWillUnmount, onColumnResized: this._onColumnResized, onColumnAutoResized: this._onColumnAutoResized, onToggleCollapse: this._onToggleCollapse, onActiveRowChanged: this._onActiveRowChanged, onBlur: this._onBlur, onRenderDefaultRow: this._onRenderRow })));\n    };\n    DetailsListBase.prototype.forceUpdate = function () {\n        _super.prototype.forceUpdate.call(this);\n        this._forceListUpdates();\n    };\n    DetailsListBase.prototype._getGroupNestingDepth = function () {\n        var groups = this.props.groups;\n        var level = 0;\n        var groupsInLevel = groups;\n        while (groupsInLevel && groupsInLevel.length > 0) {\n            level++;\n            groupsInLevel = groupsInLevel[0].children;\n        }\n        return level;\n    };\n    DetailsListBase.prototype._setFocusToRowIfPending = function (row) {\n        var itemIndex = row.props.itemIndex;\n        if (this._initialFocusedIndex !== undefined && itemIndex === this._initialFocusedIndex) {\n            this._setFocusToRow(row);\n            delete this._initialFocusedIndex;\n        }\n    };\n    DetailsListBase.prototype._setFocusToRow = function (row, forceIntoFirstElement) {\n        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n        if (this._selectionZone.current) {\n            this._selectionZone.current.ignoreNextFocus();\n        }\n        this._async.setTimeout(function () {\n            row.focus(forceIntoFirstElement);\n        }, 0);\n    };\n    DetailsListBase.prototype._forceListUpdates = function () {\n        if (this._groupedList.current) {\n            this._groupedList.current.forceUpdate();\n        }\n        if (this._list.current) {\n            this._list.current.forceUpdate();\n        }\n    };\n    DetailsListBase.prototype._notifyColumnsResized = function () {\n        this.state.adjustedColumns.forEach(function (column) {\n            if (column.onColumnResize) {\n                column.onColumnResize(column.currentWidth);\n            }\n        });\n    };\n    DetailsListBase.prototype._adjustColumns = function (newProps, previousState, forceUpdate, resizingColumnIndex) {\n        var adjustedColumns = this._getAdjustedColumns(newProps, previousState, forceUpdate, resizingColumnIndex);\n        var viewport = this.props.viewport;\n        var viewportWidth = viewport && viewport.width ? viewport.width : 0;\n        return __assign(__assign({}, previousState), { adjustedColumns: adjustedColumns, lastWidth: viewportWidth });\n    };\n    /** Returns adjusted columns, given the viewport size and layout mode. */\n    DetailsListBase.prototype._getAdjustedColumns = function (newProps, previousState, forceUpdate, resizingColumnIndex) {\n        var _this = this;\n        var newItems = newProps.items, layoutMode = newProps.layoutMode, selectionMode = newProps.selectionMode, viewport = newProps.viewport;\n        var viewportWidth = viewport && viewport.width ? viewport.width : 0;\n        var newColumns = newProps.columns;\n        var columns = this.props ? this.props.columns : [];\n        var lastWidth = previousState ? previousState.lastWidth : -1;\n        var lastSelectionMode = previousState ? previousState.lastSelectionMode : undefined;\n        if (!forceUpdate &&\n            lastWidth === viewportWidth &&\n            lastSelectionMode === selectionMode &&\n            (!columns || newColumns === columns)) {\n            return newColumns || [];\n        }\n        newColumns = newColumns || buildColumns(newItems, true);\n        var adjustedColumns;\n        if (layoutMode === DetailsListLayoutMode.fixedColumns) {\n            adjustedColumns = this._getFixedColumns(newColumns, viewportWidth, newProps);\n            // Preserve adjusted column calculated widths.\n            adjustedColumns.forEach(function (column) {\n                _this._rememberCalculatedWidth(column, column.calculatedWidth);\n            });\n        }\n        else {\n            adjustedColumns = this._getJustifiedColumns(newColumns, viewportWidth, newProps);\n            adjustedColumns.forEach(function (column) {\n                _this._getColumnOverride(column.key).currentWidth = column.calculatedWidth;\n            });\n        }\n        return adjustedColumns;\n    };\n    /** Builds a set of columns based on the given columns mixed with the current overrides. */\n    DetailsListBase.prototype._getFixedColumns = function (newColumns, viewportWidth, props) {\n        var _this = this;\n        var _a = this.props, _b = _a.selectionMode, selectionMode = _b === void 0 ? this._selection.mode : _b, checkboxVisibility = _a.checkboxVisibility, flexMargin = _a.flexMargin, skipViewportMeasures = _a.skipViewportMeasures;\n        var remainingWidth = viewportWidth - (flexMargin || 0);\n        var sumProportionalWidth = 0;\n        newColumns.forEach(function (col) {\n            if (skipViewportMeasures || !col.flexGrow) {\n                remainingWidth -= col.maxWidth || col.minWidth || MIN_COLUMN_WIDTH;\n            }\n            else {\n                remainingWidth -= col.minWidth || MIN_COLUMN_WIDTH;\n                sumProportionalWidth += col.flexGrow;\n            }\n            remainingWidth -= getPaddedWidth(col, props, true);\n        });\n        var rowCheckWidth = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden ? CHECKBOX_WIDTH : 0;\n        var groupExpandWidth = this._getGroupNestingDepth() * GROUP_EXPAND_WIDTH;\n        remainingWidth -= rowCheckWidth + groupExpandWidth;\n        var widthFraction = remainingWidth / sumProportionalWidth;\n        // Shrinks proportional columns to their max width and adds the remaining width to distribute to other columns.\n        if (!skipViewportMeasures) {\n            newColumns.forEach(function (column) {\n                var newColumn = __assign(__assign({}, column), _this._columnOverrides[column.key]);\n                if (newColumn.flexGrow && newColumn.maxWidth) {\n                    var fullWidth = newColumn.flexGrow * widthFraction + newColumn.minWidth;\n                    var shrinkWidth = fullWidth - newColumn.maxWidth;\n                    if (shrinkWidth > 0) {\n                        remainingWidth += shrinkWidth;\n                        sumProportionalWidth -= (shrinkWidth / (fullWidth - newColumn.minWidth)) * newColumn.flexGrow;\n                    }\n                }\n            });\n        }\n        widthFraction = remainingWidth > 0 ? remainingWidth / sumProportionalWidth : 0;\n        return newColumns.map(function (column) {\n            var newColumn = __assign(__assign({}, column), _this._columnOverrides[column.key]);\n            // Delay computation until viewport width is available.\n            if (!skipViewportMeasures && newColumn.flexGrow && remainingWidth <= 0) {\n                return newColumn;\n            }\n            if (!newColumn.calculatedWidth) {\n                if (!skipViewportMeasures && newColumn.flexGrow) {\n                    // Assigns the proportion of the remaining extra width after all columns have met minimum widths.\n                    newColumn.calculatedWidth = newColumn.minWidth + newColumn.flexGrow * widthFraction;\n                    newColumn.calculatedWidth = Math.min(newColumn.calculatedWidth, newColumn.maxWidth || Number.MAX_VALUE);\n                }\n                else {\n                    newColumn.calculatedWidth = newColumn.maxWidth || newColumn.minWidth || MIN_COLUMN_WIDTH;\n                }\n            }\n            return newColumn;\n        });\n    };\n    /** Builds a set of columns to fix within the viewport width. */\n    DetailsListBase.prototype._getJustifiedColumns = function (newColumns, viewportWidth, props) {\n        var _this = this;\n        var _a = props.selectionMode, selectionMode = _a === void 0 ? this._selection.mode : _a, checkboxVisibility = props.checkboxVisibility, skipViewportMeasures = props.skipViewportMeasures;\n        var rowCheckWidth = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden ? CHECKBOX_WIDTH : 0;\n        var groupExpandWidth = this._getGroupNestingDepth() * GROUP_EXPAND_WIDTH;\n        var totalWidth = 0; // offset because we have one less inner padding.\n        var minimumWidth = 0;\n        var availableWidth = viewportWidth - (rowCheckWidth + groupExpandWidth);\n        var adjustedColumns = newColumns.map(function (column, i) {\n            var baseColumn = __assign(__assign({}, column), { calculatedWidth: column.minWidth || MIN_COLUMN_WIDTH });\n            var newColumn = __assign(__assign({}, baseColumn), _this._columnOverrides[column.key]);\n            // eslint-disable-next-line deprecation/deprecation\n            if (!(baseColumn.isCollapsible || baseColumn.isCollapsable)) {\n                minimumWidth += getPaddedWidth(baseColumn, props);\n            }\n            totalWidth += getPaddedWidth(newColumn, props);\n            return newColumn;\n        });\n        if (skipViewportMeasures) {\n            return adjustedColumns;\n        }\n        var lastIndex = adjustedColumns.length - 1;\n        // Shrink or remove collapsable columns.\n        while (lastIndex >= 0 && totalWidth > availableWidth) {\n            var column = adjustedColumns[lastIndex];\n            var minWidth = column.minWidth || MIN_COLUMN_WIDTH;\n            var overflowWidth = totalWidth - availableWidth;\n            // eslint-disable-next-line deprecation/deprecation\n            if (column.calculatedWidth - minWidth >= overflowWidth || !(column.isCollapsible || column.isCollapsable)) {\n                var originalWidth = column.calculatedWidth;\n                if (minimumWidth < availableWidth) {\n                    // Only adjust in cases where all the columns fit within the viewport\n                    column.calculatedWidth = Math.max(column.calculatedWidth - overflowWidth, minWidth);\n                }\n                totalWidth -= originalWidth - column.calculatedWidth;\n            }\n            else {\n                totalWidth -= getPaddedWidth(column, props);\n                adjustedColumns.splice(lastIndex, 1);\n            }\n            lastIndex--;\n        }\n        // Then expand columns starting at the beginning, until we've filled the width.\n        for (var i = 0; i < adjustedColumns.length && totalWidth < availableWidth; i++) {\n            var column = adjustedColumns[i];\n            var isLast = i === adjustedColumns.length - 1;\n            var overrides = this._columnOverrides[column.key];\n            if (overrides && overrides.calculatedWidth && !isLast) {\n                continue;\n            }\n            var spaceLeft = availableWidth - totalWidth;\n            var increment = void 0;\n            if (isLast) {\n                increment = spaceLeft;\n            }\n            else {\n                var maxWidth = column.maxWidth;\n                var minWidth = column.minWidth || maxWidth || MIN_COLUMN_WIDTH;\n                increment = maxWidth ? Math.min(spaceLeft, maxWidth - minWidth) : spaceLeft;\n            }\n            column.calculatedWidth = column.calculatedWidth + increment;\n            totalWidth += increment;\n        }\n        return adjustedColumns;\n    };\n    DetailsListBase.prototype._rememberCalculatedWidth = function (column, newCalculatedWidth) {\n        var overrides = this._getColumnOverride(column.key);\n        overrides.calculatedWidth = newCalculatedWidth;\n        overrides.currentWidth = newCalculatedWidth;\n    };\n    DetailsListBase.prototype._getColumnOverride = function (key) {\n        return (this._columnOverrides[key] = this._columnOverrides[key] || {});\n    };\n    DetailsListBase.prototype._getItemKey = function (item, itemIndex) {\n        var getKey = this.props.getKey;\n        var itemKey = undefined;\n        if (item) {\n            itemKey = item.key;\n        }\n        if (getKey) {\n            itemKey = getKey(item, itemIndex);\n        }\n        if (!itemKey) {\n            itemKey = itemIndex;\n        }\n        return itemKey;\n    };\n    DetailsListBase.defaultProps = {\n        layoutMode: DetailsListLayoutMode.justified,\n        selectionMode: SelectionMode.multiple,\n        constrainMode: ConstrainMode.horizontalConstrained,\n        checkboxVisibility: CheckboxVisibility.onHover,\n        isHeaderVisible: true,\n        compact: false,\n        useFastIcons: true,\n    };\n    DetailsListBase = __decorate([\n        withViewport\n    ], DetailsListBase);\n    return DetailsListBase;\n}(React.Component));\nexport { DetailsListBase };\nexport function buildColumns(items, canResizeColumns, onColumnClick, sortedColumnKey, isSortedDescending, groupedColumnKey, isMultiline, columnActionsMode) {\n    var columns = [];\n    if (items && items.length) {\n        var firstItem = items[0];\n        for (var propName in firstItem) {\n            if (firstItem.hasOwnProperty(propName)) {\n                columns.push({\n                    key: propName,\n                    name: propName,\n                    fieldName: propName,\n                    minWidth: MIN_COLUMN_WIDTH,\n                    maxWidth: 300,\n                    isCollapsible: !!columns.length,\n                    isMultiline: isMultiline === undefined ? false : isMultiline,\n                    isSorted: sortedColumnKey === propName,\n                    isSortedDescending: !!isSortedDescending,\n                    isRowHeader: false,\n                    columnActionsMode: columnActionsMode !== null && columnActionsMode !== void 0 ? columnActionsMode : ColumnActionsMode.clickable,\n                    isResizable: canResizeColumns,\n                    onColumnClick: onColumnClick,\n                    isGrouped: groupedColumnKey === propName,\n                });\n            }\n        }\n    }\n    return columns;\n}\nfunction getPaddedWidth(column, props, paddingOnly) {\n    var _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n    return ((paddingOnly ? 0 : column.calculatedWidth) +\n        cellStyleProps.cellLeftPadding +\n        cellStyleProps.cellRightPadding +\n        (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0));\n}\nfunction getGroupNestingDepth(groups) {\n    var level = 0;\n    var groupsInLevel = groups;\n    while (groupsInLevel && groupsInLevel.length > 0) {\n        level++;\n        groupsInLevel = groupsInLevel[0].children;\n    }\n    return level;\n}\nfunction useGroupedDetailsListIndexMap(groups) {\n    return React.useMemo(function () {\n        var indexMap = {};\n        if (groups) {\n            var rowCount = 1;\n            var numGroupHeaders = 1;\n            for (var _i = 0, groups_1 = groups; _i < groups_1.length; _i++) {\n                var group = groups_1[_i];\n                var key = group.key;\n                indexMap[key] = { numOfGroupHeadersBeforeItem: numGroupHeaders, totalRowCount: rowCount };\n                numGroupHeaders++;\n                rowCount += group.count + 1;\n            }\n        }\n        return indexMap;\n    }, [groups]);\n}\n//# sourceMappingURL=DetailsList.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-DetailsList',\n    compact: 'ms-DetailsList--Compact',\n    contentWrapper: 'ms-DetailsList-contentWrapper',\n    headerWrapper: 'ms-DetailsList-headerWrapper',\n    isFixed: 'is-fixed',\n    isHorizontalConstrained: 'is-horizontalConstrained',\n    listCell: 'ms-List-cell',\n};\nexport var getDetailsListStyles = function (props) {\n    var _a, _b;\n    var theme = props.theme, className = props.className, isHorizontalConstrained = props.isHorizontalConstrained, compact = props.compact, isFixed = props.isFixed;\n    var semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.small,\n            {\n                position: 'relative',\n                color: semanticColors.listText,\n                selectors: (_a = {},\n                    _a[\"& .\".concat(classNames.listCell)] = {\n                        minHeight: 38,\n                        wordBreak: 'break-word',\n                    },\n                    _a),\n            },\n            isFixed && classNames.isFixed,\n            compact && [\n                classNames.compact,\n                {\n                    selectors: (_b = {},\n                        _b[\".\".concat(classNames.listCell)] = {\n                            minHeight: 32,\n                        },\n                        _b),\n                },\n            ],\n            isHorizontalConstrained && [\n                classNames.isHorizontalConstrained,\n                {\n                    overflowX: 'auto',\n                    overflowY: 'visible',\n                    WebkitOverflowScrolling: 'touch',\n                },\n            ],\n            className,\n        ],\n        focusZone: [\n            {\n                display: 'inline-block',\n                minWidth: '100%',\n                minHeight: 1,\n            },\n        ],\n        headerWrapper: classNames.headerWrapper,\n        contentWrapper: classNames.contentWrapper,\n    };\n};\n//# sourceMappingURL=DetailsList.styles.js.map","import { styled } from '../../Utilities';\nimport { DetailsListBase } from './DetailsList.base';\nimport { getDetailsListStyles } from './DetailsList.styles';\nexport var DetailsList = styled(DetailsListBase, getDetailsListStyles, undefined, {\n    scope: 'DetailsList',\n});\n//# sourceMappingURL=DetailsList.js.map","/**\n * Enum to describe how a particular column header behaves.\n * This is used to to specify the property `IColumn.columnActionsMode`.\n * If `IColumn.columnActionsMode` is undefined, it's equivalent to `ColumnActionsMode.clickable`.\n * {@docCategory DetailsList}\n */\nexport var ColumnActionsMode;\n(function (ColumnActionsMode) {\n    /** Renders the column header as disabled. */\n    ColumnActionsMode[ColumnActionsMode[\"disabled\"] = 0] = \"disabled\";\n    /** Renders the column header as clickable. Default value. */\n    ColumnActionsMode[ColumnActionsMode[\"clickable\"] = 1] = \"clickable\";\n    /** Renders the column header as clickable and displays the dropdown chevron. */\n    ColumnActionsMode[ColumnActionsMode[\"hasDropdown\"] = 2] = \"hasDropdown\";\n})(ColumnActionsMode || (ColumnActionsMode = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var ConstrainMode;\n(function (ConstrainMode) {\n    /** Lets the content grow which allows the page to manage scrolling. */\n    ConstrainMode[ConstrainMode[\"unconstrained\"] = 0] = \"unconstrained\";\n    /** Constrains the list to the given layout space. */\n    ConstrainMode[ConstrainMode[\"horizontalConstrained\"] = 1] = \"horizontalConstrained\";\n})(ConstrainMode || (ConstrainMode = {}));\n/**\n * Enum to describe where the column has been dropped, after starting the drag\n * {@docCategory DetailsList}\n */\nexport var ColumnDragEndLocation;\n(function (ColumnDragEndLocation) {\n    /** Drag ended outside of current list */\n    ColumnDragEndLocation[ColumnDragEndLocation[\"outside\"] = 0] = \"outside\";\n    /** Drag ended within current list */\n    ColumnDragEndLocation[ColumnDragEndLocation[\"surface\"] = 1] = \"surface\";\n    /** Drag ended on header */\n    ColumnDragEndLocation[ColumnDragEndLocation[\"header\"] = 2] = \"header\";\n})(ColumnDragEndLocation || (ColumnDragEndLocation = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var DetailsListLayoutMode;\n(function (DetailsListLayoutMode) {\n    /**\n     * Lets the user resize columns and makes not attempt to fit them.\n     */\n    DetailsListLayoutMode[DetailsListLayoutMode[\"fixedColumns\"] = 0] = \"fixedColumns\";\n    /**\n     * Manages which columns are visible, tries to size them according to their min/max rules and drops\n     * off columns that can't fit and have isCollapsible set.\n     */\n    DetailsListLayoutMode[DetailsListLayoutMode[\"justified\"] = 1] = \"justified\";\n})(DetailsListLayoutMode || (DetailsListLayoutMode = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var CheckboxVisibility;\n(function (CheckboxVisibility) {\n    /** Visible on hover. */\n    CheckboxVisibility[CheckboxVisibility[\"onHover\"] = 0] = \"onHover\";\n    /** Visible always. */\n    CheckboxVisibility[CheckboxVisibility[\"always\"] = 1] = \"always\";\n    /** Hide checkboxes. */\n    CheckboxVisibility[CheckboxVisibility[\"hidden\"] = 2] = \"hidden\";\n})(CheckboxVisibility || (CheckboxVisibility = {}));\n//# sourceMappingURL=DetailsList.types.js.map","import * as React from 'react';\nimport { composeRenderFunction, css } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nvar getCellText = function (item, column) {\n    var value = item && column && column.fieldName ? item[column.fieldName] : '';\n    if (value === null || value === undefined) {\n        value = '';\n    }\n    if (typeof value === 'boolean') {\n        return value.toString();\n    }\n    return value;\n};\n/**\n * Component for rendering a row's cells in a `DetailsList`.\n *\n * {@docCategory DetailsList}\n */\nexport var DetailsRowFields = function (props) {\n    var columns = props.columns, rowClassNames = props.rowClassNames, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a, item = props.item, itemIndex = props.itemIndex, isSelected = props.isSelected, onRenderItemColumn = props.onRenderItemColumn, getCellValueKey = props.getCellValueKey, propsOnRenderField = props.onRenderField, cellsByColumn = props.cellsByColumn, enableUpdateAnimations = props.enableUpdateAnimations, rowHeaderId = props.rowHeaderId;\n    var cellValueKeysRef = React.useRef();\n    var cellValueKeys = cellValueKeysRef.current || (cellValueKeysRef.current = {});\n    var defaultOnRenderField = React.useCallback(function (fieldProps) {\n        var column = fieldProps.column, cellValueKey = fieldProps.cellValueKey, className = fieldProps.className, onRender = fieldProps.onRender, fieldItem = fieldProps.item, fieldItemIndex = fieldProps.itemIndex;\n        var width = typeof column.calculatedWidth === 'undefined'\n            ? 'auto'\n            : column.calculatedWidth +\n                cellStyleProps.cellLeftPadding +\n                cellStyleProps.cellRightPadding +\n                (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);\n        var key = \"\".concat(column.key).concat(cellValueKey !== undefined ? \"-\".concat(cellValueKey) : '');\n        return (React.createElement(\"div\", { key: key, id: column.isRowHeader ? rowHeaderId : undefined, role: column.isRowHeader ? 'rowheader' : 'gridcell', className: css(column.className, column.isMultiline && rowClassNames.isMultiline, column.isRowHeader && rowClassNames.isRowHeader, rowClassNames.cell, column.isPadded ? rowClassNames.cellPadded : rowClassNames.cellUnpadded, className), style: { width: width }, \"data-automationid\": \"DetailsRowCell\", \"data-automation-key\": column.key }, onRender(fieldItem, fieldItemIndex, column)));\n    }, [rowClassNames, cellStyleProps, rowHeaderId]);\n    return (React.createElement(\"div\", { className: rowClassNames.fields, \"data-automationid\": \"DetailsRowFields\", role: \"presentation\" }, columns.map(function (column) {\n        var _a = column.getValueKey, getValueKey = _a === void 0 ? getCellValueKey : _a;\n        var onRender = (cellsByColumn && column.key in cellsByColumn && (function () { return cellsByColumn[column.key]; })) ||\n            column.onRender ||\n            onRenderItemColumn ||\n            defaultOnRender;\n        var onRenderField = defaultOnRenderField;\n        if (column.onRenderField) {\n            onRenderField = composeRenderFunction(column.onRenderField, onRenderField);\n        }\n        if (propsOnRenderField) {\n            onRenderField = composeRenderFunction(propsOnRenderField, onRenderField);\n        }\n        var previousValueKey = cellValueKeys[column.key];\n        var cellValueKey = enableUpdateAnimations && getValueKey ? getValueKey(item, itemIndex, column) : undefined;\n        var showAnimation = false;\n        if (cellValueKey !== undefined && previousValueKey !== undefined && cellValueKey !== previousValueKey) {\n            showAnimation = true;\n        }\n        cellValueKeys[column.key] = cellValueKey;\n        return onRenderField({\n            item: item,\n            itemIndex: itemIndex,\n            isSelected: isSelected,\n            column: column,\n            cellValueKey: cellValueKey,\n            className: showAnimation ? rowClassNames.cellAnimation : undefined,\n            onRender: onRender,\n        });\n    })));\n};\nfunction defaultOnRender(item, index, column) {\n    if (!item || !column) {\n        return null;\n    }\n    return getCellText(item, column);\n}\n//# sourceMappingURL=DetailsRowFields.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, EventGroup, css, shallowCompare, getNativeProps, divProperties, composeComponentAs, } from '../../Utilities';\nimport { CheckboxVisibility } from './DetailsList.types';\nimport { DetailsRowCheck } from './DetailsRowCheck';\nimport { GroupSpacer } from '../GroupedList/GroupSpacer';\nimport { DetailsRowFields } from './DetailsRowFields';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { SelectionMode, SELECTION_CHANGE } from '../../Selection';\nimport { classNamesFunction } from '../../Utilities';\nimport { getId } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';\nvar NO_COLUMNS = [];\nvar DetailsRowBase = /** @class */ (function (_super) {\n    __extends(DetailsRowBase, _super);\n    function DetailsRowBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._cellMeasurer = React.createRef();\n        _this._focusZone = React.createRef();\n        _this._onSelectionChanged = function () {\n            var selectionState = getSelectionState(_this.props);\n            if (!shallowCompare(selectionState, _this.state.selectionState)) {\n                _this.setState({ selectionState: selectionState });\n            }\n        };\n        /**\n         * update isDropping state based on the input value, which is used to change style during drag and drop\n         *\n         * when change to true, that means drag enter. we will add default dropping class name\n         * or the custom dropping class name (return result from onDragEnter) to the root elemet.\n         *\n         * when change to false, that means drag leave. we will remove the dropping class name from root element.\n         *\n         * @param newValue - New isDropping state value\n         * @param event - The event trigger dropping state change which can be dragenter, dragleave etc\n         */\n        _this._updateDroppingState = function (newValue, event) {\n            var isDropping = _this.state.isDropping;\n            var _a = _this.props, dragDropEvents = _a.dragDropEvents, item = _a.item;\n            if (!newValue) {\n                if (dragDropEvents.onDragLeave) {\n                    dragDropEvents.onDragLeave(item, event);\n                }\n            }\n            else if (dragDropEvents.onDragEnter) {\n                _this._droppingClassNames = dragDropEvents.onDragEnter(item, event);\n            }\n            if (isDropping !== newValue) {\n                _this.setState({ isDropping: newValue });\n            }\n        };\n        initializeComponentRef(_this);\n        _this._events = new EventGroup(_this);\n        _this.state = {\n            selectionState: getSelectionState(props),\n            columnMeasureInfo: undefined,\n            isDropping: false,\n        };\n        _this._droppingClassNames = '';\n        return _this;\n    }\n    DetailsRowBase.getDerivedStateFromProps = function (nextProps, previousState) {\n        return __assign(__assign({}, previousState), { selectionState: getSelectionState(nextProps) });\n    };\n    DetailsRowBase.prototype.componentDidMount = function () {\n        var _a = this.props, dragDropHelper = _a.dragDropHelper, selection = _a.selection, item = _a.item, onDidMount = _a.onDidMount;\n        if (dragDropHelper && this._root.current) {\n            this._dragDropSubscription = dragDropHelper.subscribe(this._root.current, this._events, this._getRowDragDropOptions());\n        }\n        if (selection) {\n            this._events.on(selection, SELECTION_CHANGE, this._onSelectionChanged);\n        }\n        if (onDidMount && item) {\n            // If the item appears later, we should wait for it before calling this method.\n            this._onDidMountCalled = true;\n            onDidMount(this);\n        }\n    };\n    DetailsRowBase.prototype.componentDidUpdate = function (previousProps) {\n        var state = this.state;\n        var _a = this.props, item = _a.item, onDidMount = _a.onDidMount;\n        var columnMeasureInfo = state.columnMeasureInfo;\n        if (this.props.itemIndex !== previousProps.itemIndex ||\n            this.props.item !== previousProps.item ||\n            this.props.dragDropHelper !== previousProps.dragDropHelper) {\n            if (this._dragDropSubscription) {\n                this._dragDropSubscription.dispose();\n                delete this._dragDropSubscription;\n            }\n            if (this.props.dragDropHelper && this._root.current) {\n                this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getRowDragDropOptions());\n            }\n        }\n        if (columnMeasureInfo && columnMeasureInfo.index >= 0 && this._cellMeasurer.current) {\n            var newWidth = this._cellMeasurer.current.getBoundingClientRect().width;\n            columnMeasureInfo.onMeasureDone(newWidth);\n            this.setState({\n                columnMeasureInfo: undefined,\n            });\n        }\n        if (item && onDidMount && !this._onDidMountCalled) {\n            this._onDidMountCalled = true;\n            onDidMount(this);\n        }\n    };\n    DetailsRowBase.prototype.componentWillUnmount = function () {\n        var _a = this.props, item = _a.item, onWillUnmount = _a.onWillUnmount;\n        // Only call the onWillUnmount callback if we have an item.\n        if (onWillUnmount && item) {\n            onWillUnmount(this);\n        }\n        if (this._dragDropSubscription) {\n            this._dragDropSubscription.dispose();\n            delete this._dragDropSubscription;\n        }\n        this._events.dispose();\n    };\n    DetailsRowBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n        if (this.props.useReducedRowRenderer) {\n            var newSelectionState = getSelectionState(nextProps);\n            if (this.state.selectionState.isSelected !== newSelectionState.isSelected) {\n                return true;\n            }\n            return !shallowCompare(this.props, nextProps);\n        }\n        else {\n            return true;\n        }\n    };\n    DetailsRowBase.prototype.render = function () {\n        var _a;\n        var _b = this.props, className = _b.className, _c = _b.columns, columns = _c === void 0 ? NO_COLUMNS : _c, dragDropEvents = _b.dragDropEvents, item = _b.item, itemIndex = _b.itemIndex, id = _b.id, _d = _b.flatIndexOffset, flatIndexOffset = _d === void 0 ? 2 : _d, _e = _b.onRenderCheck, onRenderCheck = _e === void 0 ? this._onRenderCheck : _e, onRenderDetailsCheckbox = _b.onRenderDetailsCheckbox, onRenderItemColumn = _b.onRenderItemColumn, onRenderField = _b.onRenderField, getCellValueKey = _b.getCellValueKey, selectionMode = _b.selectionMode, checkboxVisibility = _b.checkboxVisibility, getRowAriaLabel = _b.getRowAriaLabel, getRowAriaDescription = _b.getRowAriaDescription, getRowAriaDescribedBy = _b.getRowAriaDescribedBy, isGridRow = _b.isGridRow, checkButtonAriaLabel = _b.checkButtonAriaLabel, checkboxCellClassName = _b.checkboxCellClassName, \n        /** Alias rowFieldsAs as RowFields and default to DetailsRowFields if rowFieldsAs does not exist */\n        rowFieldsAs = _b.rowFieldsAs, selection = _b.selection, indentWidth = _b.indentWidth, enableUpdateAnimations = _b.enableUpdateAnimations, compact = _b.compact, theme = _b.theme, styles = _b.styles, cellsByColumn = _b.cellsByColumn, groupNestingDepth = _b.groupNestingDepth, _f = _b.useFastIcons, useFastIcons = _f === void 0 ? true : _f, cellStyleProps = _b.cellStyleProps, group = _b.group, focusZoneProps = _b.focusZoneProps, _g = _b.disabled, disabled = _g === void 0 ? false : _g;\n        var _h = this.state, columnMeasureInfo = _h.columnMeasureInfo, isDropping = _h.isDropping;\n        var _j = this.state.selectionState, _k = _j.isSelected, isSelected = _k === void 0 ? false : _k, _l = _j.isSelectionModal, isSelectionModal = _l === void 0 ? false : _l;\n        var isDraggable = dragDropEvents ? !!(dragDropEvents.canDrag && dragDropEvents.canDrag(item)) : undefined;\n        var droppingClassName = isDropping ? this._droppingClassNames || DEFAULT_DROPPING_CSS_CLASS : '';\n        var ariaLabel = getRowAriaLabel ? getRowAriaLabel(item) : undefined;\n        var ariaRowDescription = getRowAriaDescription ? getRowAriaDescription(item) : undefined;\n        var ariaDescribedBy = getRowAriaDescribedBy ? getRowAriaDescribedBy(item) : undefined;\n        var canSelect = !!selection && selection.canSelectItem(item, itemIndex) && !disabled;\n        var isContentUnselectable = selectionMode === SelectionMode.multiple;\n        var showCheckbox = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden;\n        var ariaSelected = selectionMode === SelectionMode.none ? undefined : isSelected;\n        var ariaPositionInSet = group ? itemIndex - group.startIndex + 1 : undefined;\n        var ariaSetSize = group ? group.count : undefined;\n        var focusZoneDirection = focusZoneProps ? focusZoneProps.direction : FocusZoneDirection.horizontal;\n        this._classNames = __assign(__assign({}, this._classNames), getClassNames(styles, {\n            theme: theme,\n            isSelected: isSelected,\n            canSelect: !isContentUnselectable,\n            anySelected: isSelectionModal,\n            checkboxCellClassName: checkboxCellClassName,\n            droppingClassName: droppingClassName,\n            className: className,\n            compact: compact,\n            enableUpdateAnimations: enableUpdateAnimations,\n            cellStyleProps: cellStyleProps,\n            disabled: disabled,\n        }));\n        var rowClassNames = {\n            isMultiline: this._classNames.isMultiline,\n            isRowHeader: this._classNames.isRowHeader,\n            cell: this._classNames.cell,\n            cellAnimation: this._classNames.cellAnimation,\n            cellPadded: this._classNames.cellPadded,\n            cellUnpadded: this._classNames.cellUnpadded,\n            fields: this._classNames.fields,\n        };\n        // Only re-assign rowClassNames when classNames have changed.\n        // Otherwise, they will cause DetailsRowFields to unnecessarily\n        // re-render, see https://github.com/microsoft/fluentui/pull/8799.\n        // Refactor DetailsRowFields to generate own styles to remove need for this.\n        if (!shallowCompare(this._rowClassNames || {}, rowClassNames)) {\n            this._rowClassNames = rowClassNames;\n        }\n        var RowFields = rowFieldsAs ? composeComponentAs(rowFieldsAs, DetailsRowFields) : DetailsRowFields;\n        var rowFields = (React.createElement(RowFields, { rowClassNames: this._rowClassNames, rowHeaderId: \"\".concat(id, \"-header\"), cellsByColumn: cellsByColumn, columns: columns, item: item, itemIndex: itemIndex, isSelected: isSelected, columnStartIndex: (showCheckbox ? 1 : 0) + (groupNestingDepth ? 1 : 0), onRenderItemColumn: onRenderItemColumn, onRenderField: onRenderField, getCellValueKey: getCellValueKey, enableUpdateAnimations: enableUpdateAnimations, cellStyleProps: cellStyleProps }));\n        var defaultRole = 'row';\n        var role = this.props.role ? this.props.role : defaultRole;\n        this._ariaRowDescriptionId = getId('DetailsRow-description');\n        // When the user does not specify any column is a row-header in the columns props,\n        // The aria-labelledby of the checkbox does not specify {id}-header.\n        var hasRowHeader = columns.some(function (column) {\n            return !!column.isRowHeader;\n        });\n        var ariaLabelledby = \"\".concat(id, \"-checkbox\") + (hasRowHeader ? \" \".concat(id, \"-header\") : '');\n        // additional props for rows within a GroupedList\n        // these are needed for treegrid row semantics, but not grid row semantics\n        var groupedListRowProps = isGridRow\n            ? {}\n            : {\n                'aria-level': (groupNestingDepth && groupNestingDepth + 1) || undefined,\n                'aria-posinset': ariaPositionInSet,\n                'aria-setsize': ariaSetSize,\n            };\n        return (React.createElement(FocusZone, __assign({ \"data-is-focusable\": true }, getNativeProps(this.props, divProperties), (typeof isDraggable === 'boolean'\n            ? {\n                'data-is-draggable': isDraggable,\n                draggable: isDraggable,\n            }\n            : {}), focusZoneProps, groupedListRowProps, { direction: focusZoneDirection, elementRef: this._root, componentRef: this._focusZone, role: role, \"aria-label\": ariaLabel, \"aria-disabled\": disabled || undefined, \"aria-describedby\": ariaRowDescription ? this._ariaRowDescriptionId : ariaDescribedBy, className: this._classNames.root, \"data-selection-index\": itemIndex, \"data-selection-touch-invoke\": true, \"data-selection-disabled\": (_a = this.props['data-selection-disabled']) !== null && _a !== void 0 ? _a : (disabled || undefined), \"data-item-index\": itemIndex, \"aria-rowindex\": ariaPositionInSet === undefined ? itemIndex + flatIndexOffset : undefined, \"data-automationid\": \"DetailsRow\", \"aria-selected\": ariaSelected, allowFocusRoot: true }),\n            ariaRowDescription ? (React.createElement(\"span\", { key: \"description\", role: \"presentation\", hidden: true, id: this._ariaRowDescriptionId }, ariaRowDescription)) : null,\n            showCheckbox && (React.createElement(\"div\", { role: \"gridcell\", \"data-selection-toggle\": true, className: this._classNames.checkCell }, onRenderCheck({\n                id: id ? \"\".concat(id, \"-checkbox\") : undefined,\n                selected: isSelected,\n                selectionMode: selectionMode,\n                anySelected: isSelectionModal,\n                'aria-label': checkButtonAriaLabel,\n                'aria-labelledby': id ? ariaLabelledby : undefined,\n                canSelect: canSelect,\n                compact: compact,\n                className: this._classNames.check,\n                theme: theme,\n                isVisible: checkboxVisibility === CheckboxVisibility.always,\n                onRenderDetailsCheckbox: onRenderDetailsCheckbox,\n                useFastIcons: useFastIcons,\n            }))),\n            React.createElement(GroupSpacer, { indentWidth: indentWidth, role: \"gridcell\", count: groupNestingDepth === 0 ? -1 : groupNestingDepth }),\n            item && rowFields,\n            columnMeasureInfo && (React.createElement(\"span\", { role: \"presentation\", className: css(this._classNames.cellMeasurer, this._classNames.cell), ref: this._cellMeasurer },\n                React.createElement(RowFields, { rowClassNames: this._rowClassNames, rowHeaderId: \"\".concat(id, \"-header\"), columns: [columnMeasureInfo.column], item: item, itemIndex: itemIndex, columnStartIndex: (showCheckbox ? 1 : 0) + (groupNestingDepth ? 1 : 0) + columns.length, onRenderItemColumn: onRenderItemColumn, getCellValueKey: getCellValueKey })))));\n    };\n    /**\n     * measure cell at index. and call the call back with the measured cell width when finish measure\n     *\n     * @param index - The cell index\n     * @param onMeasureDone - The call back function when finish measure\n     */\n    DetailsRowBase.prototype.measureCell = function (index, onMeasureDone) {\n        var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n        var column = __assign({}, columns[index]);\n        column.minWidth = 0;\n        column.maxWidth = 999999;\n        delete column.calculatedWidth;\n        this.setState({\n            columnMeasureInfo: {\n                index: index,\n                column: column,\n                onMeasureDone: onMeasureDone,\n            },\n        });\n    };\n    DetailsRowBase.prototype.focus = function (forceIntoFirstElement) {\n        var _a;\n        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n        return !!((_a = this._focusZone.current) === null || _a === void 0 ? void 0 : _a.focus(forceIntoFirstElement));\n    };\n    DetailsRowBase.prototype._onRenderCheck = function (props) {\n        return React.createElement(DetailsRowCheck, __assign({}, props));\n    };\n    DetailsRowBase.prototype._getRowDragDropOptions = function () {\n        var _a = this.props, item = _a.item, itemIndex = _a.itemIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;\n        var options = {\n            eventMap: eventsToRegister,\n            selectionIndex: itemIndex,\n            context: { data: item, index: itemIndex },\n            canDrag: dragDropEvents.canDrag,\n            canDrop: dragDropEvents.canDrop,\n            onDragStart: dragDropEvents.onDragStart,\n            updateDropState: this._updateDroppingState,\n            onDrop: dragDropEvents.onDrop,\n            onDragEnd: dragDropEvents.onDragEnd,\n            onDragOver: dragDropEvents.onDragOver,\n        };\n        return options;\n    };\n    return DetailsRowBase;\n}(React.Component));\nexport { DetailsRowBase };\nfunction getSelectionState(props) {\n    var _a;\n    var itemIndex = props.itemIndex, selection = props.selection;\n    return {\n        isSelected: !!(selection === null || selection === void 0 ? void 0 : selection.isIndexSelected(itemIndex)),\n        isSelectionModal: !!((_a = selection === null || selection === void 0 ? void 0 : selection.isModal) === null || _a === void 0 ? void 0 : _a.call(selection)),\n    };\n}\n//# sourceMappingURL=DetailsRow.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsRowBase } from './DetailsRow.base';\nimport { getDetailsRowStyles } from './DetailsRow.styles';\nexport var DetailsRow = styled(DetailsRowBase, getDetailsRowStyles, undefined, {\n    scope: 'DetailsRow',\n});\n//# sourceMappingURL=DetailsRow.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, AnimationStyles, HighContrastSelector, getFocusStyle, getGlobalClassNames, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { GlobalClassNames as LinkGlobalClassNames } from '../../components/Link/Link.styles';\nexport var DetailsRowGlobalClassNames = {\n    root: 'ms-DetailsRow',\n    // TODO: in Fabric 7.0 lowercase the 'Compact' for consistency across other components.\n    compact: 'ms-DetailsList--Compact',\n    cell: 'ms-DetailsRow-cell',\n    cellAnimation: 'ms-DetailsRow-cellAnimation',\n    cellCheck: 'ms-DetailsRow-cellCheck',\n    check: 'ms-DetailsRow-check',\n    cellMeasurer: 'ms-DetailsRow-cellMeasurer',\n    listCellFirstChild: 'ms-List-cell:first-child',\n    isContentUnselectable: 'is-contentUnselectable',\n    isSelected: 'is-selected',\n    isCheckVisible: 'is-check-visible',\n    isRowHeader: 'is-row-header',\n    fields: 'ms-DetailsRow-fields',\n};\nvar IsFocusableSelector = \"[data-is-focusable='true']\";\nexport var DEFAULT_CELL_STYLE_PROPS = {\n    cellLeftPadding: 12,\n    cellRightPadding: 8,\n    cellExtraRightPadding: 24,\n};\n// Source of default row heights to share.\nexport var DEFAULT_ROW_HEIGHTS = {\n    rowHeight: 42,\n    compactRowHeight: 32,\n};\n// Constant values\nvar values = __assign(__assign({}, DEFAULT_ROW_HEIGHTS), { rowVerticalPadding: 11, compactRowVerticalPadding: 6 });\nexport var getDetailsRowStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n    var theme = props.theme, isSelected = props.isSelected, canSelect = props.canSelect, droppingClassName = props.droppingClassName, isCheckVisible = props.isCheckVisible, checkboxCellClassName = props.checkboxCellClassName, compact = props.compact, className = props.className, _q = props.cellStyleProps, cellStyleProps = _q === void 0 ? DEFAULT_CELL_STYLE_PROPS : _q, enableUpdateAnimations = props.enableUpdateAnimations, disabled = props.disabled;\n    var palette = theme.palette, fonts = theme.fonts;\n    var neutralPrimary = palette.neutralPrimary, white = palette.white, neutralSecondary = palette.neutralSecondary, neutralLighter = palette.neutralLighter, neutralLight = palette.neutralLight, neutralDark = palette.neutralDark, neutralQuaternaryAlt = palette.neutralQuaternaryAlt;\n    var _r = theme.semanticColors, focusBorder = _r.focusBorder, focusedLinkColor = _r.linkHovered;\n    var classNames = getGlobalClassNames(DetailsRowGlobalClassNames, theme);\n    var colors = {\n        // Default\n        defaultHeaderText: neutralPrimary,\n        defaultMetaText: neutralSecondary,\n        defaultBackground: white,\n        // Default Hover\n        defaultHoverHeaderText: neutralDark,\n        defaultHoverMetaText: neutralPrimary,\n        defaultHoverBackground: neutralLighter,\n        // Selected\n        selectedHeaderText: neutralDark,\n        selectedMetaText: neutralPrimary,\n        selectedBackground: neutralLight,\n        // Selected Hover\n        selectedHoverHeaderText: neutralDark,\n        selectedHoverMetaText: neutralPrimary,\n        selectedHoverBackground: neutralQuaternaryAlt,\n        // Focus\n        focusHeaderText: neutralDark,\n        focusMetaText: neutralPrimary,\n        focusBackground: neutralLight,\n        focusHoverBackground: neutralQuaternaryAlt,\n    };\n    var rowHighContrastFocus = {\n        top: 2,\n        right: 2,\n        bottom: 2,\n        left: 2,\n    };\n    // Selected row styles\n    var selectedStyles = [\n        getFocusStyle(theme, {\n            inset: -1,\n            borderColor: focusBorder,\n            outlineColor: white,\n            highContrastStyle: rowHighContrastFocus,\n            pointerEvents: 'none',\n        }),\n        classNames.isSelected,\n        {\n            color: colors.selectedMetaText,\n            background: colors.selectedBackground,\n            borderBottom: \"1px solid \".concat(white),\n            selectors: (_a = {\n                    '&:before': {\n                        position: 'absolute',\n                        display: 'block',\n                        top: -1,\n                        height: 1,\n                        bottom: 0,\n                        left: 0,\n                        right: 0,\n                        content: '',\n                        borderTop: \"1px solid \".concat(white),\n                    }\n                },\n                _a[\".\".concat(classNames.cell, \" > .\").concat(LinkGlobalClassNames.root)] = {\n                    color: focusedLinkColor,\n                    selectors: (_b = {},\n                        _b[HighContrastSelector] = {\n                            color: 'HighlightText',\n                        },\n                        _b),\n                },\n                // Selected State hover\n                _a['&:hover'] = {\n                    background: colors.selectedHoverBackground,\n                    color: colors.selectedHoverMetaText,\n                    selectors: (_c = {},\n                        // Selected State hover meta cell\n                        _c[HighContrastSelector] = {\n                            background: 'Highlight',\n                            selectors: (_d = {},\n                                _d[\".\".concat(classNames.cell)] = {\n                                    color: 'HighlightText',\n                                },\n                                _d[\".\".concat(classNames.cell, \" > .\").concat(LinkGlobalClassNames.root)] = {\n                                    forcedColorAdjust: 'none',\n                                    color: 'HighlightText',\n                                },\n                                _d),\n                        },\n                        // Selected State hover Header cell\n                        _c[\".\".concat(classNames.isRowHeader)] = {\n                            color: colors.selectedHoverHeaderText,\n                            selectors: (_e = {},\n                                _e[HighContrastSelector] = {\n                                    color: 'HighlightText',\n                                },\n                                _e),\n                        },\n                        _c),\n                },\n                // Focus state\n                _a['&:focus'] = {\n                    background: colors.focusBackground,\n                    selectors: (_f = {},\n                        // Selected State hover meta cell\n                        _f[\".\".concat(classNames.cell)] = {\n                            color: colors.focusMetaText,\n                            selectors: (_g = {},\n                                _g[HighContrastSelector] = {\n                                    color: 'HighlightText',\n                                    selectors: {\n                                        '> a': {\n                                            color: 'HighlightText',\n                                        },\n                                    },\n                                },\n                                _g),\n                        },\n                        // Row header cell\n                        _f[\".\".concat(classNames.isRowHeader)] = {\n                            color: colors.focusHeaderText,\n                            selectors: (_h = {},\n                                _h[HighContrastSelector] = {\n                                    color: 'HighlightText',\n                                },\n                                _h),\n                        },\n                        // Ensure high-contrast mode overrides default focus background\n                        _f[HighContrastSelector] = {\n                            background: 'Highlight',\n                        },\n                        _f),\n                },\n                _a[HighContrastSelector] = __assign(__assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()), { selectors: {\n                        a: {\n                            color: 'HighlightText',\n                        },\n                    } }),\n                // Focus and hover state\n                _a['&:focus:hover'] = {\n                    background: colors.focusHoverBackground,\n                },\n                _a),\n        },\n    ];\n    var cannotSelectStyles = [\n        classNames.isContentUnselectable,\n        {\n            userSelect: 'none',\n            cursor: 'default',\n        },\n    ];\n    var rootCompactStyles = {\n        minHeight: values.compactRowHeight,\n        border: 0,\n    };\n    var cellCompactStyles = {\n        minHeight: values.compactRowHeight,\n        paddingTop: values.compactRowVerticalPadding,\n        paddingBottom: values.compactRowVerticalPadding,\n        paddingLeft: \"\".concat(cellStyleProps.cellLeftPadding, \"px\"),\n    };\n    var defaultCellStyles = [\n        getFocusStyle(theme, { inset: -1 }),\n        classNames.cell,\n        {\n            display: 'inline-block',\n            position: 'relative',\n            boxSizing: 'border-box',\n            minHeight: values.rowHeight,\n            verticalAlign: 'top',\n            whiteSpace: 'nowrap',\n            overflow: 'hidden',\n            textOverflow: 'ellipsis',\n            paddingTop: values.rowVerticalPadding,\n            paddingBottom: values.rowVerticalPadding,\n            paddingLeft: \"\".concat(cellStyleProps.cellLeftPadding, \"px\"),\n            selectors: (_j = {\n                    '& > button': {\n                        maxWidth: '100%',\n                    }\n                },\n                _j[IsFocusableSelector] = getFocusStyle(theme, { inset: -1, borderColor: neutralSecondary, outlineColor: white }),\n                _j),\n        },\n        isSelected && {\n            selectors: (_k = {},\n                _k[HighContrastSelector] = __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n                _k),\n        },\n        compact && cellCompactStyles,\n        disabled && { opacity: 0.5 },\n    ];\n    return {\n        root: [\n            classNames.root,\n            AnimationClassNames.fadeIn400,\n            droppingClassName,\n            theme.fonts.small,\n            isCheckVisible && classNames.isCheckVisible,\n            getFocusStyle(theme, { borderColor: focusBorder, outlineColor: white }),\n            {\n                borderBottom: \"1px solid \".concat(neutralLighter),\n                background: colors.defaultBackground,\n                color: colors.defaultMetaText,\n                // This ensures that the row always tries to consume is minimum width and does not compress.\n                display: 'inline-flex',\n                minWidth: '100%',\n                minHeight: values.rowHeight,\n                whiteSpace: 'nowrap',\n                padding: 0,\n                boxSizing: 'border-box',\n                verticalAlign: 'top',\n                textAlign: 'left',\n                selectors: (_l = {},\n                    _l[\".\".concat(classNames.listCellFirstChild, \" &:before\")] = {\n                        display: 'none',\n                    },\n                    _l['&:hover'] = {\n                        background: colors.defaultHoverBackground,\n                        color: colors.defaultHoverMetaText,\n                        selectors: (_m = {},\n                            _m[\".\".concat(classNames.isRowHeader)] = {\n                                color: colors.defaultHoverHeaderText,\n                            },\n                            _m[\".\".concat(classNames.cell, \" > .\").concat(LinkGlobalClassNames.root)] = {\n                                color: focusedLinkColor,\n                            },\n                            _m),\n                    },\n                    _l[\"&:hover .\".concat(classNames.check)] = {\n                        opacity: 1,\n                    },\n                    _l[\".\".concat(IsFocusVisibleClassName, \" &:focus .\").concat(classNames.check)] = {\n                        opacity: 1,\n                    },\n                    _l['.ms-GroupSpacer'] = {\n                        flexShrink: 0,\n                        flexGrow: 0,\n                    },\n                    _l),\n            },\n            isSelected && selectedStyles,\n            !canSelect && cannotSelectStyles,\n            compact && rootCompactStyles,\n            className,\n        ],\n        cellUnpadded: {\n            paddingRight: \"\".concat(cellStyleProps.cellRightPadding, \"px\"),\n        },\n        cellPadded: {\n            paddingRight: \"\".concat(cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding, \"px\"),\n            selectors: (_o = {},\n                _o[\"&.\".concat(classNames.cellCheck)] = {\n                    paddingRight: 0,\n                },\n                _o),\n        },\n        cell: defaultCellStyles,\n        cellAnimation: enableUpdateAnimations && AnimationStyles.slideLeftIn40,\n        cellMeasurer: [\n            classNames.cellMeasurer,\n            {\n                overflow: 'visible',\n                whiteSpace: 'nowrap',\n            },\n        ],\n        checkCell: [\n            defaultCellStyles,\n            classNames.cellCheck,\n            checkboxCellClassName,\n            {\n                padding: 0,\n                // Ensure that the check cell covers the top border of the cell.\n                // This ensures the click target does not leave a spot which would\n                // cause other items to be deselected.\n                paddingTop: 1,\n                marginTop: -1,\n                flexShrink: 0,\n            },\n        ],\n        fields: [\n            classNames.fields,\n            {\n                display: 'flex',\n                alignItems: 'stretch',\n            },\n        ],\n        isRowHeader: [\n            classNames.isRowHeader,\n            {\n                color: colors.defaultHeaderText,\n                fontSize: fonts.medium.fontSize,\n            },\n            isSelected && {\n                color: colors.selectedHeaderText,\n                fontWeight: FontWeights.semibold,\n                selectors: (_p = {},\n                    _p[HighContrastSelector] = {\n                        color: 'HighlightText',\n                    },\n                    _p),\n            },\n        ],\n        isMultiline: [\n            defaultCellStyles,\n            {\n                whiteSpace: 'normal',\n                wordBreak: 'break-word',\n                textOverflow: 'clip',\n            },\n        ],\n        check: [classNames.check],\n    };\n};\n//# sourceMappingURL=DetailsRow.styles.js.map","import { labelProperties, audioProperties, videoProperties, olProperties, liProperties, anchorProperties, buttonProperties, inputProperties, textAreaProperties, selectProperties, optionProperties, tableProperties, trProperties, thProperties, tdProperties, colGroupProperties, colProperties, formProperties, iframeProperties, imgProperties, htmlElementProperties, getNativeProps, } from './properties';\nvar nativeElementMap = {\n    label: labelProperties,\n    audio: audioProperties,\n    video: videoProperties,\n    ol: olProperties,\n    li: liProperties,\n    a: anchorProperties,\n    button: buttonProperties,\n    input: inputProperties,\n    textarea: textAreaProperties,\n    select: selectProperties,\n    option: optionProperties,\n    table: tableProperties,\n    tr: trProperties,\n    th: thProperties,\n    td: tdProperties,\n    colGroup: colGroupProperties,\n    col: colProperties,\n    form: formProperties,\n    iframe: iframeProperties,\n    img: imgProperties,\n};\n/**\n * Given an element tagname and user props, filters the props to only allowed props for the given\n * element type.\n * @param tagName - Tag name (e.g. \"div\")\n * @param props - Props object\n * @param excludedPropNames - List of props to disallow\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeElementProps(tagName, props, excludedPropNames) {\n    var allowedPropNames = (tagName && nativeElementMap[tagName]) || htmlElementProperties;\n    return getNativeProps(props, allowedPropNames, excludedPropNames);\n}\n//# sourceMappingURL=getNativeElementProps.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css, styled, classNamesFunction, composeRenderFunction, getNativeElementProps } from '../../Utilities';\nimport { Check } from '../../Check';\nimport { getDetailsRowCheckStyles } from './DetailsRowCheck.styles';\nimport { SelectionMode } from '../../Selection';\nvar getClassNames = classNamesFunction();\nvar DetailsRowCheckBase = function (props) {\n    var _a = props.isVisible, isVisible = _a === void 0 ? false : _a, _b = props.canSelect, canSelect = _b === void 0 ? false : _b, _c = props.anySelected, anySelected = _c === void 0 ? false : _c, _d = props.selected, selected = _d === void 0 ? false : _d, selectionMode = props.selectionMode, _e = props.isHeader, isHeader = _e === void 0 ? false : _e, className = props.className, checkClassName = props.checkClassName, styles = props.styles, theme = props.theme, compact = props.compact, onRenderDetailsCheckbox = props.onRenderDetailsCheckbox, _f = props.useFastIcons, useFastIcons = _f === void 0 ? true : _f, // must be removed from buttonProps\n    buttonProps = __rest(props, [\"isVisible\", \"canSelect\", \"anySelected\", \"selected\", \"selectionMode\", \"isHeader\", \"className\", \"checkClassName\", \"styles\", \"theme\", \"compact\", \"onRenderDetailsCheckbox\", \"useFastIcons\"]);\n    var defaultCheckboxRender = useFastIcons ? _fastDefaultCheckboxRender : _defaultCheckboxRender;\n    var onRenderCheckbox = onRenderDetailsCheckbox\n        ? composeRenderFunction(onRenderDetailsCheckbox, defaultCheckboxRender)\n        : defaultCheckboxRender;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        canSelect: canSelect,\n        selected: selected,\n        anySelected: anySelected,\n        className: className,\n        isHeader: isHeader,\n        isVisible: isVisible,\n        compact: compact,\n    });\n    var detailsCheckboxProps = {\n        checked: selected,\n        theme: theme,\n    };\n    var divProps = getNativeElementProps('div', buttonProps, ['aria-label', 'aria-labelledby', 'aria-describedby']);\n    var checkRole = selectionMode === SelectionMode.single ? 'radio' : 'checkbox';\n    return canSelect ? (React.createElement(\"div\", __assign({}, buttonProps, { role: checkRole, \n        // eslint-disable-next-line deprecation/deprecation\n        className: css(classNames.root, classNames.check), \"aria-checked\": selected, \"data-selection-toggle\": true, \"data-automationid\": \"DetailsRowCheck\", tabIndex: -1 }), onRenderCheckbox(detailsCheckboxProps))) : (\n    // eslint-disable-next-line deprecation/deprecation\n    React.createElement(\"div\", __assign({}, divProps, { className: css(classNames.root, classNames.check) })));\n};\nvar FastCheck = React.memo(function (props) {\n    return React.createElement(Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true });\n});\nfunction _defaultCheckboxRender(checkboxProps) {\n    return React.createElement(Check, { checked: checkboxProps.checked });\n}\nfunction _fastDefaultCheckboxRender(checkboxProps) {\n    return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked });\n}\nexport var DetailsRowCheck = styled(DetailsRowCheckBase, getDetailsRowCheckStyles, undefined, { scope: 'DetailsRowCheck' }, true);\n//# sourceMappingURL=DetailsRowCheck.js.map","import { getGlobalClassNames, getFocusStyle } from '../../Styling';\nimport { DEFAULT_ROW_HEIGHTS } from './DetailsRow.styles';\nimport { HEADER_HEIGHT } from './DetailsHeader.styles';\nimport { CheckGlobalClassNames } from '../../components/Check/Check.styles';\nvar GlobalClassNames = {\n    root: 'ms-DetailsRow-check',\n    isDisabled: 'ms-DetailsRow-check--isDisabled',\n    isHeader: 'ms-DetailsRow-check--isHeader',\n};\nexport var CHECK_CELL_WIDTH = 48;\nexport var getDetailsRowCheckStyles = function (props) {\n    var theme = props.theme, className = props.className, isHeader = props.isHeader, selected = props.selected, anySelected = props.anySelected, canSelect = props.canSelect, compact = props.compact, isVisible = props.isVisible;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var rowHeight = DEFAULT_ROW_HEIGHTS.rowHeight, compactRowHeight = DEFAULT_ROW_HEIGHTS.compactRowHeight;\n    var height = isHeader ? HEADER_HEIGHT : compact ? compactRowHeight : rowHeight;\n    var isCheckVisible = isVisible || selected || anySelected;\n    return {\n        root: [classNames.root, className],\n        check: [\n            !canSelect && classNames.isDisabled,\n            isHeader && classNames.isHeader,\n            getFocusStyle(theme),\n            theme.fonts.small,\n            CheckGlobalClassNames.checkHost,\n            {\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center',\n                cursor: 'default',\n                boxSizing: 'border-box',\n                verticalAlign: 'top',\n                background: 'none',\n                backgroundColor: 'transparent',\n                border: 'none',\n                opacity: isCheckVisible ? 1 : 0,\n                height: height,\n                width: CHECK_CELL_WIDTH,\n                padding: 0,\n                margin: 0,\n            },\n        ],\n        isDisabled: [],\n    };\n};\n//# sourceMappingURL=DetailsRowCheck.styles.js.map","/**\n * Describes the possible types for shimmer elements used.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementType;\n(function (ShimmerElementType) {\n    /**\n     * Line element type\n     */\n    ShimmerElementType[ShimmerElementType[\"line\"] = 1] = \"line\";\n    /**\n     * Circle element type\n     */\n    ShimmerElementType[ShimmerElementType[\"circle\"] = 2] = \"circle\";\n    /**\n     * Gap element type\n     */\n    ShimmerElementType[ShimmerElementType[\"gap\"] = 3] = \"gap\";\n})(ShimmerElementType || (ShimmerElementType = {}));\n/**\n * Describes the default heights for shimmer elements when omitted in implementation.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsDefaultHeights;\n(function (ShimmerElementsDefaultHeights) {\n    /**\n     * Default height of the line element when not provided by user: 16px\n     */\n    ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"line\"] = 16] = \"line\";\n    /**\n     * Default height of the gap element when not provided by user: 16px\n     */\n    ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"gap\"] = 16] = \"gap\";\n    /**\n     * Default height of the circle element when not provided by user: 24px\n     */\n    ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"circle\"] = 24] = \"circle\";\n})(ShimmerElementsDefaultHeights || (ShimmerElementsDefaultHeights = {}));\n//# sourceMappingURL=Shimmer.types.js.map","import { __assign } from \"tslib\";\nimport { keyframes, getGlobalClassNames, hiddenContentStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-Shimmer-container',\n    shimmerWrapper: 'ms-Shimmer-shimmerWrapper',\n    shimmerGradient: 'ms-Shimmer-shimmerGradient',\n    dataWrapper: 'ms-Shimmer-dataWrapper',\n};\nvar BACKGROUND_OFF_SCREEN_POSITION = '100%';\nvar shimmerAnimation = memoizeFunction(function () {\n    return keyframes({\n        '0%': {\n            transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n        },\n        '100%': {\n            transform: \"translateX(\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n        },\n    });\n});\nvar shimmerAnimationRTL = memoizeFunction(function () {\n    return keyframes({\n        '100%': {\n            transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n        },\n        '0%': {\n            transform: \"translateX(\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n        },\n    });\n});\nexport function getStyles(props) {\n    var _a;\n    var isDataLoaded = props.isDataLoaded, className = props.className, theme = props.theme, transitionAnimationInterval = props.transitionAnimationInterval, shimmerColor = props.shimmerColor, shimmerWaveColor = props.shimmerWaveColor, improveCSSPerformance = props.improveCSSPerformance;\n    var semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var isRTL = getRTL(theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                position: 'relative',\n                height: 'auto',\n            },\n            className,\n        ],\n        shimmerWrapper: [\n            classNames.shimmerWrapper,\n            {\n                position: 'relative',\n                overflow: 'hidden',\n                transform: 'translateZ(0)',\n                backgroundColor: shimmerColor || semanticColors.disabledBackground,\n                transition: \"opacity \".concat(transitionAnimationInterval, \"ms\"),\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign({ background: \"WindowText\\n                        linear-gradient(\\n                          to right,\\n                          transparent 0%,\\n                          Window 50%,\\n                          transparent 100%)\\n                        0 0 / 90% 100%\\n                        no-repeat\" }, getHighContrastNoAdjustStyle()),\n                    _a),\n            },\n            isDataLoaded && {\n                opacity: '0',\n                position: 'absolute',\n                top: '0',\n                bottom: '0',\n                left: '0',\n                right: '0',\n            },\n            improveCSSPerformance\n                ? {\n                    selectors: {\n                        '> div:last-child': {\n                            transform: 'translateZ(0)',\n                        },\n                    },\n                }\n                : {\n                    selectors: {\n                        '> *': {\n                            transform: 'translateZ(0)',\n                        },\n                    },\n                },\n        ],\n        shimmerGradient: [\n            classNames.shimmerGradient,\n            {\n                position: 'absolute',\n                top: 0,\n                left: 0,\n                width: '100%',\n                height: '100%',\n                background: \"\".concat(shimmerColor || semanticColors.disabledBackground, \"\\n                      linear-gradient(\\n                        to right,\\n                        \").concat(shimmerColor || semanticColors.disabledBackground, \" 0%,\\n                        \").concat(shimmerWaveColor || semanticColors.bodyDivider, \" 50%,\\n                        \").concat(shimmerColor || semanticColors.disabledBackground, \" 100%)\\n                      0 0 / 90% 100%\\n                      no-repeat\"),\n                transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n                animationDuration: '2s',\n                animationTimingFunction: 'ease-in-out',\n                animationDirection: 'normal',\n                animationIterationCount: 'infinite',\n                animationName: isRTL ? shimmerAnimationRTL() : shimmerAnimation(),\n            },\n        ],\n        dataWrapper: [\n            classNames.dataWrapper,\n            {\n                position: 'absolute',\n                top: '0',\n                bottom: '0',\n                left: '0',\n                right: '0',\n                opacity: '0',\n                background: 'none',\n                backgroundColor: 'transparent',\n                border: 'none',\n                transition: \"opacity \".concat(transitionAnimationInterval, \"ms\"),\n            },\n            isDataLoaded && {\n                opacity: '1',\n                position: 'static',\n            },\n        ],\n        screenReaderText: hiddenContentStyle,\n    };\n}\n//# sourceMappingURL=Shimmer.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerLineBase = function (props) {\n    // eslint-disable-next-line deprecation/deprecation\n    var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '100%' : _a, borderStyle = props.borderStyle, theme = props.theme;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        height: height,\n        borderStyle: borderStyle,\n    });\n    return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? \"\".concat(width, \"px\") : 'auto' }, className: classNames.root },\n        React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topLeftCorner },\n            React.createElement(\"path\", { d: \"M0 2 A 2 2, 0, 0, 1, 2 0 L 0 0 Z\" })),\n        React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topRightCorner },\n            React.createElement(\"path\", { d: \"M0 0 A 2 2, 0, 0, 1, 2 2 L 2 0 Z\" })),\n        React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomRightCorner },\n            React.createElement(\"path\", { d: \"M2 0 A 2 2, 0, 0, 1, 0 2 L 2 2 Z\" })),\n        React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomLeftCorner },\n            React.createElement(\"path\", { d: \"M2 2 A 2 2, 0, 0, 1, 0 0 L 0 2 Z\" }))));\n};\n//# sourceMappingURL=ShimmerLine.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-ShimmerLine-root',\n    topLeftCorner: 'ms-ShimmerLine-topLeftCorner',\n    topRightCorner: 'ms-ShimmerLine-topRightCorner',\n    bottomLeftCorner: 'ms-ShimmerLine-bottomLeftCorner',\n    bottomRightCorner: 'ms-ShimmerLine-bottomRightCorner',\n};\nexport function getStyles(props) {\n    var _a;\n    // eslint-disable-next-line deprecation/deprecation\n    var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n    var semanticColors = theme.semanticColors;\n    var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n    var borderStyles = borderStyle || {};\n    var sharedCornerStyles = {\n        position: 'absolute',\n        fill: semanticColors.bodyBackground,\n    };\n    return {\n        root: [\n            globalClassNames.root,\n            theme.fonts.medium,\n            {\n                height: \"\".concat(height, \"px\"),\n                boxSizing: 'content-box',\n                position: 'relative',\n                borderTopStyle: 'solid',\n                borderBottomStyle: 'solid',\n                borderColor: semanticColors.bodyBackground,\n                borderWidth: 0,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderColor: 'Window',\n                        selectors: {\n                            '> *': {\n                                fill: 'Window',\n                            },\n                        },\n                    },\n                    _a),\n            },\n            borderStyles,\n        ],\n        topLeftCorner: [\n            globalClassNames.topLeftCorner,\n            {\n                top: '0',\n                left: '0',\n            },\n            sharedCornerStyles,\n        ],\n        topRightCorner: [\n            globalClassNames.topRightCorner,\n            {\n                top: '0',\n                right: '0',\n            },\n            sharedCornerStyles,\n        ],\n        bottomRightCorner: [\n            globalClassNames.bottomRightCorner,\n            {\n                bottom: '0',\n                right: '0',\n            },\n            sharedCornerStyles,\n        ],\n        bottomLeftCorner: [\n            globalClassNames.bottomLeftCorner,\n            {\n                bottom: '0',\n                left: '0',\n            },\n            sharedCornerStyles,\n        ],\n    };\n}\n//# sourceMappingURL=ShimmerLine.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerLineBase } from './ShimmerLine.base';\nimport { getStyles } from './ShimmerLine.styles';\nexport var ShimmerLine = styled(ShimmerLineBase, getStyles, undefined, {\n    scope: 'ShimmerLine',\n});\n//# sourceMappingURL=ShimmerLine.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerGapBase = function (props) {\n    // eslint-disable-next-line deprecation/deprecation\n    var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '10px' : _a, borderStyle = props.borderStyle, theme = props.theme;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        height: height,\n        borderStyle: borderStyle,\n    });\n    return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? \"\".concat(width, \"px\") : 'auto' }, className: classNames.root }));\n};\n//# sourceMappingURL=ShimmerGap.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-ShimmerGap-root',\n};\nexport function getStyles(props) {\n    var _a;\n    // eslint-disable-next-line deprecation/deprecation\n    var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n    var semanticColors = theme.semanticColors;\n    var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n    var borderStyles = borderStyle || {};\n    return {\n        root: [\n            globalClassNames.root,\n            theme.fonts.medium,\n            {\n                backgroundColor: semanticColors.bodyBackground,\n                height: \"\".concat(height, \"px\"),\n                boxSizing: 'content-box',\n                borderTopStyle: 'solid',\n                borderBottomStyle: 'solid',\n                borderColor: semanticColors.bodyBackground,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        backgroundColor: 'Window',\n                        borderColor: 'Window',\n                    },\n                    _a),\n            },\n            borderStyles,\n        ],\n    };\n}\n//# sourceMappingURL=ShimmerGap.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerGapBase } from './ShimmerGap.base';\nimport { getStyles } from './ShimmerGap.styles';\nexport var ShimmerGap = styled(ShimmerGapBase, getStyles, undefined, {\n    scope: 'ShimmerGap',\n});\n//# sourceMappingURL=ShimmerGap.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-ShimmerCircle-root',\n    svg: 'ms-ShimmerCircle-svg',\n};\nexport function getStyles(props) {\n    var _a, _b;\n    // eslint-disable-next-line deprecation/deprecation\n    var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n    var semanticColors = theme.semanticColors;\n    var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n    var borderStyles = borderStyle || {};\n    return {\n        root: [\n            globalClassNames.root,\n            theme.fonts.medium,\n            {\n                width: \"\".concat(height, \"px\"),\n                height: \"\".concat(height, \"px\"),\n                minWidth: \"\".concat(height, \"px\"),\n                boxSizing: 'content-box',\n                borderTopStyle: 'solid',\n                borderBottomStyle: 'solid',\n                borderColor: semanticColors.bodyBackground,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderColor: 'Window',\n                    },\n                    _a),\n            },\n            borderStyles,\n        ],\n        svg: [\n            globalClassNames.svg,\n            {\n                display: 'block',\n                fill: semanticColors.bodyBackground,\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = {\n                        fill: 'Window',\n                    },\n                    _b),\n            },\n        ],\n    };\n}\n//# sourceMappingURL=ShimmerCircle.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var ShimmerCircleBase = function (props) {\n    // eslint-disable-next-line deprecation/deprecation\n    var height = props.height, styles = props.styles, borderStyle = props.borderStyle, theme = props.theme;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        height: height,\n        borderStyle: borderStyle,\n    });\n    return (React.createElement(\"div\", { className: classNames.root },\n        React.createElement(\"svg\", { viewBox: \"0 0 10 10\", width: height, height: height, className: classNames.svg },\n            React.createElement(\"path\", { d: \"M0,0 L10,0 L10,10 L0,10 L0,0 Z M0,5 C0,7.76142375 2.23857625,10 5,10 C7.76142375,10 10,7.76142375 10,5 C10,2.23857625 7.76142375,2.22044605e-16 5,0 C2.23857625,-2.22044605e-16 0,2.23857625 0,5 L0,5 Z\" }))));\n};\n//# sourceMappingURL=ShimmerCircle.base.js.map","import { styled } from '../../../Utilities';\nimport { getStyles } from './ShimmerCircle.styles';\nimport { ShimmerCircleBase } from './ShimmerCircle.base';\nexport var ShimmerCircle = styled(ShimmerCircleBase, getStyles, undefined, { scope: 'ShimmerCircle' });\n//# sourceMappingURL=ShimmerCircle.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, memoizeFunction } from '../../../Utilities';\nimport { ShimmerElementType, ShimmerElementsDefaultHeights } from '../Shimmer.types';\nimport { ShimmerLine } from '../ShimmerLine/ShimmerLine';\nimport { ShimmerGap } from '../ShimmerGap/ShimmerGap';\nimport { ShimmerCircle } from '../ShimmerCircle/ShimmerCircle';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsGroupBase = function (props) {\n    var styles = props.styles, _a = props.width, width = _a === void 0 ? 'auto' : _a, shimmerElements = props.shimmerElements, _b = props.rowHeight, rowHeight = _b === void 0 ? findMaxElementHeight(shimmerElements || []) : _b, _c = props.flexWrap, flexWrap = _c === void 0 ? false : _c, theme = props.theme, backgroundColor = props.backgroundColor;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        flexWrap: flexWrap,\n    });\n    return (React.createElement(\"div\", { style: { width: width }, className: classNames.root }, getRenderedElements(shimmerElements, backgroundColor, rowHeight)));\n};\nfunction getRenderedElements(shimmerElements, backgroundColor, rowHeight) {\n    var renderedElements = shimmerElements ? (shimmerElements.map(\n    // false positive\n    // eslint-disable-next-line array-callback-return\n    function (element, index) {\n        var type = element.type, filteredElem = __rest(element, [\"type\"]);\n        var verticalAlign = filteredElem.verticalAlign, height = filteredElem.height;\n        var styles = getElementStyles(verticalAlign, type, height, backgroundColor, rowHeight);\n        switch (element.type) {\n            case ShimmerElementType.circle:\n                return React.createElement(ShimmerCircle, __assign({ key: index }, filteredElem, { styles: styles }));\n            case ShimmerElementType.gap:\n                return React.createElement(ShimmerGap, __assign({ key: index }, filteredElem, { styles: styles }));\n            case ShimmerElementType.line:\n                return React.createElement(ShimmerLine, __assign({ key: index }, filteredElem, { styles: styles }));\n        }\n    })) : (React.createElement(ShimmerLine, { height: ShimmerElementsDefaultHeights.line }));\n    return renderedElements;\n}\nvar getElementStyles = memoizeFunction(function (verticalAlign, elementType, elementHeight, backgroundColor, rowHeight) {\n    var dif = rowHeight && elementHeight ? rowHeight - elementHeight : 0;\n    var borderStyle;\n    if (!verticalAlign || verticalAlign === 'center') {\n        borderStyle = {\n            borderBottomWidth: \"\".concat(dif ? Math.floor(dif / 2) : 0, \"px\"),\n            borderTopWidth: \"\".concat(dif ? Math.ceil(dif / 2) : 0, \"px\"),\n        };\n    }\n    else if (verticalAlign && verticalAlign === 'top') {\n        borderStyle = {\n            borderBottomWidth: \"\".concat(dif, \"px\"),\n            borderTopWidth: \"0px\",\n        };\n    }\n    else if (verticalAlign && verticalAlign === 'bottom') {\n        borderStyle = {\n            borderBottomWidth: \"0px\",\n            borderTopWidth: \"\".concat(dif, \"px\"),\n        };\n    }\n    if (backgroundColor) {\n        switch (elementType) {\n            case ShimmerElementType.circle:\n                return {\n                    root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n                    svg: { fill: backgroundColor },\n                };\n            case ShimmerElementType.gap:\n                return {\n                    root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor, backgroundColor: backgroundColor }),\n                };\n            case ShimmerElementType.line:\n                return {\n                    root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n                    topLeftCorner: { fill: backgroundColor },\n                    topRightCorner: { fill: backgroundColor },\n                    bottomLeftCorner: { fill: backgroundColor },\n                    bottomRightCorner: { fill: backgroundColor },\n                };\n        }\n    }\n    return {\n        root: borderStyle,\n    };\n});\n/**\n * User should not worry to provide which of the elements is the highest so we do the calculation for him.\n * Plus if user forgot to specify the height we assign their defaults.\n */\nfunction findMaxElementHeight(shimmerElements) {\n    var shimmerElementsDefaulted = shimmerElements.map(function (element) {\n        switch (element.type) {\n            case ShimmerElementType.circle:\n                if (!element.height) {\n                    element.height = ShimmerElementsDefaultHeights.circle;\n                }\n                break;\n            case ShimmerElementType.line:\n                if (!element.height) {\n                    element.height = ShimmerElementsDefaultHeights.line;\n                }\n                break;\n            case ShimmerElementType.gap:\n                if (!element.height) {\n                    element.height = ShimmerElementsDefaultHeights.gap;\n                }\n                break;\n        }\n        return element;\n    });\n    var rowHeight = shimmerElementsDefaulted.reduce(function (acc, next) {\n        return next.height ? (next.height > acc ? next.height : acc) : acc;\n    }, 0);\n    return rowHeight;\n}\n//# sourceMappingURL=ShimmerElementsGroup.base.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-ShimmerElementsGroup-root',\n};\nexport function getStyles(props) {\n    var flexWrap = props.flexWrap, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                display: 'flex',\n                alignItems: 'center',\n                flexWrap: flexWrap ? 'wrap' : 'nowrap',\n                position: 'relative',\n            },\n        ],\n    };\n}\n//# sourceMappingURL=ShimmerElementsGroup.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerElementsGroupBase } from './ShimmerElementsGroup.base';\nimport { getStyles } from './ShimmerElementsGroup.styles';\nexport var ShimmerElementsGroup = styled(ShimmerElementsGroupBase, getStyles, undefined, { scope: 'ShimmerElementsGroup' });\n//# sourceMappingURL=ShimmerElementsGroup.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nimport { ShimmerElementsGroup } from './ShimmerElementsGroup/ShimmerElementsGroup';\nimport { useSetTimeout, useConst } from '@fluentui/react-hooks';\nvar TRANSITION_ANIMATION_INTERVAL = 200; /* ms */\nvar COMPONENT_NAME = 'Shimmer';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerBase = React.forwardRef(function (props, ref) {\n    var styles = props.styles, shimmerElements = props.shimmerElements, children = props.children, width = props.width, className = props.className, customElementsGroup = props.customElementsGroup, theme = props.theme, ariaLabel = props.ariaLabel, shimmerColors = props.shimmerColors, _a = props.isDataLoaded, isDataLoaded = _a === void 0 ? false : _a, improveCSSPerformance = props.improveCSSPerformance;\n    var divProps = getNativeProps(props, divProperties);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        isDataLoaded: isDataLoaded,\n        className: className,\n        transitionAnimationInterval: TRANSITION_ANIMATION_INTERVAL,\n        shimmerColor: shimmerColors && shimmerColors.shimmer,\n        shimmerWaveColor: shimmerColors && shimmerColors.shimmerWave,\n        improveCSSPerformance: improveCSSPerformance || !customElementsGroup,\n    });\n    var internalState = useConst({\n        lastTimeoutId: 0,\n    });\n    var _b = useSetTimeout(), setTimeout = _b.setTimeout, clearTimeout = _b.clearTimeout;\n    /**\n     * Flag for knowing when to remove the shimmerWrapper from the DOM.\n     */\n    var _c = React.useState(isDataLoaded), contentLoaded = _c[0], setContentLoaded = _c[1];\n    var divStyleProp = { width: width ? width : '100%' };\n    React.useEffect(function () {\n        if (isDataLoaded !== contentLoaded) {\n            if (isDataLoaded) {\n                internalState.lastTimeoutId = setTimeout(function () {\n                    setContentLoaded(true);\n                }, TRANSITION_ANIMATION_INTERVAL);\n                return function () { return clearTimeout(internalState.lastTimeoutId); };\n            }\n            else {\n                setContentLoaded(false);\n            }\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- Should only run when isDataLoaded changes.\n    }, [isDataLoaded]);\n    return (React.createElement(\"div\", __assign({}, divProps, { className: classNames.root, ref: ref }),\n        !contentLoaded && (React.createElement(\"div\", { style: divStyleProp, className: classNames.shimmerWrapper },\n            React.createElement(\"div\", { className: classNames.shimmerGradient }),\n            customElementsGroup ? (customElementsGroup) : (React.createElement(ShimmerElementsGroup, { shimmerElements: shimmerElements, backgroundColor: shimmerColors && shimmerColors.background })))),\n        children && React.createElement(\"div\", { className: classNames.dataWrapper }, children),\n        ariaLabel && !isDataLoaded && (React.createElement(\"div\", { role: \"status\", \"aria-live\": \"polite\" },\n            React.createElement(DelayedRender, null,\n                React.createElement(\"div\", { className: classNames.screenReaderText }, ariaLabel))))));\n});\nShimmerBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=Shimmer.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Shimmer.styles';\nimport { ShimmerBase } from './Shimmer.base';\nexport var Shimmer = styled(ShimmerBase, getStyles, undefined, {\n    scope: 'Shimmer',\n});\n//# sourceMappingURL=Shimmer.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css } from '../../Utilities';\nimport { SelectionMode } from '../../Selection';\nimport { DetailsList } from './DetailsList';\nimport { Shimmer, ShimmerElementsGroup, ShimmerElementType } from '../../Shimmer';\nimport { CheckboxVisibility } from './DetailsList.types';\nimport { DEFAULT_CELL_STYLE_PROPS, DEFAULT_ROW_HEIGHTS } from './DetailsRow.styles';\nvar getClassNames = classNamesFunction();\nvar SHIMMER_INITIAL_ITEMS = 10;\nvar DEFAULT_SHIMMER_HEIGHT = 7;\nvar SHIMMER_LINE_VS_CELL_WIDTH_RATIO = 0.95;\nvar ShimmeredDetailsListBase = /** @class */ (function (_super) {\n    __extends(ShimmeredDetailsListBase, _super);\n    function ShimmeredDetailsListBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._onRenderShimmerPlaceholder = function (index, rowProps) {\n            var onRenderCustomPlaceholder = _this.props.onRenderCustomPlaceholder;\n            var placeholderElements = onRenderCustomPlaceholder\n                ? onRenderCustomPlaceholder(rowProps, index, _this._renderDefaultShimmerPlaceholder)\n                : _this._renderDefaultShimmerPlaceholder(rowProps);\n            return React.createElement(Shimmer, { customElementsGroup: placeholderElements });\n        };\n        _this._renderDefaultShimmerPlaceholder = function (rowProps) {\n            var columns = rowProps.columns, compact = rowProps.compact, selectionMode = rowProps.selectionMode, checkboxVisibility = rowProps.checkboxVisibility, _a = rowProps.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n            var rowHeight = DEFAULT_ROW_HEIGHTS.rowHeight, compactRowHeight = DEFAULT_ROW_HEIGHTS.compactRowHeight;\n            // 1px to take into account the border-bottom of DetailsRow.\n            var gapHeight = compact ? compactRowHeight : rowHeight + 1;\n            var shimmerElementsRow = [];\n            var showCheckbox = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden;\n            if (showCheckbox) {\n                shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: 'checkboxGap', shimmerElements: [{ type: ShimmerElementType.gap, width: '40px', height: gapHeight }] }));\n            }\n            columns.forEach(function (column, columnIdx) {\n                var shimmerElements = [];\n                var groupWidth = cellStyleProps.cellLeftPadding +\n                    cellStyleProps.cellRightPadding +\n                    column.calculatedWidth +\n                    (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);\n                shimmerElements.push({\n                    type: ShimmerElementType.gap,\n                    width: cellStyleProps.cellLeftPadding,\n                    height: gapHeight,\n                });\n                if (column.isIconOnly) {\n                    shimmerElements.push({\n                        type: ShimmerElementType.line,\n                        width: column.calculatedWidth,\n                        height: column.calculatedWidth,\n                    });\n                    shimmerElements.push({\n                        type: ShimmerElementType.gap,\n                        width: cellStyleProps.cellRightPadding,\n                        height: gapHeight,\n                    });\n                }\n                else {\n                    shimmerElements.push({\n                        type: ShimmerElementType.line,\n                        width: column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO,\n                        height: DEFAULT_SHIMMER_HEIGHT,\n                    });\n                    shimmerElements.push({\n                        type: ShimmerElementType.gap,\n                        width: cellStyleProps.cellRightPadding +\n                            (column.calculatedWidth - column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO) +\n                            (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0),\n                        height: gapHeight,\n                    });\n                }\n                shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: columnIdx, width: \"\".concat(groupWidth, \"px\"), shimmerElements: shimmerElements }));\n            });\n            // When resizing the window from narrow to wider, we need to cover the exposed Shimmer wave\n            // until the column resizing logic is done.\n            shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: 'endGap', width: '100%', shimmerElements: [{ type: ShimmerElementType.gap, width: '100%', height: gapHeight }] }));\n            return React.createElement(\"div\", { style: { display: 'flex' } }, shimmerElementsRow);\n        };\n        _this._shimmerItems = props.shimmerLines ? new Array(props.shimmerLines) : new Array(SHIMMER_INITIAL_ITEMS);\n        return _this;\n    }\n    ShimmeredDetailsListBase.prototype.render = function () {\n        var _a = this.props, detailsListStyles = _a.detailsListStyles, enableShimmer = _a.enableShimmer, items = _a.items, listProps = _a.listProps, onRenderCustomPlaceholder = _a.onRenderCustomPlaceholder, removeFadingOverlay = _a.removeFadingOverlay, shimmerLines = _a.shimmerLines, styles = _a.styles, theme = _a.theme, ariaLabelForGrid = _a.ariaLabelForGrid, ariaLabelForShimmer = _a.ariaLabelForShimmer, restProps = __rest(_a, [\"detailsListStyles\", \"enableShimmer\", \"items\", \"listProps\", \"onRenderCustomPlaceholder\", \"removeFadingOverlay\", \"shimmerLines\", \"styles\", \"theme\", \"ariaLabelForGrid\", \"ariaLabelForShimmer\"]);\n        var listClassName = listProps && listProps.className;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n        });\n        var newListProps = __assign(__assign({}, listProps), { \n            // Adds to the optional listProp className a fading out overlay className only when `enableShimmer` toggled on\n            // and the overlay is not disabled by `removeFadingOverlay` prop.\n            className: enableShimmer && !removeFadingOverlay ? css(this._classNames.root, listClassName) : listClassName });\n        return (React.createElement(DetailsList, __assign({}, restProps, { styles: detailsListStyles, items: enableShimmer ? this._shimmerItems : items, isPlaceholderData: enableShimmer, ariaLabelForGrid: (enableShimmer && ariaLabelForShimmer) || ariaLabelForGrid, onRenderMissingItem: this._onRenderShimmerPlaceholder, listProps: newListProps })));\n    };\n    return ShimmeredDetailsListBase;\n}(React.Component));\nexport { ShimmeredDetailsListBase };\n//# sourceMappingURL=ShimmeredDetailsList.base.js.map","import { styled } from '../../Utilities';\nimport { ShimmeredDetailsListBase } from './ShimmeredDetailsList.base';\nimport { getShimmeredDetailsListStyles } from './ShimmeredDetailsList.styles';\nexport var ShimmeredDetailsList = styled(ShimmeredDetailsListBase, getShimmeredDetailsListStyles, undefined, { scope: 'ShimmeredDetailsList' });\n//# sourceMappingURL=ShimmeredDetailsList.js.map","export var getShimmeredDetailsListStyles = function (props) {\n    var theme = props.theme;\n    var palette = theme.palette;\n    return {\n        root: {\n            position: 'relative',\n            selectors: {\n                ':after': {\n                    content: '\"\"',\n                    position: 'absolute',\n                    top: 0,\n                    right: 0,\n                    bottom: 0,\n                    left: 0,\n                    // eslint-disable-next-line @fluentui/max-len\n                    backgroundImage: \"linear-gradient(to bottom, transparent 30%, \".concat(palette.whiteTranslucent40, \" 65%,\").concat(palette.white, \" 100%)\"),\n                },\n            },\n        },\n    };\n};\n//# sourceMappingURL=ShimmeredDetailsList.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, classNamesFunction, getId } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { Modal } from '../../Modal';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nimport { DialogContent } from './DialogContent';\nvar DefaultModalProps = {\n    isDarkOverlay: false,\n    isBlocking: false,\n    className: '',\n    containerClassName: '',\n    topOffsetFixed: false,\n    enableAriaHiddenSiblings: true,\n};\nvar DefaultDialogContentProps = {\n    type: DialogType.normal,\n    className: '',\n    topButtonsProps: [],\n};\n// eslint-disable-next-line deprecation/deprecation\nvar DialogBase = /** @class */ (function (_super) {\n    __extends(DialogBase, _super);\n    function DialogBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._getSubTextId = function () {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = _this.props, ariaDescribedById = _a.ariaDescribedById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, subText = _a.subText;\n            var id = (modalProps && modalProps.subtitleAriaId) || ariaDescribedById;\n            if (!id) {\n                id = ((dialogContentProps && dialogContentProps.subText) || subText) && _this._defaultSubTextId;\n            }\n            return id;\n        };\n        _this._getTitleTextId = function () {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = _this.props, ariaLabelledById = _a.ariaLabelledById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, title = _a.title;\n            var id = (modalProps && modalProps.titleAriaId) || ariaLabelledById;\n            if (!id) {\n                id = ((dialogContentProps && dialogContentProps.title) || title) && _this._defaultTitleTextId;\n            }\n            return id;\n        };\n        _this._id = getId('Dialog');\n        _this._defaultTitleTextId = _this._id + '-title';\n        _this._defaultSubTextId = _this._id + '-subText';\n        if (process.env.NODE_ENV !== 'production') {\n            warnDeprecations('Dialog', props, {\n                isOpen: 'hidden',\n                type: 'dialogContentProps.type',\n                subText: 'dialogContentProps.subText',\n                contentClassName: 'dialogContentProps.className',\n                topButtonsProps: 'dialogContentProps.topButtonsProps',\n                className: 'modalProps.className',\n                isDarkOverlay: 'modalProps.isDarkOverlay',\n                isBlocking: 'modalProps.isBlocking',\n                containerClassName: 'modalProps.containerClassName',\n                onDismissed: 'modalProps.onDismissed',\n                onLayerDidMount: 'modalProps.layerProps.onLayerDidMount',\n                ariaDescribedById: 'modalProps.subtitleAriaId',\n                ariaLabelledById: 'modalProps.titleAriaId',\n            });\n        }\n        return _this;\n    }\n    DialogBase.prototype.render = function () {\n        var _a, _b, _c;\n        var props = this.props;\n        var \n        /* eslint-disable deprecation/deprecation */\n        className = props.className, containerClassName = props.containerClassName, contentClassName = props.contentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, forceFocusInsideTrap = props.forceFocusInsideTrap, styles = props.styles, hidden = props.hidden, _d = props.disableRestoreFocus, disableRestoreFocus = _d === void 0 ? props.ignoreExternalFocusing : _d, isBlocking = props.isBlocking, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, _e = props.isOpen, isOpen = _e === void 0 ? !hidden : _e, onDismiss = props.onDismiss, onDismissed = props.onDismissed, onLayerDidMount = props.onLayerDidMount, responsiveMode = props.responsiveMode, subText = props.subText, theme = props.theme, title = props.title, topButtonsProps = props.topButtonsProps, type = props.type, \n        /* eslint-enable deprecation/deprecation */\n        minWidth = props.minWidth, maxWidth = props.maxWidth, modalProps = props.modalProps;\n        var mergedLayerProps = __assign({ onLayerDidMount: onLayerDidMount }, modalProps === null || modalProps === void 0 ? void 0 : modalProps.layerProps);\n        var dialogDraggableClassName;\n        var dragOptions;\n        // If dragOptions are provided, but no drag handle is specified, we supply a drag handle,\n        // and inform dialog contents to add class to draggable class to the header\n        if ((modalProps === null || modalProps === void 0 ? void 0 : modalProps.dragOptions) && !((_a = modalProps.dragOptions) === null || _a === void 0 ? void 0 : _a.dragHandleSelector)) {\n            // spread options to avoid mutating props\n            dragOptions = __assign({}, modalProps.dragOptions);\n            dialogDraggableClassName = 'ms-Dialog-draggable-header';\n            dragOptions.dragHandleSelector = \".\".concat(dialogDraggableClassName);\n        }\n        var mergedModalProps = __assign(__assign(__assign(__assign({}, DefaultModalProps), { elementToFocusOnDismiss: elementToFocusOnDismiss, firstFocusableSelector: firstFocusableSelector, forceFocusInsideTrap: forceFocusInsideTrap, disableRestoreFocus: disableRestoreFocus, isClickableOutsideFocusTrap: isClickableOutsideFocusTrap, responsiveMode: responsiveMode, className: className, containerClassName: containerClassName, isBlocking: isBlocking, isDarkOverlay: isDarkOverlay, onDismissed: onDismissed }), modalProps), { dragOptions: dragOptions, layerProps: mergedLayerProps, isOpen: isOpen });\n        var dialogContentProps = __assign(__assign(__assign({ className: contentClassName, subText: subText, title: title, topButtonsProps: topButtonsProps, type: type }, DefaultDialogContentProps), props.dialogContentProps), { draggableHeaderClassName: dialogDraggableClassName, titleProps: __assign({ \n                // eslint-disable-next-line deprecation/deprecation\n                id: ((_b = props.dialogContentProps) === null || _b === void 0 ? void 0 : _b.titleId) || this._defaultTitleTextId }, (_c = props.dialogContentProps) === null || _c === void 0 ? void 0 : _c.titleProps) });\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: mergedModalProps.className,\n            containerClassName: mergedModalProps.containerClassName,\n            hidden: hidden,\n            dialogDefaultMinWidth: minWidth,\n            dialogDefaultMaxWidth: maxWidth,\n        });\n        return (React.createElement(Modal, __assign({}, mergedModalProps, { className: classNames.root, containerClassName: classNames.main, onDismiss: onDismiss || mergedModalProps.onDismiss, subtitleAriaId: this._getSubTextId(), titleAriaId: this._getTitleTextId() }),\n            React.createElement(DialogContent, __assign({ subTextId: this._defaultSubTextId, showCloseButton: mergedModalProps.isBlocking, onDismiss: onDismiss }, dialogContentProps), props.children)));\n    };\n    DialogBase.defaultProps = {\n        hidden: true,\n    };\n    DialogBase = __decorate([\n        withResponsiveMode\n    ], DialogBase);\n    return DialogBase;\n}(React.Component));\nexport { DialogBase };\n//# sourceMappingURL=Dialog.base.js.map","import { ScreenWidthMinMedium, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Dialog',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var className = props.className, containerClassName = props.containerClassName, // eslint-disable-line deprecation/deprecation\n    _b = props.dialogDefaultMinWidth, // eslint-disable-line deprecation/deprecation\n    dialogDefaultMinWidth = _b === void 0 ? '288px' : _b, _c = props.dialogDefaultMaxWidth, dialogDefaultMaxWidth = _c === void 0 ? '340px' : _c, hidden = props.hidden, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [classNames.root, theme.fonts.medium, className],\n        main: [\n            {\n                width: dialogDefaultMinWidth,\n                outline: '3px solid transparent',\n                selectors: (_a = {},\n                    _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n                        width: 'auto',\n                        maxWidth: dialogDefaultMaxWidth,\n                        minWidth: dialogDefaultMinWidth,\n                    },\n                    _a),\n            },\n            !hidden && { display: 'flex' },\n            containerClassName,\n        ],\n    };\n};\n//# sourceMappingURL=Dialog.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogBase } from './Dialog.base';\nimport { getStyles } from './Dialog.styles';\nexport var Dialog = styled(DialogBase, getStyles, undefined, { scope: 'Dialog' });\nDialog.displayName = 'Dialog';\n//# sourceMappingURL=Dialog.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, warnDeprecations, initializeComponentRef } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { IconButton } from '../../Button';\nimport { DialogFooter } from './DialogFooter';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nvar DialogFooterType = (React.createElement(DialogFooter, null)).type;\nvar COMPONENT_NAME = 'DialogContent';\n// eslint-disable-next-line deprecation/deprecation\nvar DialogContentBase = /** @class */ (function (_super) {\n    __extends(DialogContentBase, _super);\n    function DialogContentBase(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        warnDeprecations(COMPONENT_NAME, props, {\n            titleId: 'titleProps.id',\n        });\n        return _this;\n    }\n    DialogContentBase.prototype.render = function () {\n        var _a = this.props, showCloseButton = _a.showCloseButton, className = _a.className, closeButtonAriaLabel = _a.closeButtonAriaLabel, onDismiss = _a.onDismiss, subTextId = _a.subTextId, subText = _a.subText, _b = _a.titleProps, titleProps = _b === void 0 ? {} : _b, \n        // eslint-disable-next-line deprecation/deprecation\n        titleId = _a.titleId, title = _a.title, type = _a.type, styles = _a.styles, theme = _a.theme, draggableHeaderClassName = _a.draggableHeaderClassName;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            isLargeHeader: type === DialogType.largeHeader,\n            isClose: type === DialogType.close,\n            draggableHeaderClassName: draggableHeaderClassName,\n        });\n        var groupings = this._groupChildren();\n        var subTextContent;\n        if (subText) {\n            subTextContent = (React.createElement(\"p\", { className: classNames.subText, id: subTextId }, subText));\n        }\n        return (React.createElement(\"div\", { className: classNames.content },\n            React.createElement(\"div\", { className: classNames.header },\n                React.createElement(\"div\", __assign({ id: titleId, role: \"heading\", \"aria-level\": 1 }, titleProps, { className: css(classNames.title, titleProps.className) }), title),\n                React.createElement(\"div\", { className: classNames.topButton },\n                    this.props.topButtonsProps.map(function (props, index) { return (React.createElement(IconButton, __assign({ key: props.uniqueId || index }, props))); }),\n                    (type === DialogType.close || (showCloseButton && type !== DialogType.largeHeader)) && (React.createElement(IconButton, { className: classNames.button, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss })))),\n            React.createElement(\"div\", { className: classNames.inner },\n                React.createElement(\"div\", { className: classNames.innerContent },\n                    subTextContent,\n                    groupings.contents),\n                groupings.footers)));\n    };\n    // @TODO - typing the footers as an array of DialogFooter is difficult because\n    // casing \"child as DialogFooter\" causes a problem because\n    // \"Neither type 'ReactElement<any>' nor type 'DialogFooter' is assignable to the other.\"\n    DialogContentBase.prototype._groupChildren = function () {\n        var groupings = {\n            footers: [],\n            contents: [],\n        };\n        React.Children.map(this.props.children, function (child) {\n            if (typeof child === 'object' && child !== null && child.type === DialogFooterType) {\n                groupings.footers.push(child);\n            }\n            else {\n                groupings.contents.push(child);\n            }\n        });\n        return groupings;\n    };\n    DialogContentBase.defaultProps = {\n        showCloseButton: false,\n        className: '',\n        topButtonsProps: [],\n        closeButtonAriaLabel: 'Close',\n    };\n    DialogContentBase = __decorate([\n        withResponsiveMode\n    ], DialogContentBase);\n    return DialogContentBase;\n}(React.Component));\nexport { DialogContentBase };\n//# sourceMappingURL=DialogContent.base.js.map","import { FontWeights, getGlobalClassNames, IconFontSizes, ScreenWidthMinSmall, ScreenWidthMaxSmall, } from '../../Styling';\nvar GlobalClassNames = {\n    contentLgHeader: 'ms-Dialog-lgHeader',\n    close: 'ms-Dialog--close',\n    subText: 'ms-Dialog-subText',\n    header: 'ms-Dialog-header',\n    headerLg: 'ms-Dialog--lgHeader',\n    button: 'ms-Dialog-button ms-Dialog-button--close',\n    inner: 'ms-Dialog-inner',\n    content: 'ms-Dialog-content',\n    title: 'ms-Dialog-title',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c;\n    var className = props.className, theme = props.theme, isLargeHeader = props.isLargeHeader, isClose = props.isClose, hidden = props.hidden, isMultiline = props.isMultiline, draggableHeaderClassName = props.draggableHeaderClassName;\n    var palette = theme.palette, fonts = theme.fonts, effects = theme.effects, semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        content: [\n            isLargeHeader && [\n                classNames.contentLgHeader,\n                {\n                    borderTop: \"4px solid \".concat(palette.themePrimary),\n                },\n            ],\n            isClose && classNames.close,\n            {\n                flexGrow: 1,\n                overflowY: 'hidden', // required for allowScrollOnElement\n            },\n            className,\n        ],\n        subText: [\n            classNames.subText,\n            fonts.medium,\n            {\n                margin: '0 0 24px 0',\n                color: semanticColors.bodySubtext,\n                lineHeight: '1.5',\n                wordWrap: 'break-word',\n                fontWeight: FontWeights.regular,\n            },\n        ],\n        header: [\n            classNames.header,\n            {\n                position: 'relative',\n                width: '100%',\n                boxSizing: 'border-box',\n            },\n            isClose && classNames.close,\n            draggableHeaderClassName && [\n                draggableHeaderClassName,\n                {\n                    cursor: 'move',\n                },\n            ],\n        ],\n        button: [\n            classNames.button,\n            hidden && {\n                selectors: {\n                    '.ms-Icon.ms-Icon--Cancel': {\n                        color: semanticColors.buttonText,\n                        fontSize: IconFontSizes.medium,\n                    },\n                },\n            },\n        ],\n        inner: [\n            classNames.inner,\n            {\n                padding: '0 24px 24px',\n                selectors: (_a = {},\n                    _a[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n                        padding: '0 16px 16px',\n                    },\n                    _a),\n            },\n        ],\n        innerContent: [\n            classNames.content,\n            {\n                position: 'relative',\n                width: '100%',\n            },\n        ],\n        title: [\n            classNames.title,\n            fonts.xLarge,\n            {\n                color: semanticColors.bodyText,\n                margin: '0',\n                minHeight: fonts.xLarge.fontSize,\n                padding: '16px 46px 20px 24px',\n                lineHeight: 'normal',\n                selectors: (_b = {},\n                    _b[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n                        padding: '16px 46px 16px 16px',\n                    },\n                    _b),\n            },\n            isLargeHeader && {\n                color: semanticColors.menuHeader,\n            },\n            isMultiline && { fontSize: fonts.xxLarge.fontSize },\n        ],\n        topButton: [\n            {\n                display: 'flex',\n                flexDirection: 'row',\n                flexWrap: 'nowrap',\n                position: 'absolute',\n                top: '0',\n                right: '0',\n                padding: '15px 15px 0 0',\n                selectors: (_c = {\n                        '> *': {\n                            flex: '0 0 auto',\n                        },\n                        '.ms-Dialog-button': {\n                            color: semanticColors.buttonText,\n                        },\n                        '.ms-Dialog-button:hover': {\n                            color: semanticColors.buttonTextHovered,\n                            borderRadius: effects.roundedCorner2,\n                        }\n                    },\n                    _c[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n                        padding: '15px 8px 0 0',\n                    },\n                    _c),\n            },\n        ],\n    };\n};\n//# sourceMappingURL=DialogContent.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogContentBase } from './DialogContent.base';\nimport { getStyles } from './DialogContent.styles';\nexport var DialogContent = styled(DialogContentBase, getStyles, undefined, { scope: 'DialogContent' });\nDialogContent.displayName = 'DialogContent';\n//# sourceMappingURL=DialogContent.js.map","/**\n * {@docCategory Dialog}\n */\nexport var DialogType;\n(function (DialogType) {\n    /** Standard dialog */\n    DialogType[DialogType[\"normal\"] = 0] = \"normal\";\n    /** Dialog with large header banner */\n    DialogType[DialogType[\"largeHeader\"] = 1] = \"largeHeader\";\n    /** Dialog with an 'x' close button in the upper-right corner */\n    DialogType[DialogType[\"close\"] = 2] = \"close\";\n})(DialogType || (DialogType = {}));\n//# sourceMappingURL=DialogContent.types.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DialogFooterBase = /** @class */ (function (_super) {\n    __extends(DialogFooterBase, _super);\n    function DialogFooterBase(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        return _this;\n    }\n    DialogFooterBase.prototype.render = function () {\n        var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n        return (React.createElement(\"div\", { className: this._classNames.actions },\n            React.createElement(\"div\", { className: this._classNames.actionsRight }, this._renderChildrenAsActions())));\n    };\n    DialogFooterBase.prototype._renderChildrenAsActions = function () {\n        var _this = this;\n        return React.Children.map(this.props.children, function (child) {\n            return child ? React.createElement(\"span\", { className: _this._classNames.action }, child) : null;\n        });\n    };\n    return DialogFooterBase;\n}(React.Component));\nexport { DialogFooterBase };\n//# sourceMappingURL=DialogFooter.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    actions: 'ms-Dialog-actions',\n    action: 'ms-Dialog-action',\n    actionsRight: 'ms-Dialog-actionsRight',\n};\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        actions: [\n            classNames.actions,\n            {\n                position: 'relative',\n                width: '100%',\n                minHeight: '24px',\n                lineHeight: '24px',\n                margin: '16px 0 0',\n                fontSize: '0',\n                selectors: {\n                    '.ms-Button': {\n                        lineHeight: 'normal',\n                        verticalAlign: 'middle',\n                    },\n                },\n            },\n            className,\n        ],\n        action: [\n            classNames.action,\n            {\n                margin: '0 4px',\n            },\n        ],\n        actionsRight: [\n            classNames.actionsRight,\n            {\n                alignItems: 'center',\n                display: 'flex',\n                fontSize: '0',\n                justifyContent: 'flex-end',\n                marginRight: '-4px',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=DialogFooter.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogFooterBase } from './DialogFooter.base';\nimport { getStyles } from './DialogFooter.styles';\nexport var DialogFooter = styled(DialogFooterBase, getStyles, undefined, { scope: 'DialogFooter' });\nDialogFooter.displayName = 'DialogFooter';\n//# sourceMappingURL=DialogFooter.js.map","export var getStyles = function (props) {\n    // eslint-disable-next-line deprecation/deprecation\n    var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n    if (!theme) {\n        throw new Error('Theme is undefined or null.');\n    }\n    if (getClassNames) {\n        var names = getClassNames(theme);\n        return {\n            wrapper: [names.wrapper],\n            divider: [names.divider],\n        };\n    }\n    return {\n        wrapper: [\n            {\n                display: 'inline-flex',\n                height: '100%',\n                alignItems: 'center',\n            },\n            className,\n        ],\n        divider: [\n            {\n                width: 1,\n                height: '100%',\n                backgroundColor: theme.palette.neutralTertiaryAlt,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = React.forwardRef(function (props, ref) {\n    // eslint-disable-next-line deprecation/deprecation\n    var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;\n    var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });\n    return (React.createElement(\"span\", { className: classNames.wrapper, ref: ref },\n        React.createElement(\"span\", { className: classNames.divider })));\n});\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n//# sourceMappingURL=VerticalDivider.base.js.map","import { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nexport var VerticalDivider = styled(VerticalDividerBase, getStyles, undefined, {\n    scope: 'VerticalDivider',\n});\n//# sourceMappingURL=VerticalDivider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes, getNativeProps, divProperties, warnDeprecations, initializeComponentRef, } from '../../Utilities';\nimport { DocumentCardType } from './DocumentCard.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'DocumentCard';\nexport var DocumentCardContext = React.createContext({});\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardBase = /** @class */ (function (_super) {\n    __extends(DocumentCardBase, _super);\n    function DocumentCardBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._rootElement = React.createRef();\n        _this._onClick = function (ev) {\n            _this._onAction(ev);\n        };\n        _this._onKeyDown = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n                _this._onAction(ev);\n            }\n        };\n        _this._onAction = function (ev) {\n            var _a = _this.props, onClick = _a.onClick, onClickHref = _a.onClickHref, onClickTarget = _a.onClickTarget;\n            if (onClick) {\n                onClick(ev);\n            }\n            else if (!onClick && onClickHref) {\n                // If no onClick Function was provided and we do have an onClickHref, redirect to the onClickHref\n                if (onClickTarget) {\n                    window.open(onClickHref, onClickTarget, 'noreferrer noopener nofollow');\n                }\n                else {\n                    window.location.href = onClickHref;\n                }\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        };\n        initializeComponentRef(_this);\n        warnDeprecations(COMPONENT_NAME, props, {\n            accentColor: undefined,\n        });\n        return _this;\n    }\n    DocumentCardBase.prototype.render = function () {\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, onClick = _a.onClick, onClickHref = _a.onClickHref, children = _a.children, type = _a.type, accentColor = _a.accentColor, styles = _a.styles, theme = _a.theme, className = _a.className;\n        var nativeProps = getNativeProps(this.props, divProperties, [\n            'className',\n            'onClick',\n            'type',\n            'role',\n        ]);\n        var actionable = onClick || onClickHref ? true : false;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            actionable: actionable,\n            compact: type === DocumentCardType.compact ? true : false,\n        });\n        // Override the border color if an accent color was provided (compact card only)\n        var style;\n        if (type === DocumentCardType.compact && accentColor) {\n            style = {\n                borderBottomColor: accentColor,\n            };\n        }\n        // if this element is actionable it should have an aria role\n        var role = this.props.role || (actionable ? (onClick ? 'button' : 'link') : undefined);\n        var tabIndex = actionable ? 0 : undefined;\n        var documentCardContextValue = { role: role, tabIndex: tabIndex };\n        return (React.createElement(\"div\", __assign({ ref: this._rootElement, role: 'group', className: this._classNames.root, onKeyDown: actionable ? this._onKeyDown : undefined, onClick: actionable ? this._onClick : undefined, style: style }, nativeProps),\n            React.createElement(DocumentCardContext.Provider, { value: documentCardContextValue }, children)));\n    };\n    DocumentCardBase.prototype.focus = function () {\n        if (this._rootElement.current) {\n            this._rootElement.current.focus();\n        }\n    };\n    DocumentCardBase.defaultProps = {\n        type: DocumentCardType.normal,\n    };\n    return DocumentCardBase;\n}(React.Component));\nexport { DocumentCardBase };\n//# sourceMappingURL=DocumentCard.base.js.map","import { getFocusStyle, getGlobalClassNames, HighContrastSelector } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nexport var DocumentCardPreviewGlobalClassNames = {\n    root: 'ms-DocumentCardPreview',\n    icon: 'ms-DocumentCardPreview-icon',\n    iconContainer: 'ms-DocumentCardPreview-iconContainer',\n};\nexport var getStyles = function (props) {\n    var _a, _b;\n    var theme = props.theme, className = props.className, isFileList = props.isFileList;\n    var palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(DocumentCardPreviewGlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            fonts.small,\n            {\n                backgroundColor: isFileList ? palette.white : palette.neutralLighterAlt,\n                borderBottom: \"1px solid \".concat(palette.neutralLight),\n                overflow: \"hidden\",\n                position: 'relative',\n            },\n            className,\n        ],\n        previewIcon: [\n            classNames.iconContainer,\n            {\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center',\n                height: '100%',\n            },\n        ],\n        icon: [\n            classNames.icon,\n            {\n                left: '10px',\n                bottom: '10px',\n                position: 'absolute',\n            },\n        ],\n        fileList: {\n            padding: '16px 16px 0 16px',\n            listStyleType: 'none',\n            margin: 0,\n            selectors: {\n                li: {\n                    height: '16px',\n                    lineHeight: '16px',\n                    display: 'flex',\n                    flexWrap: 'nowrap',\n                    alignItems: 'center',\n                    marginBottom: '8px',\n                    overflow: 'hidden',\n                },\n            },\n        },\n        fileListIcon: {\n            display: 'inline-block',\n            flexShrink: 0,\n            marginRight: '8px',\n        },\n        fileListLink: [\n            getFocusStyle(theme, {\n                highContrastStyle: {\n                    border: '1px solid WindowText',\n                    outline: 'none',\n                },\n            }),\n            {\n                boxSizing: 'border-box',\n                color: palette.neutralDark,\n                flexGrow: 1,\n                overflow: 'hidden',\n                display: 'inline-block',\n                textDecoration: 'none',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n                selectors: (_a = {\n                        ':hover': {\n                            color: palette.themePrimary,\n                        }\n                    },\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n                        selectors: (_b = {},\n                            _b[HighContrastSelector] = {\n                                outline: 'none',\n                            },\n                            _b),\n                    },\n                    _a),\n            },\n        ],\n        fileListOverflowText: {\n            padding: '0px 16px 8px 16px',\n            display: 'block',\n        },\n    };\n};\n//# sourceMappingURL=DocumentCardPreview.styles.js.map","import { getGlobalClassNames, getInputFocusStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { DocumentCardPreviewGlobalClassNames as previewClassNames } from './DocumentCardPreview.styles';\nimport { DocumentCardActivityGlobalClassNames as activityClassNames } from './DocumentCardActivity.styles';\nimport { DocumentCardTitleGlobalClassNames as titleClassNames } from './DocumentCardTitle.styles';\nimport { DocumentCardLocationGlobalClassNames as locationClassNames } from './DocumentCardLocation.styles';\nvar GlobalClassNames = {\n    root: 'ms-DocumentCard',\n    rootActionable: 'ms-DocumentCard--actionable',\n    rootCompact: 'ms-DocumentCard--compact',\n};\nexport var getStyles = function (props) {\n    var _a, _b;\n    var className = props.className, theme = props.theme, actionable = props.actionable, compact = props.compact;\n    var palette = theme.palette, fonts = theme.fonts, effects = theme.effects;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            {\n                WebkitFontSmoothing: 'antialiased',\n                backgroundColor: palette.white,\n                border: \"1px solid \".concat(palette.neutralLight),\n                maxWidth: '320px',\n                minWidth: '206px',\n                userSelect: 'none',\n                position: 'relative',\n                selectors: (_a = {\n                        ':focus': {\n                            outline: '0px solid',\n                        }\n                    },\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = getInputFocusStyle(palette.neutralSecondary, effects.roundedCorner2),\n                    _a[\".\".concat(locationClassNames.root, \" + .\").concat(titleClassNames.root)] = {\n                        paddingTop: '4px',\n                    },\n                    _a),\n            },\n            actionable && [\n                classNames.rootActionable,\n                {\n                    selectors: {\n                        ':hover': {\n                            cursor: 'pointer',\n                            borderColor: palette.neutralTertiaryAlt,\n                        },\n                        ':hover:after': {\n                            content: '\" \"',\n                            position: 'absolute',\n                            top: 0,\n                            right: 0,\n                            bottom: 0,\n                            left: 0,\n                            border: \"1px solid \".concat(palette.neutralTertiaryAlt),\n                            pointerEvents: 'none',\n                        },\n                    },\n                },\n            ],\n            compact && [\n                classNames.rootCompact,\n                {\n                    display: 'flex',\n                    maxWidth: '480px',\n                    height: '108px',\n                    selectors: (_b = {},\n                        _b[\".\".concat(previewClassNames.root)] = {\n                            borderRight: \"1px solid \".concat(palette.neutralLight),\n                            borderBottom: 0,\n                            maxHeight: '106px',\n                            maxWidth: '144px',\n                        },\n                        _b[\".\".concat(previewClassNames.icon)] = {\n                            maxHeight: '32px',\n                            maxWidth: '32px',\n                        },\n                        _b[\".\".concat(activityClassNames.root)] = {\n                            paddingBottom: '12px',\n                        },\n                        _b[\".\".concat(titleClassNames.root)] = {\n                            paddingBottom: '12px 16px 8px 16px',\n                            fontSize: fonts.mediumPlus.fontSize,\n                            lineHeight: '16px',\n                        },\n                        _b),\n                },\n            ],\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=DocumentCard.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardBase } from './DocumentCard.base';\nimport { getStyles } from './DocumentCard.styles';\nexport var DocumentCard = styled(DocumentCardBase, getStyles, undefined, { scope: 'DocumentCard' });\n//# sourceMappingURL=DocumentCard.js.map","/**\n * {@docCategory DocumentCard}\n */\nexport var DocumentCardType;\n(function (DocumentCardType) {\n    /**\n     * Standard DocumentCard.\n     */\n    DocumentCardType[DocumentCardType[\"normal\"] = 0] = \"normal\";\n    /**\n     * Compact layout. Displays the preview beside the details, rather than above.\n     */\n    DocumentCardType[DocumentCardType[\"compact\"] = 1] = \"compact\";\n})(DocumentCardType || (DocumentCardType = {}));\n//# sourceMappingURL=DocumentCard.types.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nimport { PersonaSize } from '../../Persona';\nimport { PersonaCoin } from '../../PersonaCoin';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardActivityBase = /** @class */ (function (_super) {\n    __extends(DocumentCardActivityBase, _super);\n    function DocumentCardActivityBase(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        return _this;\n    }\n    DocumentCardActivityBase.prototype.render = function () {\n        var _a = this.props, activity = _a.activity, people = _a.people, styles = _a.styles, theme = _a.theme, className = _a.className;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            multiplePeople: people.length > 1,\n        });\n        if (!people || people.length === 0) {\n            return null;\n        }\n        return (React.createElement(\"div\", { className: this._classNames.root },\n            this._renderAvatars(people),\n            React.createElement(\"div\", { className: this._classNames.details },\n                React.createElement(\"span\", { className: this._classNames.name }, this._getNameString(people)),\n                React.createElement(\"span\", { className: this._classNames.activity }, activity))));\n    };\n    DocumentCardActivityBase.prototype._renderAvatars = function (people) {\n        return (React.createElement(\"div\", { className: this._classNames.avatars },\n            people.length > 1 ? this._renderAvatar(people[1]) : null,\n            this._renderAvatar(people[0])));\n    };\n    DocumentCardActivityBase.prototype._renderAvatar = function (person) {\n        return (React.createElement(\"div\", { className: this._classNames.avatar },\n            React.createElement(PersonaCoin, { imageInitials: person.initials, text: person.name, imageUrl: person.profileImageSrc, initialsColor: person.initialsColor, allowPhoneInitials: person.allowPhoneInitials, role: \"presentation\", size: PersonaSize.size32 })));\n    };\n    DocumentCardActivityBase.prototype._getNameString = function (people) {\n        var nameString = people[0].name;\n        if (people.length >= 2) {\n            nameString += ' +' + (people.length - 1);\n        }\n        return nameString;\n    };\n    return DocumentCardActivityBase;\n}(React.Component));\nexport { DocumentCardActivityBase };\n//# sourceMappingURL=DocumentCardActivity.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardActivityBase } from './DocumentCardActivity.base';\nimport { getStyles } from './DocumentCardActivity.styles';\nexport var DocumentCardActivity = styled(DocumentCardActivityBase, getStyles, undefined, { scope: 'DocumentCardActivity' });\n//# sourceMappingURL=DocumentCardActivity.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nvar VERTICAL_PADDING = 8;\nvar HORIZONTAL_PADDING = 16;\nvar IMAGE_SIZE = 32;\nvar PERSONA_TEXT_GUTTER = 8;\nexport var DocumentCardActivityGlobalClassNames = {\n    root: 'ms-DocumentCardActivity',\n    multiplePeople: 'ms-DocumentCardActivity--multiplePeople',\n    details: 'ms-DocumentCardActivity-details',\n    name: 'ms-DocumentCardActivity-name',\n    activity: 'ms-DocumentCardActivity-activity',\n    avatars: 'ms-DocumentCardActivity-avatars',\n    avatar: 'ms-DocumentCardActivity-avatar',\n};\nexport var getStyles = function (props) {\n    var theme = props.theme, className = props.className, multiplePeople = props.multiplePeople;\n    var palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(DocumentCardActivityGlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            multiplePeople && classNames.multiplePeople,\n            {\n                padding: \"\".concat(VERTICAL_PADDING, \"px \").concat(HORIZONTAL_PADDING, \"px\"),\n                position: 'relative',\n            },\n            className,\n        ],\n        avatars: [\n            classNames.avatars,\n            {\n                marginLeft: '-2px',\n                height: '32px',\n            },\n        ],\n        avatar: [\n            classNames.avatar,\n            {\n                display: 'inline-block',\n                verticalAlign: 'top',\n                position: 'relative',\n                textAlign: 'center',\n                width: IMAGE_SIZE,\n                height: IMAGE_SIZE,\n                selectors: {\n                    '&:after': {\n                        content: '\" \"',\n                        position: 'absolute',\n                        left: '-1px',\n                        top: '-1px',\n                        right: '-1px',\n                        bottom: '-1px',\n                        border: \"2px solid \".concat(palette.white),\n                        borderRadius: '50%',\n                    },\n                    ':nth-of-type(2)': multiplePeople && {\n                        marginLeft: '-16px',\n                    },\n                },\n            },\n        ],\n        details: [\n            classNames.details,\n            {\n                left: multiplePeople\n                    ? \"\".concat(HORIZONTAL_PADDING + IMAGE_SIZE * 1.5 + PERSONA_TEXT_GUTTER, \"px\")\n                    : \"\".concat(HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER, \"px\"),\n                height: IMAGE_SIZE,\n                position: 'absolute',\n                top: VERTICAL_PADDING,\n                width: \"calc(100% - \".concat(HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER + HORIZONTAL_PADDING, \"px)\"),\n            },\n        ],\n        name: [\n            classNames.name,\n            {\n                display: 'block',\n                fontSize: fonts.small.fontSize,\n                lineHeight: '15px',\n                height: '15px',\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n                color: palette.neutralPrimary,\n                fontWeight: FontWeights.semibold,\n            },\n        ],\n        activity: [\n            classNames.activity,\n            {\n                display: 'block',\n                fontSize: fonts.small.fontSize,\n                lineHeight: '15px',\n                height: '15px',\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n                color: palette.neutralSecondary,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=DocumentCardActivity.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardDetailsBase = /** @class */ (function (_super) {\n    __extends(DocumentCardDetailsBase, _super);\n    function DocumentCardDetailsBase(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        return _this;\n    }\n    DocumentCardDetailsBase.prototype.render = function () {\n        var _a = this.props, children = _a.children, styles = _a.styles, theme = _a.theme, className = _a.className;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n        return React.createElement(\"div\", { className: this._classNames.root }, children);\n    };\n    return DocumentCardDetailsBase;\n}(React.Component));\nexport { DocumentCardDetailsBase };\n//# sourceMappingURL=DocumentCardDetails.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-DocumentCardDetails',\n};\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            {\n                display: 'flex',\n                flexDirection: 'column',\n                flex: 1,\n                justifyContent: 'space-between',\n                overflow: 'hidden',\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=DocumentCardDetails.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardDetailsBase } from './DocumentCardDetails.base';\nimport { getStyles } from './DocumentCardDetails.styles';\nexport var DocumentCardDetails = styled(DocumentCardDetailsBase, getStyles, undefined, { scope: 'DocumentCardDetails' });\n//# sourceMappingURL=DocumentCardDetails.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Icon } from '../../Icon';\nimport { Image } from '../../Image';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardImageBase = /** @class */ (function (_super) {\n    __extends(DocumentCardImageBase, _super);\n    function DocumentCardImageBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._onImageLoad = function () {\n            _this.setState({ imageHasLoaded: true });\n        };\n        initializeComponentRef(_this);\n        _this.state = { imageHasLoaded: false };\n        return _this;\n    }\n    DocumentCardImageBase.prototype.render = function () {\n        var _a = this.props, styles = _a.styles, width = _a.width, height = _a.height, imageFit = _a.imageFit, imageSrc = _a.imageSrc;\n        this._classNames = getClassNames(styles, this.props);\n        return (React.createElement(\"div\", { className: this._classNames.root },\n            imageSrc && (React.createElement(Image, { width: width, height: height, imageFit: imageFit, src: imageSrc, role: \"presentation\", alt: \"\", onLoad: this._onImageLoad })),\n            this.state.imageHasLoaded ? this._renderCornerIcon() : this._renderCenterIcon()));\n    };\n    DocumentCardImageBase.prototype._renderCenterIcon = function () {\n        var iconProps = this.props.iconProps;\n        return (React.createElement(\"div\", { className: this._classNames.centeredIconWrapper },\n            React.createElement(Icon, __assign({ className: this._classNames.centeredIcon }, iconProps))));\n    };\n    DocumentCardImageBase.prototype._renderCornerIcon = function () {\n        var iconProps = this.props.iconProps;\n        return React.createElement(Icon, __assign({ className: this._classNames.cornerIcon }, iconProps));\n    };\n    return DocumentCardImageBase;\n}(React.Component));\nexport { DocumentCardImageBase };\n//# sourceMappingURL=DocumentCardImage.base.js.map","var centeredIconSize = '42px';\nvar cornerIconSize = '32px';\nexport var getStyles = function (props) {\n    var theme = props.theme, className = props.className, height = props.height, width = props.width;\n    var palette = theme.palette;\n    return {\n        root: [\n            {\n                borderBottom: \"1px solid \".concat(palette.neutralLight),\n                position: 'relative',\n                backgroundColor: palette.neutralLighterAlt,\n                overflow: \"hidden\",\n                height: height && \"\".concat(height, \"px\"),\n                width: width && \"\".concat(width, \"px\"),\n            },\n            className,\n        ],\n        centeredIcon: [\n            {\n                height: centeredIconSize,\n                width: centeredIconSize,\n                fontSize: centeredIconSize,\n            },\n        ],\n        centeredIconWrapper: [\n            {\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center',\n                height: '100%',\n                width: '100%',\n                position: 'absolute',\n                top: 0,\n                left: 0,\n            },\n        ],\n        cornerIcon: [\n            {\n                left: '10px',\n                bottom: '10px',\n                height: cornerIconSize,\n                width: cornerIconSize,\n                fontSize: cornerIconSize,\n                position: 'absolute',\n                overflow: 'visible',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=DocumentCardImage.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardImageBase } from './DocumentCardImage.base';\nimport { getStyles } from './DocumentCardImage.styles';\nexport var DocumentCardImage = styled(DocumentCardImageBase, getStyles, undefined, { scope: 'DocumentCardImage' });\n//# sourceMappingURL=DocumentCardImage.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardLocationBase = /** @class */ (function (_super) {\n    __extends(DocumentCardLocationBase, _super);\n    function DocumentCardLocationBase(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        return _this;\n    }\n    DocumentCardLocationBase.prototype.render = function () {\n        var _a = this.props, location = _a.location, locationHref = _a.locationHref, ariaLabel = _a.ariaLabel, onClick = _a.onClick, styles = _a.styles, theme = _a.theme, className = _a.className;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n        return (React.createElement(\"a\", { className: this._classNames.root, href: locationHref, onClick: onClick, \"aria-label\": ariaLabel }, location));\n    };\n    return DocumentCardLocationBase;\n}(React.Component));\nexport { DocumentCardLocationBase };\n//# sourceMappingURL=DocumentCardLocation.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardLocationBase } from './DocumentCardLocation.base';\nimport { getStyles } from './DocumentCardLocation.styles';\nexport var DocumentCardLocation = styled(DocumentCardLocationBase, getStyles, undefined, { scope: 'DocumentCardLocation' });\n//# sourceMappingURL=DocumentCardLocation.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nexport var DocumentCardLocationGlobalClassNames = {\n    root: 'ms-DocumentCardLocation',\n};\nexport var getStyles = function (props) {\n    var theme = props.theme, className = props.className;\n    var palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(DocumentCardLocationGlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            fonts.small,\n            {\n                color: palette.themePrimary,\n                display: 'block',\n                fontWeight: FontWeights.semibold,\n                overflow: 'hidden',\n                padding: '8px 16px',\n                position: 'relative',\n                textDecoration: 'none',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n                selectors: {\n                    ':hover': {\n                        color: palette.themePrimary,\n                        cursor: 'pointer',\n                    },\n                },\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=DocumentCardLocation.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, classNamesFunction } from '../../Utilities';\nimport { initializeComponentRef } from '@fluentui/utilities';\nimport { DocumentCardContext } from './DocumentCard.base';\nvar getClassNames = classNamesFunction();\nvar TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD = 5;\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardTitleBase = /** @class */ (function (_super) {\n    __extends(DocumentCardTitleBase, _super);\n    function DocumentCardTitleBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._titleElement = React.createRef();\n        // Truncate logic here way can't handle the case that chars with different widths are mixed very well.\n        // Let _shrinkTitle take care of that.\n        _this._truncateTitle = function () {\n            if (!_this._needMeasurement) {\n                return;\n            }\n            _this._async.requestAnimationFrame(_this._truncateWhenInAnimation);\n        };\n        _this._truncateWhenInAnimation = function () {\n            var originalTitle = _this.props.title;\n            var element = _this._titleElement.current;\n            if (element) {\n                var style = getComputedStyle(element);\n                if (style.width && style.lineHeight && style.height) {\n                    var clientWidth = element.clientWidth, scrollWidth = element.scrollWidth;\n                    _this._clientWidth = clientWidth;\n                    var lines = Math.floor((parseInt(style.height, 10) + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD) / parseInt(style.lineHeight, 10));\n                    element.style.whiteSpace = '';\n                    // Use overflow to predict truncated length.\n                    // Take an example.The text is: A text with A very long text that need to be truncated.ppt\n                    // if container is like\n                    // |A text with A very| long text that need to be truncated.ppt\n                    // The scroll width is 58, (take two | out of length)\n                    // The client width is 18\n                    // the overflow rate is scrollWidth/clientWidth which should be close to length(overflowText)/length(visualText)\n                    // And the length of remaining text should be truncated is (original Length)/(58/18) -3 = 15.\n                    // So that the logic can predict truncated text well.\n                    // first piece will be `A text `, * second piece will be `ated.ppt`\n                    // |A text ...ated.ppt|\n                    var overFlowRate = scrollWidth / (parseInt(style.width, 10) * lines);\n                    if (overFlowRate > 1) {\n                        var truncatedLength = originalTitle.length / overFlowRate - 3; /** Saved for separator */\n                        return _this.setState({\n                            truncatedTitleFirstPiece: originalTitle.slice(0, truncatedLength / 2),\n                            truncatedTitleSecondPiece: originalTitle.slice(originalTitle.length - truncatedLength / 2),\n                        });\n                    }\n                }\n            }\n        };\n        _this._shrinkTitle = function () {\n            var _a = _this.state, truncatedTitleFirstPiece = _a.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _a.truncatedTitleSecondPiece;\n            if (truncatedTitleFirstPiece && truncatedTitleSecondPiece) {\n                var titleElement = _this._titleElement.current;\n                if (!titleElement) {\n                    return;\n                }\n                if (titleElement.scrollHeight > titleElement.clientHeight + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD ||\n                    titleElement.scrollWidth > titleElement.clientWidth) {\n                    _this.setState({\n                        truncatedTitleFirstPiece: truncatedTitleFirstPiece.slice(0, truncatedTitleFirstPiece.length - 1),\n                        truncatedTitleSecondPiece: truncatedTitleSecondPiece.slice(1),\n                    });\n                }\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        _this._clientWidth = undefined;\n        _this.state = {\n            truncatedTitleFirstPiece: undefined,\n            truncatedTitleSecondPiece: undefined,\n        };\n        return _this;\n    }\n    DocumentCardTitleBase.prototype.componentDidUpdate = function (prevProps) {\n        var _this = this;\n        if (this.props.title !== prevProps.title) {\n            this.setState({\n                truncatedTitleFirstPiece: undefined,\n                truncatedTitleSecondPiece: undefined,\n            });\n        }\n        if (prevProps.shouldTruncate !== this.props.shouldTruncate) {\n            if (this.props.shouldTruncate) {\n                this._truncateTitle();\n                this._async.requestAnimationFrame(this._shrinkTitle);\n                this._events.on(window, 'resize', this._updateTruncation);\n            }\n            else {\n                this._events.off(window, 'resize', this._updateTruncation);\n            }\n        }\n        else if (this._needMeasurement) {\n            this._async.requestAnimationFrame(function () {\n                _this._truncateWhenInAnimation();\n                _this._shrinkTitle();\n            });\n        }\n    };\n    DocumentCardTitleBase.prototype.componentDidMount = function () {\n        if (this.props.shouldTruncate) {\n            this._truncateTitle();\n            this._events.on(window, 'resize', this._updateTruncation);\n        }\n    };\n    DocumentCardTitleBase.prototype.componentWillUnmount = function () {\n        this._events.dispose();\n        this._async.dispose();\n    };\n    DocumentCardTitleBase.prototype.render = function () {\n        var _this = this;\n        var _a = this.props, title = _a.title, shouldTruncate = _a.shouldTruncate, showAsSecondaryTitle = _a.showAsSecondaryTitle, styles = _a.styles, theme = _a.theme, className = _a.className;\n        var _b = this.state, truncatedTitleFirstPiece = _b.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _b.truncatedTitleSecondPiece;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            showAsSecondaryTitle: showAsSecondaryTitle,\n        });\n        if (shouldTruncate && truncatedTitleFirstPiece && truncatedTitleSecondPiece) {\n            return (React.createElement(DocumentCardContext.Consumer, null, function (_a) {\n                var role = _a.role, tabIndex = _a.tabIndex;\n                return (React.createElement(\"div\", { className: _this._classNames.root, ref: _this._titleElement, title: title, tabIndex: tabIndex, role: role },\n                    truncatedTitleFirstPiece,\n                    \"\\u2026\",\n                    truncatedTitleSecondPiece));\n            }));\n        }\n        else {\n            return (React.createElement(DocumentCardContext.Consumer, null, function (_a) {\n                var role = _a.role, tabIndex = _a.tabIndex;\n                return (React.createElement(\"div\", { className: _this._classNames.root, ref: _this._titleElement, title: title, tabIndex: tabIndex, role: role, style: _this._needMeasurement ? { whiteSpace: 'nowrap' } : undefined }, title));\n            }));\n        }\n    };\n    Object.defineProperty(DocumentCardTitleBase.prototype, \"_needMeasurement\", {\n        /**\n         * In measuring, it will render a same style text with whiteSpace: 'nowrap', to get overflow rate.\n         * So that the logic can predict truncated text well.\n         */\n        get: function () {\n            return !!this.props.shouldTruncate && this._clientWidth === undefined;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    DocumentCardTitleBase.prototype._updateTruncation = function () {\n        var _this = this;\n        if (this._timerId) {\n            return;\n        }\n        this._timerId = this._async.setTimeout(function () {\n            delete _this._timerId;\n            _this._clientWidth = undefined;\n            _this.setState({\n                truncatedTitleFirstPiece: undefined,\n                truncatedTitleSecondPiece: undefined,\n            });\n        }, 250);\n    };\n    return DocumentCardTitleBase;\n}(React.Component));\nexport { DocumentCardTitleBase };\n//# sourceMappingURL=DocumentCardTitle.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardTitleBase } from './DocumentCardTitle.base';\nimport { getStyles } from './DocumentCardTitle.styles';\nexport var DocumentCardTitle = styled(DocumentCardTitleBase, getStyles, undefined, { scope: 'DocumentCardTitle' });\n//# sourceMappingURL=DocumentCardTitle.js.map","import { getGlobalClassNames, getInputFocusStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nexport var DocumentCardTitleGlobalClassNames = {\n    root: 'ms-DocumentCardTitle',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var theme = props.theme, className = props.className, showAsSecondaryTitle = props.showAsSecondaryTitle;\n    var palette = theme.palette, fonts = theme.fonts, effects = theme.effects;\n    var classNames = getGlobalClassNames(DocumentCardTitleGlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            showAsSecondaryTitle ? fonts.medium : fonts.large,\n            {\n                padding: '8px 16px',\n                display: 'block',\n                overflow: 'hidden',\n                position: 'relative',\n                wordWrap: 'break-word',\n                height: showAsSecondaryTitle ? '45px' : '38px',\n                lineHeight: showAsSecondaryTitle ? '18px' : '21px',\n                color: showAsSecondaryTitle ? palette.neutralSecondary : palette.neutralPrimary,\n                selectors: (_a = {\n                        ':focus': {\n                            outline: '0px solid',\n                        }\n                    },\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = getInputFocusStyle(palette.neutralSecondary, effects.roundedCorner2),\n                    _a),\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=DocumentCardTitle.styles.js.map","import { __spreadArray } from \"tslib\";\nimport { DropdownMenuItemType } from '../Dropdown.types';\n/**\n * A utility class to cache size and position in cache.\n *\n * Dropdown options has non-selectable display types. It is therefore not cheap to determine\n * the total number of actual selectable options as well as the position an option is in the\n * list of options - O(n) cost for each lookup.\n *\n * Given that we potentially have to make this determination on every single render pass, this\n * cache should provide a little bit of relief.\n */\nvar DropdownSizePosCache = /** @class */ (function () {\n    function DropdownSizePosCache() {\n        this._size = 0;\n    }\n    /**\n     * Invalidates the cache and recalculate the size of selectable options.\n     */\n    DropdownSizePosCache.prototype.updateOptions = function (options) {\n        var displayOnlyOptionsCache = [];\n        var notSelectableOptionsCache = [];\n        var size = 0;\n        for (var i = 0; i < options.length; i++) {\n            var _a = options[i], itemType = _a.itemType, hidden = _a.hidden;\n            if (itemType === DropdownMenuItemType.Divider || itemType === DropdownMenuItemType.Header) {\n                displayOnlyOptionsCache.push(i);\n                notSelectableOptionsCache.push(i);\n            }\n            else if (hidden) {\n                notSelectableOptionsCache.push(i);\n            }\n            else {\n                size++;\n            }\n        }\n        this._size = size;\n        this._displayOnlyOptionsCache = displayOnlyOptionsCache;\n        this._notSelectableOptionsCache = notSelectableOptionsCache;\n        this._cachedOptions = __spreadArray([], options, true);\n    };\n    Object.defineProperty(DropdownSizePosCache.prototype, \"optionSetSize\", {\n        /**\n         * The size of all the selectable options.\n         */\n        get: function () {\n            return this._size;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(DropdownSizePosCache.prototype, \"cachedOptions\", {\n        /**\n         * The chached options array.\n         */\n        get: function () {\n            return this._cachedOptions;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Returns the position of this option element relative to the full set of selectable option elements.\n     * Note: the first selectable element is position 1 in the set.\n     * @param index The raw index of the option element.\n     */\n    DropdownSizePosCache.prototype.positionInSet = function (index) {\n        if (index === undefined) {\n            return undefined;\n        }\n        // we could possibly memoize this too but this should be good enough, most of the time (the expectation is that\n        // when you have a lot of options, the selectable options will heavily dominate over the non-selectable options.\n        var offset = 0;\n        while (index > this._notSelectableOptionsCache[offset]) {\n            offset++;\n        }\n        if (this._displayOnlyOptionsCache[offset] === index) {\n            throw new Error(\"Unexpected: Option at index \".concat(index, \" is not a selectable element.\"));\n        }\n        if (this._notSelectableOptionsCache[offset] === index) {\n            return undefined;\n        }\n        return index - offset + 1;\n    };\n    return DropdownSizePosCache;\n}());\nexport { DropdownSizePosCache };\n//# sourceMappingURL=DropdownSizePosCache.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { css, KeyCodes, classNamesFunction, divProperties, findIndex, getDocument, getFirstFocusable, getId, getLastFocusable, getNativeProps, initializeComponentRef, isIOS, isMac, mergeAriaAttributeValues, safeRequestAnimationFrame, warn, warnDeprecations, warnMutuallyExclusive, } from '../../Utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { CommandButton } from '../../Button';\nimport { DropdownMenuItemType } from './Dropdown.types';\nimport { DropdownSizePosCache } from './utilities/DropdownSizePosCache';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { Label } from '../../Label';\nimport { Panel } from '../../Panel';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions } from '../../SelectableOption';\n// import and use V7 Checkbox to ensure no breaking changes.\nimport { Checkbox } from '../../Checkbox';\nimport { getNextElement, getPreviousElement, getPropsWithDefaults } from '@fluentui/utilities';\nimport { useMergedRefs, usePrevious } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'Dropdown';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n    options: [],\n};\nfunction useSelectedItemsState(_a) {\n    var defaultSelectedKeys = _a.defaultSelectedKeys, selectedKeys = _a.selectedKeys, defaultSelectedKey = _a.defaultSelectedKey, selectedKey = _a.selectedKey, options = _a.options, multiSelect = _a.multiSelect;\n    var oldOptions = usePrevious(options);\n    var _b = React.useState([]), selectedIndices = _b[0], setSelectedIndices = _b[1];\n    // In controlled component usage where selectedKey is provided, update the selectedIndex\n    // state if the key or options change.\n    var selectedKeyPropToUse;\n    // this does a shallow compare (assumes options are pure), for the purposes of determining whether\n    // defaultSelectedKey/defaultSelectedKeys are respected.\n    var didOptionsChange = options !== oldOptions;\n    if (multiSelect) {\n        if (didOptionsChange && defaultSelectedKeys !== undefined) {\n            selectedKeyPropToUse = defaultSelectedKeys;\n        }\n        else {\n            selectedKeyPropToUse = selectedKeys;\n        }\n    }\n    else {\n        if (didOptionsChange && defaultSelectedKey !== undefined) {\n            selectedKeyPropToUse = defaultSelectedKey;\n        }\n        else {\n            selectedKeyPropToUse = selectedKey;\n        }\n    }\n    var oldSelectedKeyProp = usePrevious(selectedKeyPropToUse);\n    React.useEffect(function () {\n        /** Get all selected indexes for multi-select mode */\n        var getSelectedIndexes = function () {\n            if (selectedKeyPropToUse === undefined) {\n                if (multiSelect) {\n                    return getAllSelectedIndices();\n                }\n                var selectedIndex = getSelectedIndex(null);\n                return selectedIndex !== -1 ? [selectedIndex] : [];\n            }\n            else if (!Array.isArray(selectedKeyPropToUse)) {\n                var selectedIndex = getSelectedIndex(selectedKeyPropToUse);\n                return selectedIndex !== -1 ? [selectedIndex] : [];\n            }\n            var returnValue = [];\n            for (var _i = 0, selectedKeyPropToUse_1 = selectedKeyPropToUse; _i < selectedKeyPropToUse_1.length; _i++) {\n                var key = selectedKeyPropToUse_1[_i];\n                var selectedIndex = getSelectedIndex(key);\n                selectedIndex !== -1 && returnValue.push(selectedIndex);\n            }\n            return returnValue;\n        };\n        var getAllSelectedIndices = function () {\n            return options\n                .map(function (option, index) { return (option.selected ? index : -1); })\n                .filter(function (index) { return index !== -1; });\n        };\n        var getSelectedIndex = function (searchKey) {\n            return findIndex(options, function (option) {\n                // eslint-disable-next-line eqeqeq\n                if (searchKey != null) {\n                    return option.key === searchKey;\n                }\n                else {\n                    // eslint-disable-next-line deprecation/deprecation\n                    return !!option.selected || !!option.isSelected;\n                }\n            });\n        };\n        if ((selectedKeyPropToUse !== undefined || !oldOptions) &&\n            (selectedKeyPropToUse !== oldSelectedKeyProp || didOptionsChange)) {\n            setSelectedIndices(getSelectedIndexes());\n        }\n    }, [didOptionsChange, multiSelect, oldOptions, oldSelectedKeyProp, options, selectedKeyPropToUse]);\n    return [selectedIndices, setSelectedIndices];\n}\nexport var DropdownBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var rootRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n    var responsiveMode = useResponsiveMode(rootRef, props.responsiveMode);\n    var _a = useSelectedItemsState(props), selectedIndices = _a[0], setSelectedIndices = _a[1];\n    return (React.createElement(DropdownInternal, __assign({}, props, { responsiveMode: responsiveMode, hoisted: { rootRef: mergedRootRef, selectedIndices: selectedIndices, setSelectedIndices: setSelectedIndices } })));\n});\nDropdownBase.displayName = 'DropdownBase';\nvar DropdownInternal = /** @class */ (function (_super) {\n    __extends(DropdownInternal, _super);\n    function DropdownInternal(props) {\n        var _this = _super.call(this, props) || this;\n        _this._host = React.createRef();\n        _this._focusZone = React.createRef();\n        _this._dropDown = React.createRef();\n        _this._scrollIdleDelay = 250 /* ms */;\n        _this._sizePosCache = new DropdownSizePosCache();\n        _this._requestAnimationFrame = safeRequestAnimationFrame(_this);\n        /**\n         * Close menu callout if it is open\n         */\n        _this.dismissMenu = function () {\n            var isOpen = _this.state.isOpen;\n            isOpen && _this.setState({ isOpen: false });\n        };\n        _this._onChange = function (event, options, index, checked, multiSelect) {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = _this.props, onChange = _a.onChange, onChanged = _a.onChanged;\n            if (onChange || onChanged) {\n                // for single-select, option passed in will always be selected.\n                // for multi-select, flip the checked value\n                var changedOpt = multiSelect ? __assign(__assign({}, options[index]), { selected: !checked }) : options[index];\n                onChange && onChange(__assign(__assign({}, event), { target: _this._dropDown.current }), changedOpt, index);\n                onChanged && onChanged(changedOpt, index);\n            }\n        };\n        /** Get either props.placeholder (new name) or props.placeHolder (old name) */\n        _this._getPlaceholder = function () {\n            // eslint-disable-next-line deprecation/deprecation\n            return _this.props.placeholder || _this.props.placeHolder;\n        };\n        /** Get text in dropdown input as a string */\n        _this._getTitle = function (items, _unused) {\n            var _a = _this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n            return items.map(function (i) { return i.text; }).join(multiSelectDelimiter);\n        };\n        /** Render text in dropdown input */\n        _this._onRenderTitle = function (items) {\n            return React.createElement(React.Fragment, null, _this._getTitle(items));\n        };\n        /** Render placeholder text in dropdown input */\n        _this._onRenderPlaceholder = function (props) {\n            if (!_this._getPlaceholder()) {\n                return null;\n            }\n            return React.createElement(React.Fragment, null, _this._getPlaceholder());\n        };\n        /** Render Callout or Panel container and pass in list */\n        _this._onRenderContainer = function (props) {\n            var calloutProps = props.calloutProps, panelProps = props.panelProps;\n            var _a = _this.props, responsiveMode = _a.responsiveMode, dropdownWidth = _a.dropdownWidth;\n            var isSmall = responsiveMode <= ResponsiveMode.medium;\n            var focusTrapZoneProps = { firstFocusableTarget: \"#\".concat(_this._listId, \"1\") };\n            var panelStyles = _this._classNames.subComponentStyles\n                ? _this._classNames.subComponentStyles.panel\n                : undefined;\n            var calloutWidth = undefined;\n            var calloutMinWidth = undefined;\n            if (dropdownWidth === 'auto') {\n                calloutMinWidth = _this._dropDown.current ? _this._dropDown.current.clientWidth : 0;\n            }\n            else {\n                calloutWidth = dropdownWidth || (_this._dropDown.current ? _this._dropDown.current.clientWidth : 0);\n            }\n            return isSmall ? (React.createElement(Panel, __assign({ closeButtonAriaLabel: \"Close\", focusTrapZoneProps: focusTrapZoneProps, hasCloseButton: true, isOpen: true, isLightDismiss: true, onDismiss: _this._onDismiss, styles: panelStyles }, panelProps), _this._renderFocusableList(props))) : (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHintFixed: false, directionalHint: DirectionalHint.bottomLeftEdge, calloutWidth: calloutWidth, calloutMinWidth: calloutMinWidth }, calloutProps, { className: _this._classNames.callout, target: _this._dropDown.current, onDismiss: _this._onDismiss, onScroll: _this._onScroll, onPositioned: _this._onPositioned }), _this._renderFocusableList(props)));\n        };\n        /** Render Caret Down Icon */\n        _this._onRenderCaretDown = function (props) {\n            return React.createElement(Icon, { className: _this._classNames.caretDown, iconName: \"ChevronDown\", \"aria-hidden\": true });\n        };\n        /** Render List of items */\n        _this._onRenderList = function (props) {\n            var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a;\n            var queue = { items: [] };\n            var renderedList = [];\n            var emptyQueue = function () {\n                var newGroup = queue.id\n                    ? [\n                        React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n                    ]\n                    : queue.items;\n                renderedList = __spreadArray(__spreadArray([], renderedList, true), newGroup, true);\n                // Flush items and id\n                queue = { items: [] };\n            };\n            var placeRenderedOptionIntoQueue = function (item, index) {\n                /*\n                  Case Header\n                    empty queue if it's not already empty\n                    ensure unique ID for header and set queue ID\n                    push header into queue\n                  Case Divider\n                    push divider into queue if not first item\n                    empty queue if not already empty\n                  Default\n                    push item into queue\n                */\n                switch (item.itemType) {\n                    case SelectableOptionMenuItemType.Header:\n                        queue.items.length > 0 && emptyQueue();\n                        var id = _this._id + item.key;\n                        queue.items.push(onRenderItem(__assign(__assign({ id: id }, item), { index: index }), _this._onRenderItem));\n                        queue.id = id;\n                        break;\n                    case SelectableOptionMenuItemType.Divider:\n                        index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n                        queue.items.length > 0 && emptyQueue();\n                        break;\n                    default:\n                        queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n                }\n            };\n            // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n            props.options.forEach(function (item, index) {\n                placeRenderedOptionIntoQueue(item, index);\n            });\n            // Push remaining items into all renderedList\n            queue.items.length > 0 && emptyQueue();\n            return React.createElement(React.Fragment, null, renderedList);\n        };\n        _this._onRenderItem = function (item) {\n            switch (item.itemType) {\n                case SelectableOptionMenuItemType.Divider:\n                    return _this._renderSeparator(item);\n                case SelectableOptionMenuItemType.Header:\n                    return _this._renderHeader(item);\n                default:\n                    return _this._renderOption(item);\n            }\n        };\n        _this._renderOption = function (item) {\n            var _a;\n            var _b = _this.props, _c = _b.onRenderOption, onRenderOption = _c === void 0 ? _this._onRenderOption : _c, _d = _b.hoisted.selectedIndices, selectedIndices = _d === void 0 ? [] : _d;\n            var isItemSelected = item.index !== undefined && selectedIndices ? selectedIndices.indexOf(item.index) > -1 : false;\n            // select the right className based on the combination of selected/disabled\n            var itemClassName = item.hidden // predicate: item hidden\n                ? _this._classNames.dropdownItemHidden\n                : isItemSelected && item.disabled === true // predicate: both selected and disabled\n                    ? _this._classNames.dropdownItemSelectedAndDisabled\n                    : isItemSelected // predicate: selected only\n                        ? _this._classNames.dropdownItemSelected\n                        : item.disabled === true // predicate: disabled only\n                            ? _this._classNames.dropdownItemDisabled\n                            : _this._classNames.dropdownItem;\n            var title = item.title;\n            // define the id and label id (for multiselect checkboxes)\n            var id = _this._listId + item.index;\n            var labelId = (_a = item.id) !== null && _a !== void 0 ? _a : id + '-label';\n            var multiSelectItemStyles = _this._classNames.subComponentStyles\n                ? _this._classNames.subComponentStyles.multiSelectItem\n                : undefined;\n            return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: id, key: item.key, \"data-index\": item.index, \"data-is-focusable\": !item.disabled, disabled: item.disabled, className: itemClassName, onClick: _this._onItemClick(item), \n                // eslint-disable-next-line react/jsx-no-bind\n                onMouseEnter: _this._onItemMouseEnter.bind(_this, item), \n                // eslint-disable-next-line react/jsx-no-bind\n                onMouseLeave: _this._onMouseItemLeave.bind(_this, item), \n                // eslint-disable-next-line react/jsx-no-bind\n                onMouseMove: _this._onItemMouseMove.bind(_this, item), role: \"option\", \"aria-selected\": isItemSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, title: title, \"aria-posinset\": _this._sizePosCache.positionInSet(item.index), \"aria-setsize\": _this._sizePosCache.optionSetSize }, onRenderOption(item, _this._onRenderOption))) : (React.createElement(Checkbox, { id: id, key: item.key, disabled: item.disabled, onChange: _this._onItemClick(item), inputProps: __assign({ 'aria-selected': isItemSelected, onMouseEnter: _this._onItemMouseEnter.bind(_this, item), onMouseLeave: _this._onMouseItemLeave.bind(_this, item), onMouseMove: _this._onItemMouseMove.bind(_this, item), role: 'option' }, {\n                    'data-index': item.index,\n                    'data-is-focusable': !(item.disabled || item.hidden),\n                }), label: item.text, title: title, \n                // eslint-disable-next-line react/jsx-no-bind\n                onRenderLabel: _this._onRenderItemLabel.bind(_this, __assign(__assign({}, item), { id: labelId })), className: css(itemClassName, 'is-multi-select'), checked: isItemSelected, styles: multiSelectItemStyles, ariaPositionInSet: !item.hidden ? _this._sizePosCache.positionInSet(item.index) : undefined, ariaSetSize: !item.hidden ? _this._sizePosCache.optionSetSize : undefined, ariaLabel: item.ariaLabel, ariaLabelledBy: item.ariaLabel ? undefined : labelId }));\n        };\n        /** Render content of item (i.e. text/icon inside of button) */\n        _this._onRenderOption = function (item) {\n            return React.createElement(\"span\", { className: _this._classNames.dropdownOptionText }, item.text);\n        };\n        /*\n         * Render content of a multiselect item label.\n         * Text within the label is aria-hidden, to prevent duplicate input/label exposure\n         */\n        _this._onRenderMultiselectOption = function (item) {\n            return (React.createElement(\"span\", { id: item.id, \"aria-hidden\": \"true\", className: _this._classNames.dropdownOptionText }, item.text));\n        };\n        /** Render custom label for multiselect checkbox items */\n        _this._onRenderItemLabel = function (item) {\n            var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderMultiselectOption : _a;\n            return onRenderOption(item, _this._onRenderMultiselectOption);\n        };\n        _this._onPositioned = function (positions) {\n            if (_this._focusZone.current) {\n                // Focusing an element can trigger a reflow. Making this wait until there is an animation\n                // frame can improve perf significantly.\n                _this._requestAnimationFrame(function () {\n                    var selectedIndices = _this.props.hoisted.selectedIndices;\n                    if (_this._focusZone.current) {\n                        if (!_this._hasBeenPositioned &&\n                            selectedIndices &&\n                            selectedIndices[0] &&\n                            !_this.props.options[selectedIndices[0]].disabled) {\n                            var element = getDocument().getElementById(\"\".concat(_this._id, \"-list\").concat(selectedIndices[0]));\n                            if (element) {\n                                _this._focusZone.current.focusElement(element);\n                            }\n                            _this._hasBeenPositioned = true;\n                        }\n                        else {\n                            _this._focusZone.current.focus();\n                        }\n                    }\n                });\n            }\n            if (!_this.state.calloutRenderEdge || _this.state.calloutRenderEdge !== positions.targetEdge) {\n                _this.setState({\n                    calloutRenderEdge: positions.targetEdge,\n                });\n            }\n        };\n        _this._onItemClick = function (item) {\n            return function (event) {\n                if (!item.disabled) {\n                    _this.setSelectedIndex(event, item.index);\n                    if (!_this.props.multiSelect) {\n                        // only close the callout when it's in single-select mode\n                        _this.setState({\n                            isOpen: false,\n                        });\n                    }\n                }\n            };\n        };\n        /**\n         * Scroll handler for the callout to make sure the mouse events\n         * for updating focus are not interacting during scroll\n         */\n        _this._onScroll = function () {\n            if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n                clearTimeout(_this._scrollIdleTimeoutId);\n                _this._scrollIdleTimeoutId = undefined;\n            }\n            else {\n                _this._isScrollIdle = false;\n            }\n            _this._scrollIdleTimeoutId = window.setTimeout(function () {\n                _this._isScrollIdle = true;\n            }, _this._scrollIdleDelay);\n        };\n        _this._onMouseItemLeave = function (item, ev) {\n            if (_this._shouldIgnoreMouseEvent()) {\n                return;\n            }\n            /**\n             * IE11 focus() method forces parents to scroll to top of element.\n             * Edge and IE expose a setActive() function for focusable divs that\n             * sets the page focus but does not scroll the parent element.\n             */\n            if (_this._host.current) {\n                if (_this._host.current.setActive) {\n                    try {\n                        _this._host.current.setActive();\n                    }\n                    catch (e) {\n                        /* no-op */\n                    }\n                }\n                else {\n                    _this._host.current.focus();\n                }\n            }\n        };\n        _this._onDismiss = function () {\n            _this.setState({ isOpen: false });\n        };\n        _this._onDropdownBlur = function (ev) {\n            // If Dropdown disabled do not proceed with this logic.\n            var disabled = _this._isDisabled();\n            if (disabled) {\n                return;\n            }\n            if (_this.state.isOpen) {\n                // Do not call onBlur or update focus state when the callout is opened\n                return;\n            }\n            _this.setState({ hasFocus: false });\n            if (_this.props.onBlur) {\n                _this.props.onBlur(ev);\n            }\n        };\n        _this._onDropdownKeyDown = function (ev) {\n            // If Dropdown disabled do not process any keyboard events.\n            var disabled = _this._isDisabled();\n            if (disabled) {\n                return;\n            }\n            // Take note if we are processing an alt (option) or meta (command) keydown.\n            // See comment in _shouldHandleKeyUp for reasoning.\n            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n            if (_this.props.onKeyDown) {\n                _this.props.onKeyDown(ev);\n                if (ev.defaultPrevented) {\n                    return;\n                }\n            }\n            var newIndex;\n            var selectedIndex = _this.props.hoisted.selectedIndices.length ? _this.props.hoisted.selectedIndices[0] : -1;\n            var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n            var isOpen = _this.state.isOpen;\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.enter:\n                    _this.setState({\n                        isOpen: !isOpen,\n                    });\n                    break;\n                case KeyCodes.escape:\n                    if (!isOpen) {\n                        return;\n                    }\n                    _this.setState({\n                        isOpen: false,\n                    });\n                    break;\n                case KeyCodes.up:\n                    if (containsExpandCollapseModifier) {\n                        if (isOpen) {\n                            _this.setState({ isOpen: false });\n                            break;\n                        }\n                        return;\n                    }\n                    if (_this.props.multiSelect) {\n                        _this.setState({ isOpen: true });\n                    }\n                    else if (!_this._isDisabled()) {\n                        newIndex = _this._moveIndex(ev, -1, selectedIndex - 1, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.down:\n                    if (containsExpandCollapseModifier) {\n                        ev.stopPropagation();\n                        ev.preventDefault();\n                    }\n                    if ((containsExpandCollapseModifier && !isOpen) || _this.props.multiSelect) {\n                        _this.setState({ isOpen: true });\n                    }\n                    else if (!_this._isDisabled()) {\n                        newIndex = _this._moveIndex(ev, 1, selectedIndex + 1, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.home:\n                    if (!_this.props.multiSelect) {\n                        newIndex = _this._moveIndex(ev, 1, 0, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.end:\n                    if (!_this.props.multiSelect) {\n                        newIndex = _this._moveIndex(ev, -1, _this.props.options.length - 1, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.space:\n                    // event handled in _onDropdownKeyUp\n                    break;\n                default:\n                    return;\n            }\n            if (newIndex !== selectedIndex) {\n                ev.stopPropagation();\n                ev.preventDefault();\n            }\n        };\n        _this._onDropdownKeyUp = function (ev) {\n            // If Dropdown disabled do not process any keyboard events.\n            var disabled = _this._isDisabled();\n            if (disabled) {\n                return;\n            }\n            var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n            var isOpen = _this.state.isOpen;\n            if (_this.props.onKeyUp) {\n                _this.props.onKeyUp(ev);\n                if (ev.defaultPrevented) {\n                    return;\n                }\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.space:\n                    _this.setState({\n                        isOpen: !isOpen,\n                    });\n                    break;\n                default:\n                    if (shouldHandleKey && isOpen) {\n                        _this.setState({ isOpen: false });\n                    }\n                    return;\n            }\n            ev.stopPropagation();\n            ev.preventDefault();\n        };\n        _this._onZoneKeyDown = function (ev) {\n            var _a, _b;\n            var elementToFocus;\n            // Take note if we are processing an alt (option) or meta (command) keydown.\n            // See comment in _shouldHandleKeyUp for reasoning.\n            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n            var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.up:\n                    if (containsExpandCollapseModifier) {\n                        _this.setState({ isOpen: false });\n                    }\n                    else {\n                        if (_this._host.current) {\n                            elementToFocus = getLastFocusable(_this._host.current, _this._host.current.lastChild, true);\n                        }\n                    }\n                    break;\n                // All directional keystrokes should be canceled when the zone is rendered.\n                // This avoids the body scroll from reacting and thus dismissing the dropdown.\n                case KeyCodes.home:\n                case KeyCodes.end:\n                case KeyCodes.pageUp:\n                case KeyCodes.pageDown:\n                    break;\n                case KeyCodes.down:\n                    if (!containsExpandCollapseModifier && _this._host.current) {\n                        elementToFocus = getFirstFocusable(_this._host.current, _this._host.current.firstChild, true);\n                    }\n                    break;\n                case KeyCodes.escape:\n                    _this.setState({ isOpen: false });\n                    break;\n                case KeyCodes.tab:\n                    _this.setState({ isOpen: false });\n                    var document_1 = getDocument();\n                    if (document_1) {\n                        if (ev.shiftKey) {\n                            (_a = getPreviousElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _a === void 0 ? void 0 : _a.focus();\n                        }\n                        else {\n                            (_b = getNextElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _b === void 0 ? void 0 : _b.focus();\n                        }\n                    }\n                    break;\n                default:\n                    return;\n            }\n            if (elementToFocus) {\n                elementToFocus.focus();\n            }\n            ev.stopPropagation();\n            ev.preventDefault();\n        };\n        _this._onZoneKeyUp = function (ev) {\n            var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n            if (shouldHandleKey && _this.state.isOpen) {\n                _this.setState({ isOpen: false });\n                ev.preventDefault();\n            }\n        };\n        _this._onDropdownClick = function (ev) {\n            if (_this.props.onClick) {\n                _this.props.onClick(ev);\n                if (ev.defaultPrevented) {\n                    return;\n                }\n            }\n            var isOpen = _this.state.isOpen;\n            var disabled = _this._isDisabled();\n            if (!disabled && !_this._shouldOpenOnFocus()) {\n                _this.setState({\n                    isOpen: !isOpen,\n                });\n            }\n            _this._isFocusedByClick = false; // reset\n        };\n        _this._onDropdownMouseDown = function () {\n            _this._isFocusedByClick = true;\n        };\n        _this._onFocus = function (ev) {\n            var disabled = _this._isDisabled();\n            if (!disabled) {\n                if (_this.props.onFocus) {\n                    _this.props.onFocus(ev);\n                }\n                var state = { hasFocus: true };\n                if (_this._shouldOpenOnFocus()) {\n                    state.isOpen = true;\n                }\n                _this.setState(state);\n            }\n        };\n        /**\n         * Because the isDisabled prop is deprecated, we have had to repeat this logic all over the place.\n         * This helper method avoids all the repetition.\n         */\n        _this._isDisabled = function () {\n            var disabled = _this.props.disabled;\n            // eslint-disable-next-line deprecation/deprecation\n            var isDisabled = _this.props.isDisabled;\n            // Remove this deprecation workaround at 1.0.0\n            if (disabled === undefined) {\n                disabled = isDisabled;\n            }\n            return disabled;\n        };\n        _this._onRenderLabel = function (props) {\n            var label = props.label, required = props.required, disabled = props.disabled;\n            var labelStyles = _this._classNames.subComponentStyles\n                ? _this._classNames.subComponentStyles.label\n                : undefined;\n            return label ? (React.createElement(Label, { className: _this._classNames.label, id: _this._labelId, required: required, styles: labelStyles, disabled: disabled }, label)) : null;\n        };\n        initializeComponentRef(_this);\n        var multiSelect = props.multiSelect, selectedKey = props.selectedKey, selectedKeys = props.selectedKeys, defaultSelectedKey = props.defaultSelectedKey, defaultSelectedKeys = props.defaultSelectedKeys, options = props.options;\n        if (process.env.NODE_ENV !== 'production') {\n            warnDeprecations(COMPONENT_NAME, props, {\n                isDisabled: 'disabled',\n                onChanged: 'onChange',\n                placeHolder: 'placeholder',\n                onRenderPlaceHolder: 'onRenderPlaceholder',\n            });\n            warnMutuallyExclusive(COMPONENT_NAME, props, {\n                defaultSelectedKey: 'selectedKey',\n                defaultSelectedKeys: 'selectedKeys',\n                selectedKeys: 'selectedKey',\n            });\n            if (multiSelect) {\n                var warnMultiSelect = function (prop) {\n                    return warn(\"Dropdown property '\".concat(prop, \"' cannot be used when 'multiSelect' is true. Use '\").concat(prop, \"s' instead.\"));\n                };\n                if (selectedKey !== undefined) {\n                    warnMultiSelect('selectedKey');\n                }\n                if (defaultSelectedKey !== undefined) {\n                    warnMultiSelect('defaultSelectedKey');\n                }\n            }\n            else {\n                var warnNotMultiSelect = function (prop) {\n                    return warn(\"Dropdown property '\".concat(prop, \"s' cannot be used when 'multiSelect' is false/unset. Use '\").concat(prop, \"' instead.\"));\n                };\n                if (selectedKeys !== undefined) {\n                    warnNotMultiSelect('selectedKey');\n                }\n                if (defaultSelectedKeys !== undefined) {\n                    warnNotMultiSelect('defaultSelectedKey');\n                }\n            }\n        }\n        _this._id = props.id || getId('Dropdown');\n        _this._labelId = _this._id + '-label';\n        _this._listId = _this._id + '-list';\n        _this._optionId = _this._id + '-option';\n        _this._isScrollIdle = true;\n        _this._hasBeenPositioned = false;\n        _this._sizePosCache.updateOptions(options);\n        _this.state = {\n            isOpen: false,\n            hasFocus: false,\n            calloutRenderEdge: undefined,\n        };\n        return _this;\n    }\n    Object.defineProperty(DropdownInternal.prototype, \"selectedOptions\", {\n        /**\n         * All selected options\n         */\n        get: function () {\n            var _a = this.props, options = _a.options, selectedIndices = _a.hoisted.selectedIndices;\n            return getAllSelectedOptions(options, selectedIndices);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    DropdownInternal.prototype.componentWillUnmount = function () {\n        clearTimeout(this._scrollIdleTimeoutId);\n    };\n    DropdownInternal.prototype.componentDidUpdate = function (prevProps, prevState) {\n        if (prevState.isOpen === true && this.state.isOpen === false) {\n            this._gotMouseMove = false;\n            this._hasBeenPositioned = false;\n            if (this.props.onDismiss) {\n                this.props.onDismiss();\n            }\n        }\n    };\n    DropdownInternal.prototype.render = function () {\n        var id = this._id;\n        var props = this.props;\n        var className = props.className, label = props.label, options = props.options, ariaLabel = props.ariaLabel, required = props.required, errorMessage = props.errorMessage, propStyles = props.styles, theme = props.theme, panelProps = props.panelProps, calloutProps = props.calloutProps, _a = props.onRenderTitle, onRenderTitle = _a === void 0 ? this._getTitle : _a, _b = props.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = props.onRenderCaretDown, onRenderCaretDown = _c === void 0 ? this._onRenderCaretDown : _c, _d = props.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = props.onRenderItem, onRenderItem = _e === void 0 ? this._onRenderItem : _e, selectedIndices = props.hoisted.selectedIndices;\n        var _f = this.state, isOpen = _f.isOpen, calloutRenderEdge = _f.calloutRenderEdge, hasFocus = _f.hasFocus;\n        // eslint-disable-next-line deprecation/deprecation\n        var onRenderPlaceholder = props.onRenderPlaceholder || props.onRenderPlaceHolder || this._getPlaceholder;\n        // If our cached options are out of date update our cache\n        if (options !== this._sizePosCache.cachedOptions) {\n            this._sizePosCache.updateOptions(options);\n        }\n        var selectedOptions = getAllSelectedOptions(options, selectedIndices);\n        var divProps = getNativeProps(props, divProperties);\n        var disabled = this._isDisabled();\n        var errorMessageId = id + '-errorMessage';\n        this._classNames = getClassNames(propStyles, {\n            theme: theme,\n            className: className,\n            hasError: !!(errorMessage && errorMessage.length > 0),\n            hasLabel: !!label,\n            isOpen: isOpen,\n            required: required,\n            disabled: disabled,\n            isRenderingPlaceholder: !selectedOptions.length,\n            panelClassName: panelProps ? panelProps.className : undefined,\n            calloutClassName: calloutProps ? calloutProps.className : undefined,\n            calloutRenderEdge: calloutRenderEdge,\n        });\n        var hasErrorMessage = !!errorMessage && errorMessage.length > 0;\n        return (React.createElement(\"div\", { className: this._classNames.root, ref: this.props.hoisted.rootRef, \"aria-owns\": isOpen ? this._listId : undefined },\n            onRenderLabel(this.props, this._onRenderLabel),\n            React.createElement(\"div\", __assign({ \"data-is-focusable\": !disabled, \"data-ktp-target\": true, ref: this._dropDown, id: id, tabIndex: disabled ? -1 : 0, role: \"combobox\", \"aria-haspopup\": \"listbox\", \"aria-expanded\": isOpen ? 'true' : 'false', \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? mergeAriaAttributeValues(this._labelId, this._optionId) : undefined, \"aria-describedby\": hasErrorMessage ? this._id + '-errorMessage' : undefined, \"aria-required\": required, \"aria-disabled\": disabled, \"aria-controls\": isOpen ? this._listId : undefined }, divProps, { className: this._classNames.dropdown, onBlur: this._onDropdownBlur, onKeyDown: this._onDropdownKeyDown, onKeyUp: this._onDropdownKeyUp, onClick: this._onDropdownClick, onMouseDown: this._onDropdownMouseDown, onFocus: this._onFocus }),\n                React.createElement(\"span\", { id: this._optionId, className: this._classNames.title, \"aria-live\": hasFocus ? 'polite' : undefined, \"aria-atomic\": hasFocus ? true : undefined, \"aria-invalid\": hasErrorMessage }, \n                // If option is selected render title, otherwise render the placeholder text\n                selectedOptions.length\n                    ? onRenderTitle(selectedOptions, this._onRenderTitle)\n                    : onRenderPlaceholder(props, this._onRenderPlaceholder)),\n                React.createElement(\"span\", { className: this._classNames.caretDownWrapper }, onRenderCaretDown(props, this._onRenderCaretDown))),\n            isOpen &&\n                onRenderContainer(__assign(__assign({}, props), { onDismiss: this._onDismiss, onRenderItem: onRenderItem }), this._onRenderContainer),\n            hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n    };\n    DropdownInternal.prototype.focus = function (shouldOpenOnFocus) {\n        if (this._dropDown.current) {\n            this._dropDown.current.focus();\n            if (shouldOpenOnFocus) {\n                this.setState({\n                    isOpen: true,\n                });\n            }\n        }\n    };\n    DropdownInternal.prototype.setSelectedIndex = function (event, index) {\n        var _a = this.props, options = _a.options, selectedKey = _a.selectedKey, selectedKeys = _a.selectedKeys, multiSelect = _a.multiSelect, notifyOnReselect = _a.notifyOnReselect, _b = _a.hoisted.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;\n        var checked = selectedIndices ? selectedIndices.indexOf(index) > -1 : false;\n        var newIndexes = [];\n        index = Math.max(0, Math.min(options.length - 1, index));\n        // If this is a controlled component then no state change should take place.\n        if (selectedKey !== undefined || selectedKeys !== undefined) {\n            this._onChange(event, options, index, checked, multiSelect);\n            return;\n        }\n        if (!multiSelect && !notifyOnReselect && index === selectedIndices[0]) {\n            return;\n        }\n        else if (multiSelect) {\n            newIndexes = selectedIndices ? this._copyArray(selectedIndices) : [];\n            if (checked) {\n                var position = newIndexes.indexOf(index);\n                if (position > -1) {\n                    // unchecked the current one\n                    newIndexes.splice(position, 1);\n                }\n            }\n            else {\n                // add the new selected index into the existing one\n                newIndexes.push(index);\n            }\n        }\n        else {\n            // Set the selected option if this is an uncontrolled component\n            newIndexes = [index];\n        }\n        event.persist();\n        // Call onChange after state is updated\n        this.props.hoisted.setSelectedIndices(newIndexes);\n        this._onChange(event, options, index, checked, multiSelect);\n    };\n    DropdownInternal.prototype._copyArray = function (array) {\n        var newArray = [];\n        for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\n            var element = array_1[_i];\n            newArray.push(element);\n        }\n        return newArray;\n    };\n    /**\n     * Finds the next valid Dropdown option and sets the selected index to it.\n     * @param stepValue - Value of how many items the function should traverse.  Should be -1 or 1.\n     * @param index - Index of where the search should start\n     * @param selectedIndex - The selectedIndex Dropdown's state\n     * @returns The next valid dropdown option's index\n     */\n    DropdownInternal.prototype._moveIndex = function (event, stepValue, index, selectedIndex) {\n        var options = this.props.options;\n        // Return selectedIndex if nothing has changed or options is empty\n        if (selectedIndex === index || options.length === 0) {\n            return selectedIndex;\n        }\n        // If the user is pressing the up or down key we want to make\n        // sure that the dropdown cycles through the options without\n        // causing the screen to scroll. In _onDropdownKeyDown\n        // at the very end is a check to see if newIndex !== selectedIndex.\n        // If the index is less than 0 and we set it back to 0, then\n        // newIndex will equal selectedIndex and not stop the action\n        // of the key press happening and vice versa for indexes greater\n        // than or equal to the options length.\n        if (index >= options.length) {\n            index = 0;\n        }\n        else if (index < 0) {\n            index = options.length - 1;\n        }\n        var stepCounter = 0;\n        // If current index is a header or divider, or disabled, increment by step\n        while (options[index].itemType === DropdownMenuItemType.Header ||\n            options[index].itemType === DropdownMenuItemType.Divider ||\n            options[index].disabled) {\n            // If stepCounter exceeds length of options, then return selectedIndex (-1)\n            if (stepCounter >= options.length) {\n                return selectedIndex;\n            }\n            // If index + stepValue is out of bounds, wrap around\n            if (index + stepValue < 0) {\n                index = options.length;\n            }\n            else if (index + stepValue >= options.length) {\n                index = -1;\n            }\n            index = index + stepValue;\n            stepCounter++;\n        }\n        this.setSelectedIndex(event, index);\n        return index;\n    };\n    /** Wrap item list in a FocusZone */\n    DropdownInternal.prototype._renderFocusableList = function (props) {\n        var _a = props.onRenderList, onRenderList = _a === void 0 ? this._onRenderList : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;\n        return (React.createElement(\"div\", { className: this._classNames.dropdownItemsWrapper, onKeyDown: this._onZoneKeyDown, onKeyUp: this._onZoneKeyUp, ref: this._host, tabIndex: 0 },\n            React.createElement(FocusZone, { ref: this._focusZone, direction: FocusZoneDirection.vertical, id: this._listId, className: this._classNames.dropdownItems, role: \"listbox\", \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? this._labelId : undefined, \"aria-multiselectable\": multiSelect }, onRenderList(props, this._onRenderList))));\n    };\n    DropdownInternal.prototype._renderSeparator = function (item) {\n        var index = item.index, key = item.key;\n        var separatorClassName = item.hidden ? this._classNames.dropdownDividerHidden : this._classNames.dropdownDivider;\n        if (index > 0) {\n            return React.createElement(\"div\", { role: \"presentation\", key: key, className: separatorClassName });\n        }\n        return null;\n    };\n    DropdownInternal.prototype._renderHeader = function (item) {\n        var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOption : _a;\n        var key = item.key, id = item.id;\n        var headerClassName = item.hidden\n            ? this._classNames.dropdownItemHeaderHidden\n            : this._classNames.dropdownItemHeader;\n        return (React.createElement(\"div\", { id: id, key: key, className: headerClassName }, onRenderOption(item, this._onRenderOption)));\n    };\n    DropdownInternal.prototype._onItemMouseEnter = function (item, ev) {\n        if (this._shouldIgnoreMouseEvent()) {\n            return;\n        }\n        var targetElement = ev.currentTarget;\n        targetElement.focus();\n    };\n    DropdownInternal.prototype._onItemMouseMove = function (item, ev) {\n        var targetElement = ev.currentTarget;\n        this._gotMouseMove = true;\n        if (!this._isScrollIdle || document.activeElement === targetElement) {\n            return;\n        }\n        targetElement.focus();\n    };\n    DropdownInternal.prototype._shouldIgnoreMouseEvent = function () {\n        return !this._isScrollIdle || !this._gotMouseMove;\n    };\n    /**\n     * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n     */\n    DropdownInternal.prototype._isAltOrMeta = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        return ev.which === KeyCodes.alt || ev.key === 'Meta';\n    };\n    /**\n     * We close the menu on key up only if ALL of the following are true:\n     * - Most recent key down was alt or meta (command)\n     * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n     *   expand/collapse the menu)\n     * - We're not on a Mac (or iOS)\n     *\n     * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n     * closing any open context menus. There is not a similar behavior on Macs.\n     */\n    DropdownInternal.prototype._shouldHandleKeyUp = function (ev) {\n        var keyPressIsAltOrMetaAlone = this._lastKeyDownWasAltOrMeta && this._isAltOrMeta(ev);\n        this._lastKeyDownWasAltOrMeta = false;\n        return !!keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n    };\n    /**\n     * Returns true if dropdown should set to open on focus.\n     * Otherwise, isOpen state should be toggled on click\n     */\n    DropdownInternal.prototype._shouldOpenOnFocus = function () {\n        var hasFocus = this.state.hasFocus;\n        var openOnKeyboardFocus = this.props.openOnKeyboardFocus;\n        return !this._isFocusedByClick && openOnKeyboardFocus === true && !hasFocus;\n    };\n    DropdownInternal.defaultProps = {\n        options: [],\n    };\n    return DropdownInternal;\n}(React.Component));\n//# sourceMappingURL=Dropdown.base.js.map","var _a, _b, _c, _d;\nimport { __assign, __spreadArray } from \"tslib\";\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { RectangleEdge } from '../../Positioning';\nimport { FontWeights, HighContrastSelector, getGlobalClassNames, normalize, HighContrastSelectorWhite, getScreenSelector, ScreenWidthMinMedium, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Dropdown-container',\n    label: 'ms-Dropdown-label',\n    dropdown: 'ms-Dropdown',\n    title: 'ms-Dropdown-title',\n    caretDownWrapper: 'ms-Dropdown-caretDownWrapper',\n    caretDown: 'ms-Dropdown-caretDown',\n    callout: 'ms-Dropdown-callout',\n    panel: 'ms-Dropdown-panel',\n    dropdownItems: 'ms-Dropdown-items',\n    dropdownItem: 'ms-Dropdown-item',\n    dropdownDivider: 'ms-Dropdown-divider',\n    dropdownOptionText: 'ms-Dropdown-optionText',\n    dropdownItemHeader: 'ms-Dropdown-header',\n    titleIsPlaceHolder: 'ms-Dropdown-titleIsPlaceHolder',\n    titleHasError: 'ms-Dropdown-title--hasError',\n};\nvar DROPDOWN_HEIGHT = 32;\nvar DROPDOWN_ITEM_HEIGHT = 36;\nvar highContrastAdjustMixin = (_a = {},\n    _a[\"\".concat(HighContrastSelector, \", \").concat(HighContrastSelectorWhite.replace('@media ', ''))] = __assign({}, getHighContrastNoAdjustStyle()),\n    _a);\nvar highContrastItemAndTitleStateMixin = {\n    selectors: __assign((_b = {}, _b[HighContrastSelector] = {\n        backgroundColor: 'Highlight',\n        borderColor: 'Highlight',\n        color: 'HighlightText',\n    }, _b['.ms-Checkbox-checkbox'] = (_c = {},\n        _c[HighContrastSelector] = {\n            borderColor: 'HighlightText',\n        },\n        _c), _b), highContrastAdjustMixin),\n};\nvar highContrastBorderState = {\n    selectors: (_d = {},\n        _d[HighContrastSelector] = {\n            borderColor: 'Highlight',\n        },\n        _d),\n};\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMinMedium);\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n    var theme = props.theme, hasError = props.hasError, hasLabel = props.hasLabel, className = props.className, isOpen = props.isOpen, disabled = props.disabled, required = props.required, isRenderingPlaceholder = props.isRenderingPlaceholder, panelClassName = props.panelClassName, calloutClassName = props.calloutClassName, calloutRenderEdge = props.calloutRenderEdge;\n    if (!theme) {\n        throw new Error('theme is undefined or null in base Dropdown getStyles function.');\n    }\n    var globalClassnames = getGlobalClassNames(GlobalClassNames, theme);\n    var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n    var rootHoverFocusActiveSelectorNeutralDarkMixin = {\n        color: semanticColors.menuItemTextHovered,\n    };\n    var rootHoverFocusActiveSelectorNeutralPrimaryMixin = {\n        color: semanticColors.menuItemText,\n    };\n    var borderColorError = {\n        borderColor: semanticColors.errorText,\n    };\n    var dropdownItemStyle = [\n        globalClassnames.dropdownItem,\n        {\n            backgroundColor: 'transparent',\n            boxSizing: 'border-box',\n            cursor: 'pointer',\n            display: 'flex',\n            alignItems: 'center',\n            padding: '0 8px',\n            width: '100%',\n            minHeight: DROPDOWN_ITEM_HEIGHT,\n            lineHeight: 20,\n            height: 0,\n            position: 'relative',\n            border: '1px solid transparent',\n            borderRadius: 0,\n            wordWrap: 'break-word',\n            overflowWrap: 'break-word',\n            textAlign: 'left',\n            '.ms-Button-flexContainer': {\n                width: '100%',\n            },\n        },\n    ];\n    var dropdownHeaderStyle = [\n        globalClassnames.dropdownItemHeader,\n        __assign(__assign({}, fonts.medium), { fontWeight: FontWeights.semibold, color: semanticColors.menuHeader, background: 'none', backgroundColor: 'transparent', border: 'none', height: DROPDOWN_ITEM_HEIGHT, lineHeight: DROPDOWN_ITEM_HEIGHT, cursor: 'default', padding: '0 8px', userSelect: 'none', textAlign: 'left', selectors: (_a = {},\n                _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                _a) }),\n    ];\n    var selectedItemBackgroundColor = semanticColors.menuItemBackgroundPressed;\n    var itemSelectors = function (isSelected) {\n        var _a, _b;\n        if (isSelected === void 0) { isSelected = false; }\n        return {\n            selectors: (_a = {\n                    '&:hover': [\n                        {\n                            color: semanticColors.menuItemTextHovered,\n                            backgroundColor: !isSelected ? semanticColors.menuItemBackgroundHovered : selectedItemBackgroundColor,\n                        },\n                        highContrastItemAndTitleStateMixin,\n                    ],\n                    '&.is-multi-select:hover': [\n                        { backgroundColor: !isSelected ? 'transparent' : selectedItemBackgroundColor },\n                        highContrastItemAndTitleStateMixin,\n                    ],\n                    '&:active:hover': [\n                        {\n                            color: semanticColors.menuItemTextHovered,\n                            backgroundColor: !isSelected\n                                ? semanticColors.menuItemBackgroundPressed\n                                : semanticColors.menuItemBackgroundHovered,\n                        },\n                        highContrastItemAndTitleStateMixin,\n                    ]\n                },\n                _a[\".\".concat(IsFocusVisibleClassName, \" &:focus:after\")] = (_b = {\n                        left: 0,\n                        top: 0,\n                        bottom: 0,\n                        right: 0\n                    },\n                    _b[HighContrastSelector] = {\n                        inset: '2px',\n                    },\n                    _b),\n                _a[HighContrastSelector] = {\n                    border: 'none',\n                },\n                _a),\n        };\n    };\n    var dropdownItemSelected = __spreadArray(__spreadArray([], dropdownItemStyle, true), [\n        {\n            backgroundColor: selectedItemBackgroundColor,\n            color: semanticColors.menuItemTextHovered,\n        },\n        itemSelectors(true),\n        highContrastItemAndTitleStateMixin,\n    ], false);\n    var dropdownItemDisabled = __spreadArray(__spreadArray([], dropdownItemStyle, true), [\n        {\n            color: semanticColors.disabledText,\n            cursor: 'default',\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'GrayText',\n                    border: 'none',\n                },\n                _b),\n        },\n    ], false);\n    var titleOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n        ? \"\".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0 0\")\n        : \"0 0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2);\n    var calloutOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n        ? \"0 0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2)\n        : \"\".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0 0\");\n    return {\n        root: [globalClassnames.root, className],\n        label: globalClassnames.label,\n        dropdown: [\n            globalClassnames.dropdown,\n            normalize,\n            fonts.medium,\n            {\n                color: semanticColors.menuItemText,\n                borderColor: semanticColors.focusBorder,\n                position: 'relative',\n                outline: 0,\n                userSelect: 'none',\n                selectors: (_c = {},\n                    _c['&:hover .' + globalClassnames.title] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n                        { borderColor: isOpen ? palette.neutralSecondary : palette.neutralPrimary },\n                        highContrastBorderState,\n                    ],\n                    _c['&:focus .' + globalClassnames.title] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n                        { selectors: (_d = {}, _d[HighContrastSelector] = { color: 'Highlight' }, _d) },\n                    ],\n                    _c['&:focus:after'] = [\n                        {\n                            pointerEvents: 'none',\n                            content: \"''\",\n                            position: 'absolute',\n                            boxSizing: 'border-box',\n                            top: '0px',\n                            left: '0px',\n                            width: '100%',\n                            height: '100%',\n                            // see https://github.com/microsoft/fluentui/pull/9182 for semantic color disc\n                            border: !disabled ? \"2px solid \".concat(palette.themePrimary) : 'none',\n                            borderRadius: '2px',\n                            selectors: (_e = {},\n                                _e[HighContrastSelector] = {\n                                    color: 'Highlight',\n                                },\n                                _e),\n                        },\n                    ],\n                    _c['&:active .' + globalClassnames.title] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n                        { borderColor: palette.themePrimary },\n                        highContrastBorderState,\n                    ],\n                    _c['&:hover .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:focus .' + globalClassnames.caretDown] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                        { selectors: (_f = {}, _f[HighContrastSelector] = { color: 'Highlight' }, _f) },\n                    ],\n                    _c['&:active .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:hover .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:focus .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:active .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:hover .' + globalClassnames.titleHasError] = borderColorError,\n                    _c['&:active .' + globalClassnames.titleHasError] = borderColorError,\n                    _c),\n            },\n            isOpen && 'is-open',\n            disabled && 'is-disabled',\n            required && 'is-required',\n            required &&\n                !hasLabel && {\n                selectors: (_g = {\n                        ':before': {\n                            content: \"'*'\",\n                            color: semanticColors.errorText,\n                            position: 'absolute',\n                            top: -5,\n                            right: -10,\n                        }\n                    },\n                    _g[HighContrastSelector] = {\n                        selectors: {\n                            ':after': {\n                                right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n                            },\n                        },\n                    },\n                    _g),\n            },\n        ],\n        title: [\n            globalClassnames.title,\n            normalize,\n            {\n                backgroundColor: semanticColors.inputBackground,\n                borderWidth: 1,\n                borderStyle: 'solid',\n                borderColor: semanticColors.inputBorder,\n                borderRadius: isOpen ? titleOpenBorderRadius : effects.roundedCorner2,\n                cursor: 'pointer',\n                display: 'block',\n                height: DROPDOWN_HEIGHT,\n                lineHeight: DROPDOWN_HEIGHT - 2,\n                padding: \"0 28px 0 8px\",\n                position: 'relative',\n                overflow: 'hidden',\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n            },\n            isRenderingPlaceholder && [globalClassnames.titleIsPlaceHolder, { color: semanticColors.inputPlaceholderText }],\n            hasError && [globalClassnames.titleHasError, borderColorError],\n            disabled && {\n                backgroundColor: semanticColors.disabledBackground,\n                border: 'none',\n                color: semanticColors.disabledText,\n                cursor: 'default',\n                selectors: (_h = {},\n                    _h[HighContrastSelector] = __assign({ border: '1px solid GrayText', color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n                    _h),\n            },\n        ],\n        caretDownWrapper: [\n            globalClassnames.caretDownWrapper,\n            {\n                height: DROPDOWN_HEIGHT,\n                lineHeight: DROPDOWN_HEIGHT - 2,\n                paddingTop: 1,\n                position: 'absolute',\n                right: 8,\n                top: 0,\n            },\n            !disabled && {\n                cursor: 'pointer',\n            },\n        ],\n        caretDown: [\n            globalClassnames.caretDown,\n            { color: palette.neutralSecondary, fontSize: fonts.small.fontSize, pointerEvents: 'none' },\n            disabled && {\n                color: semanticColors.disabledText,\n                selectors: (_j = {},\n                    _j[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                    _j),\n            },\n        ],\n        errorMessage: __assign(__assign({ color: semanticColors.errorText }, theme.fonts.small), { paddingTop: 5 }),\n        callout: [\n            globalClassnames.callout,\n            {\n                boxShadow: effects.elevation8,\n                borderRadius: calloutOpenBorderRadius,\n                selectors: (_k = {},\n                    _k['.ms-Callout-main'] = { borderRadius: calloutOpenBorderRadius },\n                    _k),\n            },\n            calloutClassName,\n        ],\n        dropdownItemsWrapper: { selectors: { '&:focus': { outline: 0 } } },\n        dropdownItems: [globalClassnames.dropdownItems, { display: 'block' }],\n        dropdownItem: __spreadArray(__spreadArray([], dropdownItemStyle, true), [itemSelectors()], false),\n        dropdownItemSelected: dropdownItemSelected,\n        dropdownItemDisabled: dropdownItemDisabled,\n        dropdownItemSelectedAndDisabled: [dropdownItemSelected, dropdownItemDisabled, { backgroundColor: 'transparent' }],\n        dropdownItemHidden: __spreadArray(__spreadArray([], dropdownItemStyle, true), [{ display: 'none' }], false),\n        dropdownDivider: [globalClassnames.dropdownDivider, { height: 1, backgroundColor: semanticColors.bodyDivider }],\n        dropdownDividerHidden: [globalClassnames.dropdownDivider, { display: 'none' }],\n        dropdownOptionText: [\n            globalClassnames.dropdownOptionText,\n            {\n                overflow: 'hidden',\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n                minWidth: 0,\n                maxWidth: '100%',\n                wordWrap: 'break-word',\n                overflowWrap: 'break-word',\n                margin: '1px',\n            },\n        ],\n        dropdownItemHeader: dropdownHeaderStyle,\n        dropdownItemHeaderHidden: __spreadArray(__spreadArray([], dropdownHeaderStyle, true), [{ display: 'none' }], false),\n        subComponentStyles: {\n            label: { root: { display: 'inline-block' } },\n            multiSelectItem: {\n                root: {\n                    padding: 0,\n                },\n                label: {\n                    alignSelf: 'stretch',\n                    padding: '0 8px',\n                    width: '100%',\n                },\n                input: {\n                    selectors: (_l = {},\n                        _l[\".\".concat(IsFocusVisibleClassName, \" &:focus + label::before\")] = {\n                            outlineOffset: '0px',\n                        },\n                        _l),\n                },\n            },\n            panel: {\n                root: [panelClassName],\n                main: {\n                    selectors: (_m = {},\n                        // In case of extra small screen sizes\n                        _m[MinimumScreenSelector] = {\n                            // panelWidth xs\n                            width: 272,\n                        },\n                        _m),\n                },\n                contentInner: { padding: '0 0 20px' },\n            },\n        },\n    };\n};\n//# sourceMappingURL=Dropdown.styles.js.map","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to RAF. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\nexport var safeRequestAnimationFrame = function (component) {\n    var activeTimeouts;\n    return function (cb) {\n        if (!activeTimeouts) {\n            activeTimeouts = new Set();\n            extendComponent(component, {\n                componentWillUnmount: function () {\n                    activeTimeouts.forEach(function (id) { return cancelAnimationFrame(id); });\n                },\n            });\n        }\n        var timeoutId = requestAnimationFrame(function () {\n            activeTimeouts.delete(timeoutId);\n            cb();\n        });\n        activeTimeouts.add(timeoutId);\n    };\n};\n//# sourceMappingURL=safeRequestAnimationFrame.js.map","import { styled } from '../../Utilities';\nimport { DropdownBase } from './Dropdown.base';\nimport { getStyles } from './Dropdown.styles';\nexport var Dropdown = styled(DropdownBase, getStyles, undefined, {\n    scope: 'Dropdown',\n});\nDropdown.displayName = 'Dropdown';\n//# sourceMappingURL=Dropdown.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../Button/BaseButton.styles';\nexport var getStyles = memoizeFunction(function (theme, className, customStyles) {\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var customButtonStyles = concatStyleSets(baseButtonStyles, customStyles);\n    return __assign(__assign({}, customButtonStyles), { root: [baseButtonStyles.root, className, theme.fonts.medium, customStyles && customStyles.root] });\n});\n//# sourceMappingURL=FacepileButton.styles.js.map","import { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../../Button';\nimport { customizable, nullRender } from '../../Utilities';\nimport { getStyles } from './FacepileButton.styles';\nvar FacepileButton = /** @class */ (function (_super) {\n    __extends(FacepileButton, _super);\n    function FacepileButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    FacepileButton.prototype.render = function () {\n        var _a = this.props, className = _a.className, styles = _a.styles, rest = __rest(_a, [\"className\", \"styles\"]);\n        var customStyles = getStyles(this.props.theme, className, styles);\n        return (React.createElement(BaseButton, __assign({}, rest, { variantClassName: \"ms-Button--facepile\", styles: customStyles, onRenderDescription: nullRender })));\n    };\n    FacepileButton = __decorate([\n        customizable('FacepileButton', ['theme', 'styles'], true)\n    ], FacepileButton);\n    return FacepileButton;\n}(React.Component));\nexport { FacepileButton };\n//# sourceMappingURL=FacepileButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, classNamesFunction, getId, getNativeProps, initializeComponentRef } from '../../Utilities';\nimport { OverflowButtonType } from './Facepile.types';\nimport { FacepileButton } from './FacepileButton';\nimport { Icon } from '../../Icon';\nimport { Persona } from '../../Persona';\nimport { PersonaCoin, PersonaSize, PersonaInitialsColor } from '../../PersonaCoin';\nvar getClassNames = classNamesFunction();\n/**\n * FacePile with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Component-Styling)\n */\nvar FacepileBase = /** @class */ (function (_super) {\n    __extends(FacepileBase, _super);\n    function FacepileBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._classNames = getClassNames(_this.props.styles, {\n            theme: _this.props.theme,\n            className: _this.props.className,\n        });\n        _this._getPersonaControl = function (persona) {\n            var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;\n            var personaStyles = {\n                details: {\n                    flex: '1 0 auto',\n                },\n            };\n            return (React.createElement(Persona, __assign({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null), { styles: personaStyles })));\n        };\n        _this._getPersonaCoinControl = function (persona) {\n            var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;\n            return (React.createElement(PersonaCoin, __assign({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null))));\n        };\n        initializeComponentRef(_this);\n        _this._ariaDescriptionId = getId();\n        return _this;\n    }\n    FacepileBase.prototype.render = function () {\n        var overflowButtonProps = this.props.overflowButtonProps;\n        var _a = this.props, chevronButtonProps = _a.chevronButtonProps, // eslint-disable-line deprecation/deprecation\n        maxDisplayablePersonas = _a.maxDisplayablePersonas, personas = _a.personas, overflowPersonas = _a.overflowPersonas, showAddButton = _a.showAddButton, ariaLabel = _a.ariaLabel, _b = _a.showTooltip, showTooltip = _b === void 0 ? true : _b;\n        var _classNames = this._classNames;\n        // Add a check to make sure maxDisplayalePersonas is defined to cover the edge case of it being 0.\n        var numPersonasToShow = typeof maxDisplayablePersonas === 'number' ? Math.min(personas.length, maxDisplayablePersonas) : personas.length;\n        // Added for deprecating chevronButtonProps.  Can remove after v1.0\n        if (chevronButtonProps && !overflowButtonProps) {\n            overflowButtonProps = chevronButtonProps;\n        }\n        var hasOverflowPersonas = overflowPersonas && overflowPersonas.length > 0;\n        var personasPrimary = hasOverflowPersonas ? personas : personas.slice(0, numPersonasToShow);\n        var personasOverflow = (hasOverflowPersonas ? overflowPersonas : personas.slice(numPersonasToShow)) || [];\n        return (React.createElement(\"div\", { className: _classNames.root },\n            this.onRenderAriaDescription(),\n            React.createElement(\"div\", { className: _classNames.itemContainer },\n                showAddButton ? this._getAddNewElement() : null,\n                React.createElement(\"ul\", { className: _classNames.members, \"aria-label\": ariaLabel }, this._onRenderVisiblePersonas(personasPrimary, personasOverflow.length === 0 && personas.length === 1, showTooltip)),\n                overflowButtonProps ? this._getOverflowElement(personasOverflow) : null)));\n    };\n    FacepileBase.prototype.onRenderAriaDescription = function () {\n        var ariaDescription = this.props.ariaDescription;\n        var _classNames = this._classNames;\n        // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n        // otherwise it will be assigned to descriptionSpan.\n        return (ariaDescription && (React.createElement(\"span\", { className: _classNames.screenReaderOnly, id: this._ariaDescriptionId }, ariaDescription)));\n    };\n    FacepileBase.prototype._onRenderVisiblePersonas = function (personas, singlePersona, showTooltip) {\n        var _this = this;\n        var _a = this.props, _b = _a.onRenderPersona, onRenderPersona = _b === void 0 ? this._getPersonaControl : _b, _c = _a.onRenderPersonaCoin, onRenderPersonaCoin = _c === void 0 ? this._getPersonaCoinControl : _c, onRenderPersonaWrapper = _a.onRenderPersonaWrapper;\n        return personas.map(function (persona, index) {\n            var personaControl = singlePersona\n                ? onRenderPersona(persona, _this._getPersonaControl)\n                : onRenderPersonaCoin(persona, _this._getPersonaCoinControl);\n            var defaultPersonaRender = persona.onClick\n                ? function () { return _this._getElementWithOnClickEvent(personaControl, persona, showTooltip, index); }\n                : function () { return _this._getElementWithoutOnClickEvent(personaControl, persona, showTooltip, index); };\n            return (React.createElement(\"li\", { key: \"\".concat(singlePersona ? 'persona' : 'personaCoin', \"-\").concat(index), className: _this._classNames.member }, onRenderPersonaWrapper ? onRenderPersonaWrapper(persona, defaultPersonaRender) : defaultPersonaRender()));\n        });\n    };\n    FacepileBase.prototype._getElementWithOnClickEvent = function (personaControl, persona, showTooltip, index) {\n        var keytipProps = persona.keytipProps;\n        return (React.createElement(FacepileButton, __assign({}, getNativeProps(persona, buttonProperties), this._getElementProps(persona, showTooltip, index), { keytipProps: keytipProps, \n            // eslint-disable-next-line react/jsx-no-bind\n            onClick: this._onPersonaClick.bind(this, persona) }), personaControl));\n    };\n    FacepileBase.prototype._getElementWithoutOnClickEvent = function (personaControl, persona, showTooltip, index) {\n        return (React.createElement(\"div\", __assign({}, getNativeProps(persona, buttonProperties), this._getElementProps(persona, showTooltip, index)), personaControl));\n    };\n    FacepileBase.prototype._getElementProps = function (persona, showTooltip, index) {\n        var _classNames = this._classNames;\n        return {\n            key: (persona.imageUrl ? 'i' : '') + index,\n            'data-is-focusable': true,\n            className: _classNames.itemButton,\n            title: showTooltip ? persona.personaName : undefined,\n            onMouseMove: this._onPersonaMouseMove.bind(this, persona),\n            onMouseOut: this._onPersonaMouseOut.bind(this, persona),\n        };\n    };\n    FacepileBase.prototype._getOverflowElement = function (personasOverflow) {\n        switch (this.props.overflowButtonType) {\n            case OverflowButtonType.descriptive:\n                return this._getDescriptiveOverflowElement(personasOverflow);\n            case OverflowButtonType.downArrow:\n                return this._getIconElement('ChevronDown');\n            case OverflowButtonType.more:\n                return this._getIconElement('More');\n            default:\n                return null;\n        }\n    };\n    FacepileBase.prototype._getDescriptiveOverflowElement = function (personasOverflow) {\n        var personaSize = this.props.personaSize;\n        if (!personasOverflow || personasOverflow.length < 1) {\n            return null;\n        }\n        var personaNames = personasOverflow.map(function (p) { return p.personaName; }).join(', ');\n        var overflowButtonProps = __assign({ title: personaNames }, this.props.overflowButtonProps);\n        var numPersonasNotPictured = Math.max(personasOverflow.length, 0);\n        var _classNames = this._classNames;\n        return (React.createElement(FacepileButton, __assign({}, overflowButtonProps, { ariaDescription: overflowButtonProps.title, className: _classNames.descriptiveOverflowButton }),\n            React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitialsNotPictured(numPersonasNotPictured), initialsColor: PersonaInitialsColor.transparent })));\n    };\n    FacepileBase.prototype._getIconElement = function (icon) {\n        var _a = this.props, overflowButtonProps = _a.overflowButtonProps, personaSize = _a.personaSize;\n        var overflowInitialsIcon = true;\n        var _classNames = this._classNames;\n        return (React.createElement(FacepileButton, __assign({}, overflowButtonProps, { className: _classNames.overflowButton }),\n            React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitials(icon, overflowInitialsIcon), initialsColor: PersonaInitialsColor.transparent })));\n    };\n    FacepileBase.prototype._getAddNewElement = function () {\n        var _a = this.props, addButtonProps = _a.addButtonProps, personaSize = _a.personaSize;\n        var _classNames = this._classNames;\n        return (React.createElement(FacepileButton, __assign({}, addButtonProps, { className: _classNames.addButton }),\n            React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitials('AddFriend') })));\n    };\n    FacepileBase.prototype._onPersonaClick = function (persona, ev) {\n        persona.onClick(ev, persona);\n        ev.preventDefault();\n        ev.stopPropagation();\n    };\n    FacepileBase.prototype._onPersonaMouseMove = function (persona, ev) {\n        if (persona.onMouseMove) {\n            persona.onMouseMove(ev, persona);\n        }\n    };\n    FacepileBase.prototype._onPersonaMouseOut = function (persona, ev) {\n        if (persona.onMouseOut) {\n            persona.onMouseOut(ev, persona);\n        }\n    };\n    FacepileBase.prototype._renderInitials = function (iconName, overflowButton) {\n        var _classNames = this._classNames;\n        return function () {\n            return React.createElement(Icon, { iconName: iconName, className: overflowButton ? _classNames.overflowInitialsIcon : '' });\n        };\n    };\n    FacepileBase.prototype._renderInitialsNotPictured = function (numPersonasNotPictured) {\n        var _classNames = this._classNames;\n        return function () {\n            return (React.createElement(\"span\", { className: _classNames.overflowInitialsIcon }, numPersonasNotPictured < 100 ? '+' + numPersonasNotPictured : '99+'));\n        };\n    };\n    FacepileBase.defaultProps = {\n        maxDisplayablePersonas: 5,\n        personas: [],\n        overflowPersonas: [],\n        personaSize: PersonaSize.size32,\n    };\n    return FacepileBase;\n}(React.Component));\nexport { FacepileBase };\n//# sourceMappingURL=Facepile.base.js.map","import { hiddenContentStyle, HighContrastSelector, getFocusStyle, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Facepile',\n    addButton: 'ms-Facepile-addButton ms-Facepile-itemButton',\n    descriptiveOverflowButton: 'ms-Facepile-descriptiveOverflowButton ms-Facepile-itemButton',\n    itemButton: 'ms-Facepile-itemButton ms-Facepile-person',\n    itemContainer: 'ms-Facepile-itemContainer',\n    members: 'ms-Facepile-members',\n    member: 'ms-Facepile-member',\n    overflowButton: 'ms-Facepile-overflowButton ms-Facepile-itemButton',\n};\nexport var styles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, _b = props.spacingAroundItemButton, spacingAroundItemButton = _b === void 0 ? 2 : _b;\n    var palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var ItemButtonStyles = {\n        textAlign: 'center',\n        padding: 0,\n        borderRadius: '50%',\n        verticalAlign: 'top',\n        display: 'inline',\n        backgroundColor: 'transparent',\n        border: 'none',\n        selectors: {\n            '&::-moz-focus-inner': {\n                padding: 0,\n                border: 0,\n            },\n        },\n    };\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                width: 'auto',\n            },\n            className,\n        ],\n        addButton: [\n            classNames.addButton,\n            getFocusStyle(theme, { inset: -1 }),\n            ItemButtonStyles,\n            {\n                fontSize: fonts.medium.fontSize,\n                color: palette.white,\n                backgroundColor: palette.themePrimary,\n                marginRight: spacingAroundItemButton * 2 + 'px',\n                selectors: {\n                    '&:hover': {\n                        backgroundColor: palette.themeDark,\n                    },\n                    '&:focus': {\n                        backgroundColor: palette.themeDark,\n                    },\n                    '&:active': {\n                        backgroundColor: palette.themeDarker,\n                    },\n                    '&:disabled': {\n                        backgroundColor: palette.neutralTertiaryAlt,\n                    },\n                },\n            },\n        ],\n        descriptiveOverflowButton: [\n            classNames.descriptiveOverflowButton,\n            getFocusStyle(theme, { inset: -1 }),\n            ItemButtonStyles,\n            {\n                fontSize: fonts.small.fontSize,\n                color: palette.neutralSecondary,\n                backgroundColor: palette.neutralLighter,\n                marginLeft: \"\".concat(spacingAroundItemButton * 2, \"px\"),\n            },\n        ],\n        itemButton: [classNames.itemButton, ItemButtonStyles],\n        itemContainer: [\n            classNames.itemContainer,\n            {\n                display: 'flex',\n            },\n        ],\n        members: [\n            classNames.members,\n            {\n                display: 'flex',\n                overflow: 'hidden',\n                listStyleType: 'none',\n                padding: 0,\n                margin: \"-\".concat(spacingAroundItemButton, \"px\"),\n            },\n        ],\n        member: [\n            classNames.member,\n            {\n                display: 'inline-flex',\n                flex: '0 0 auto',\n                margin: \"\".concat(spacingAroundItemButton, \"px\"),\n            },\n        ],\n        overflowButton: [\n            classNames.overflowButton,\n            getFocusStyle(theme, { inset: -1 }),\n            ItemButtonStyles,\n            {\n                fontSize: fonts.medium.fontSize,\n                color: palette.neutralSecondary,\n                backgroundColor: palette.neutralLighter,\n                marginLeft: \"\".concat(spacingAroundItemButton * 2, \"px\"),\n            },\n        ],\n        overflowInitialsIcon: [\n            {\n                color: palette.neutralPrimary,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        color: 'WindowText',\n                    },\n                    _a),\n            },\n        ],\n        screenReaderOnly: hiddenContentStyle,\n    };\n};\n//# sourceMappingURL=Facepile.styles.js.map","import { styled } from '../../Utilities';\nimport { FacepileBase } from './Facepile.base';\nimport { styles } from './Facepile.styles';\n/**\n * The Facepile shows a list of faces or initials in a horizontal lockup. Each circle represents a person.\n */\nexport var Facepile = styled(FacepileBase, styles, undefined, {\n    scope: 'Facepile',\n});\n//# sourceMappingURL=Facepile.js.map","/**\n * {@docCategory Facepile}\n */\nexport var OverflowButtonType;\n(function (OverflowButtonType) {\n    /** No overflow */\n    OverflowButtonType[OverflowButtonType[\"none\"] = 0] = \"none\";\n    /** +1 overflow icon */\n    OverflowButtonType[OverflowButtonType[\"descriptive\"] = 1] = \"descriptive\";\n    /** More overflow icon */\n    OverflowButtonType[OverflowButtonType[\"more\"] = 2] = \"more\";\n    /** Chevron overflow icon */\n    OverflowButtonType[OverflowButtonType[\"downArrow\"] = 3] = \"downArrow\";\n})(OverflowButtonType || (OverflowButtonType = {}));\n//# sourceMappingURL=Facepile.types.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n *   every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n *   handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n    var callbackRef = React.useRef(function () {\n        throw new Error('Cannot call an event handler while rendering');\n    });\n    useIsomorphicLayoutEffect(function () {\n        callbackRef.current = fn;\n    }, [fn]);\n    // useConst rather than useCallback to ensure the reference is always stable\n    // (useCallback's deps list is an optimization, not a guarantee)\n    return useConst(function () { return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var callback = callbackRef.current;\n        return callback.apply(void 0, args);\n    }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, focusAsync, getPropsWithDefaults, modalize, on, } from '../../Utilities';\nimport { useId, useConst, useMergedRefs, useEventCallback, usePrevious, useUnmount } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nvar COMPONENT_NAME = 'FocusTrapZone';\nvar DEFAULT_PROPS = {\n    disabled: false,\n    disableFirstFocus: false,\n    forceFocusInsideTrap: true,\n    isClickableOutsideFocusTrap: false,\n};\nvar useComponentRef = function (componentRef, previouslyFocusedElement, focusFTZ) {\n    React.useImperativeHandle(componentRef, function () { return ({\n        get previouslyFocusedElement() {\n            return previouslyFocusedElement;\n        },\n        focus: focusFTZ,\n    }); }, [focusFTZ, previouslyFocusedElement]);\n};\nexport var FocusTrapZone = React.forwardRef(function (propsWithoutDefaults, ref) {\n    var _a;\n    var root = React.useRef(null);\n    var firstBumper = React.useRef(null);\n    var lastBumper = React.useRef(null);\n    var mergedRootRef = useMergedRefs(root, ref);\n    var doc = useDocument();\n    var isFirstRender = (_a = usePrevious(false)) !== null && _a !== void 0 ? _a : true;\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var internalState = useConst({\n        hasFocus: false,\n        focusStackId: useId('ftz-', props.id),\n    });\n    var children = props.children, componentRef = props.componentRef, disabled = props.disabled, disableFirstFocus = props.disableFirstFocus, forceFocusInsideTrap = props.forceFocusInsideTrap, focusPreviouslyFocusedInnerElement = props.focusPreviouslyFocusedInnerElement, \n    // eslint-disable-next-line deprecation/deprecation\n    firstFocusableSelector = props.firstFocusableSelector, firstFocusableTarget = props.firstFocusableTarget, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.disableRestoreFocus, \n    // eslint-disable-next-line deprecation/deprecation\n    disableRestoreFocus = _b === void 0 ? props.ignoreExternalFocusing : _b, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, enableAriaHiddenSiblings = props.enableAriaHiddenSiblings;\n    var bumperProps = {\n        'aria-hidden': true,\n        style: {\n            pointerEvents: 'none',\n            position: 'fixed', // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them\n        },\n        tabIndex: disabled ? -1 : 0,\n        'data-is-visible': true,\n        'data-is-focus-trap-zone-bumper': true,\n    };\n    var focusElementAsync = React.useCallback(function (element) {\n        if (element !== firstBumper.current && element !== lastBumper.current) {\n            focusAsync(element);\n        }\n    }, []);\n    /**\n     * Callback to force focus into FTZ (named to avoid overlap with global focus() callback).\n     * useEventCallback always returns the same callback reference but updates the implementation\n     * every render to avoid stale captured values.\n     */\n    var focusFTZ = useEventCallback(function () {\n        if (!root.current) {\n            return; // not done mounting\n        }\n        var previouslyFocusedElementInTrapZone = internalState.previouslyFocusedElementInTrapZone;\n        if (focusPreviouslyFocusedInnerElement &&\n            previouslyFocusedElementInTrapZone &&\n            elementContains(root.current, previouslyFocusedElementInTrapZone)) {\n            // focus on the last item that had focus in the zone before we left the zone\n            focusElementAsync(previouslyFocusedElementInTrapZone);\n            return;\n        }\n        var firstFocusableChild = null;\n        if (typeof firstFocusableTarget === 'string') {\n            firstFocusableChild = root.current.querySelector(firstFocusableTarget);\n        }\n        else if (firstFocusableTarget) {\n            firstFocusableChild = firstFocusableTarget(root.current);\n        }\n        else if (firstFocusableSelector) {\n            var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector();\n            firstFocusableChild = root.current.querySelector('.' + focusSelector);\n        }\n        // Fall back to first element if query selector did not match any elements.\n        if (!firstFocusableChild) {\n            firstFocusableChild = getNextElement(root.current, root.current.firstChild, false, false, false, true);\n        }\n        if (firstFocusableChild) {\n            focusElementAsync(firstFocusableChild);\n        }\n    });\n    /** Used in root div focus/blur handlers */\n    var focusBumper = function (isFirstBumper) {\n        if (disabled || !root.current) {\n            return;\n        }\n        var nextFocusable = isFirstBumper === internalState.hasFocus\n            ? getLastTabbable(root.current, lastBumper.current, true, false)\n            : getFirstTabbable(root.current, firstBumper.current, true, false);\n        if (nextFocusable) {\n            if (nextFocusable === firstBumper.current || nextFocusable === lastBumper.current) {\n                // This can happen when FTZ contains no tabbable elements.\n                // focusFTZ() will take care of finding a focusable element in FTZ.\n                focusFTZ();\n            }\n            else {\n                nextFocusable.focus();\n            }\n        }\n    };\n    /** Root div blur handler (doesn't need useCallback since it's for a native element) */\n    var onRootBlurCapture = function (ev) {\n        var _a;\n        (_a = props.onBlurCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n        var relatedTarget = ev.relatedTarget;\n        if (ev.relatedTarget === null) {\n            // In IE11, due to lack of support, event.relatedTarget is always\n            // null making every onBlur call to be \"outside\" of the root\n            // even when it's not. Using document.activeElement is another way\n            // for us to be able to get what the relatedTarget without relying\n            // on the event\n            relatedTarget = doc.activeElement;\n        }\n        if (!elementContains(root.current, relatedTarget)) {\n            internalState.hasFocus = false;\n        }\n    };\n    /** Root div focus handler (doesn't need useCallback since it's for a native element) */\n    var onRootFocusCapture = function (ev) {\n        var _a;\n        (_a = props.onFocusCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n        if (ev.target === firstBumper.current) {\n            focusBumper(true);\n        }\n        else if (ev.target === lastBumper.current) {\n            focusBumper(false);\n        }\n        internalState.hasFocus = true;\n        if (ev.target !== ev.currentTarget && !(ev.target === firstBumper.current || ev.target === lastBumper.current)) {\n            // every time focus changes within the trap zone, remember the focused element so that\n            // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n            internalState.previouslyFocusedElementInTrapZone = ev.target;\n        }\n    };\n    /** Called to restore focus on unmount or props change. (useEventCallback ensures latest prop values are used.) */\n    var returnFocusToInitiator = useEventCallback(function (elementToFocusOnDismiss) {\n        FocusTrapZone.focusStack = FocusTrapZone.focusStack.filter(function (value) { return internalState.focusStackId !== value; });\n        if (!doc) {\n            return;\n        }\n        var activeElement = doc.activeElement;\n        if (!disableRestoreFocus &&\n            typeof (elementToFocusOnDismiss === null || elementToFocusOnDismiss === void 0 ? void 0 : elementToFocusOnDismiss.focus) === 'function' &&\n            // only restore focus if the current focused element is within the FTZ, or if nothing is focused\n            (elementContains(root.current, activeElement) || activeElement === doc.body)) {\n            focusElementAsync(elementToFocusOnDismiss);\n        }\n    });\n    /** Called in window event handlers. (useEventCallback ensures latest prop values are used.) */\n    var forceFocusOrClickInTrap = useEventCallback(function (ev) {\n        // be sure to use the latest values here\n        if (disabled) {\n            return;\n        }\n        if (internalState.focusStackId === FocusTrapZone.focusStack.slice(-1)[0]) {\n            var targetElement = ev.target;\n            if (targetElement && !elementContains(root.current, targetElement)) {\n                if (doc && doc.activeElement === doc.body) {\n                    setTimeout(function () {\n                        if (doc && doc.activeElement === doc.body) {\n                            focusFTZ();\n                            internalState.hasFocus = true; // set focus here since we stop event propagation\n                        }\n                    }, 0);\n                }\n                else {\n                    focusFTZ();\n                    internalState.hasFocus = true; // set focus here since we stop event propagation\n                }\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        }\n    });\n    // Update window event handlers when relevant props change\n    React.useEffect(function () {\n        var disposables = [];\n        if (forceFocusInsideTrap) {\n            disposables.push(on(window, 'focus', forceFocusOrClickInTrap, true));\n        }\n        if (!isClickableOutsideFocusTrap) {\n            disposables.push(on(window, 'click', forceFocusOrClickInTrap, true));\n        }\n        return function () {\n            disposables.forEach(function (dispose) { return dispose(); });\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n    }, [forceFocusInsideTrap, isClickableOutsideFocusTrap]);\n    // On prop change or first render, focus the FTZ and update focusStack if appropriate\n    React.useEffect(function () {\n        // Do nothing if disabled, or if it's a re-render and forceFocusInsideTrap is false\n        // (to match existing behavior, the FTZ handles first focus even if forceFocusInsideTrap\n        // is false, though it's debatable whether it should do this)\n        if (disabled || (!isFirstRender && !forceFocusInsideTrap) || !root.current) {\n            return;\n        }\n        // Transition from forceFocusInsideTrap / FTZ disabled to enabled (or initial mount)\n        FocusTrapZone.focusStack.push(internalState.focusStackId);\n        var elementToFocusOnDismiss = props.elementToFocusOnDismiss || doc.activeElement;\n        if (!disableFirstFocus && !elementContains(root.current, elementToFocusOnDismiss)) {\n            focusFTZ();\n        }\n        // To match existing behavior, always return focus on cleanup (even if we didn't handle\n        // initial focus), but it's debatable whether that's correct\n        return function () { return returnFocusToInitiator(elementToFocusOnDismiss); };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n    }, [forceFocusInsideTrap, disabled]);\n    // Handle modalization separately from first focus\n    React.useEffect(function () {\n        if (!disabled && enableAriaHiddenSiblings) {\n            var unmodalize = modalize(root.current);\n            return unmodalize;\n        }\n    }, [disabled, enableAriaHiddenSiblings, root]);\n    // Cleanup lifecyle method for internalState.\n    useUnmount(function () {\n        // Dispose of element references so the DOM Nodes can be garbage-collected\n        delete internalState.previouslyFocusedElementInTrapZone;\n    });\n    useComponentRef(componentRef, internalState.previouslyFocusedElementInTrapZone, focusFTZ);\n    return (React.createElement(\"div\", __assign({ \"aria-labelledby\": props.ariaLabelledBy }, getNativeProps(props, divProperties), { ref: mergedRootRef, onFocusCapture: onRootFocusCapture, onBlurCapture: onRootBlurCapture }),\n        React.createElement(\"div\", __assign({}, bumperProps, { ref: firstBumper })),\n        children,\n        React.createElement(\"div\", __assign({}, bumperProps, { ref: lastBumper }))));\n});\nFocusTrapZone.displayName = COMPONENT_NAME;\nFocusTrapZone.focusStack = [];\n//# sourceMappingURL=FocusTrapZone.js.map","import { getGlobalClassNames, getFocusStyle, AnimationVariables, FontWeights, IconFontSizes } from '../../Styling';\nimport { getRTL, IsFocusVisibleClassName } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from '../DetailsList/DetailsRow.styles';\nimport { CHECK_CELL_WIDTH } from '../DetailsList/DetailsRowCheck.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as EXPAND_BUTTON_WIDTH } from './GroupSpacer';\nvar GlobalClassNames = {\n    root: 'ms-GroupHeader',\n    compact: 'ms-GroupHeader--compact',\n    check: 'ms-GroupHeader-check',\n    dropIcon: 'ms-GroupHeader-dropIcon',\n    expand: 'ms-GroupHeader-expand',\n    isCollapsed: 'is-collapsed',\n    title: 'ms-GroupHeader-title',\n    isSelected: 'is-selected',\n    iconTag: 'ms-Icon--Tag',\n    group: 'ms-GroupedList-group',\n    isDropping: 'is-dropping',\n};\nvar beziers = {\n    easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n    easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n    easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n};\nvar DEFAULT_GROUP_HEADER_HEIGHT = 48;\nvar COMPACT_GROUP_HEADER_HEIGHT = 40;\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e;\n    var theme = props.theme, className = props.className, selected = props.selected, isCollapsed = props.isCollapsed, compact = props.compact;\n    // padding from the source to align GroupHeader title with DetailsRow's first cell.\n    var cellLeftPadding = DEFAULT_CELL_STYLE_PROPS.cellLeftPadding;\n    var finalRowHeight = compact ? COMPACT_GROUP_HEADER_HEIGHT : DEFAULT_GROUP_HEADER_HEIGHT;\n    var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var checkExpandResetStyles = [\n        getFocusStyle(theme),\n        {\n            cursor: 'default',\n            background: 'none',\n            backgroundColor: 'transparent',\n            border: 'none',\n            padding: 0, // cancel default <button> padding\n        },\n    ];\n    return {\n        root: [\n            classNames.root,\n            getFocusStyle(theme),\n            theme.fonts.medium,\n            {\n                // keep the border for height but color it so it's invisible.\n                borderBottom: \"1px solid \".concat(semanticColors.listBackground),\n                cursor: 'default',\n                userSelect: 'none',\n                selectors: (_a = {\n                        ':hover': {\n                            background: semanticColors.listItemBackgroundHovered,\n                            color: semanticColors.actionLinkHovered,\n                        }\n                    },\n                    _a[\"&:hover .\".concat(classNames.check)] = {\n                        opacity: 1,\n                    },\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus .\").concat(classNames.check)] = {\n                        opacity: 1,\n                    },\n                    _a[\":global(.\".concat(classNames.group, \".\").concat(classNames.isDropping, \")\")] = {\n                        selectors: (_b = {},\n                            _b[\"& > .\".concat(classNames.root, \" .\").concat(classNames.dropIcon)] = {\n                                transition: \"transform \".concat(AnimationVariables.durationValue4, \" \").concat(beziers.easeOutCirc, \" \") +\n                                    \"opacity \".concat(AnimationVariables.durationValue1, \" \").concat(beziers.easeOutSine),\n                                transitionDelay: AnimationVariables.durationValue3,\n                                opacity: 1,\n                                transform: \"rotate(0.2deg) scale(1);\", // rotation prevents jittery motion in IE\n                            },\n                            _b[\".\".concat(classNames.check)] = {\n                                opacity: 0,\n                            },\n                            _b),\n                    },\n                    _a),\n            },\n            selected && [\n                classNames.isSelected,\n                {\n                    background: semanticColors.listItemBackgroundChecked,\n                    selectors: (_c = {\n                            ':hover': {\n                                background: semanticColors.listItemBackgroundCheckedHovered,\n                            }\n                        },\n                        _c[\"\".concat(classNames.check)] = {\n                            opacity: 1,\n                        },\n                        _c),\n                },\n            ],\n            compact && [classNames.compact, { border: 'none' }],\n            className,\n        ],\n        groupHeaderContainer: [\n            {\n                display: 'flex',\n                alignItems: 'center',\n                height: finalRowHeight,\n            },\n        ],\n        headerCount: [\n            {\n                padding: '0px 4px',\n            },\n        ],\n        check: [\n            classNames.check,\n            checkExpandResetStyles,\n            {\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center',\n                // paddingTop and marginTop brought from the DetailsRow.styles.ts with explanation below.\n                // Ensure that the check cell covers the top border of the cell.\n                // This ensures the click target does not leave a spot which would\n                // cause other items to be deselected.\n                paddingTop: 1,\n                marginTop: -1,\n                opacity: 0,\n                width: CHECK_CELL_WIDTH,\n                height: finalRowHeight,\n                selectors: (_d = {},\n                    _d[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n                        opacity: 1,\n                    },\n                    _d),\n            },\n        ],\n        expand: [\n            classNames.expand,\n            checkExpandResetStyles,\n            {\n                display: 'flex',\n                flexShrink: 0,\n                alignItems: 'center',\n                justifyContent: 'center',\n                fontSize: fonts.small.fontSize,\n                width: EXPAND_BUTTON_WIDTH,\n                height: finalRowHeight,\n                color: selected ? palette.neutralPrimary : palette.neutralSecondary,\n                selectors: {\n                    ':hover': {\n                        backgroundColor: selected ? palette.neutralQuaternary : palette.neutralLight,\n                    },\n                    ':active': {\n                        backgroundColor: selected ? palette.neutralTertiaryAlt : palette.neutralQuaternaryAlt,\n                    },\n                },\n            },\n        ],\n        expandIsCollapsed: [\n            isCollapsed\n                ? [\n                    classNames.isCollapsed,\n                    {\n                        transform: 'rotate(0deg)',\n                        transformOrigin: '50% 50%',\n                        transition: 'transform .1s linear',\n                    },\n                ]\n                : {\n                    transform: getRTL(theme) ? 'rotate(-90deg)' : 'rotate(90deg)',\n                    transformOrigin: '50% 50%',\n                    transition: 'transform .1s linear',\n                },\n        ],\n        title: [\n            classNames.title,\n            {\n                paddingLeft: cellLeftPadding,\n                fontSize: compact ? fonts.medium.fontSize : fonts.mediumPlus.fontSize,\n                fontWeight: isCollapsed ? FontWeights.regular : FontWeights.semibold,\n                cursor: 'pointer',\n                outline: 0,\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n                overflow: 'hidden',\n            },\n        ],\n        dropIcon: [\n            classNames.dropIcon,\n            {\n                position: 'absolute',\n                left: -26,\n                fontSize: IconFontSizes.large,\n                color: palette.neutralSecondary,\n                transition: \"transform \".concat(AnimationVariables.durationValue2, \" \").concat(beziers.easeInBack, \", \") +\n                    \"opacity \".concat(AnimationVariables.durationValue4, \" \").concat(beziers.easeOutSine),\n                opacity: 0,\n                transform: 'rotate(0.2deg) scale(0.65)',\n                transformOrigin: '10px 10px',\n                selectors: (_e = {},\n                    _e[\":global(.\".concat(classNames.iconTag, \")\")] = {\n                        position: 'absolute',\n                    },\n                    _e),\n            },\n        ],\n    };\n};\n//# sourceMappingURL=GroupHeader.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { composeRenderFunction, classNamesFunction, getId, getRTL, getRTLSafeKeyCode, KeyCodes } from '../../Utilities';\nimport { SelectionMode } from '../../Selection';\nimport { Check } from '../../Check';\nimport { Icon } from '../../Icon';\nimport { GroupSpacer } from './GroupSpacer';\nimport { Spinner } from '../../Spinner';\nimport { CHECK_CELL_WIDTH } from '../DetailsList/DetailsRowCheck.styles';\nvar getClassNames = classNamesFunction();\nvar GroupHeaderBase = /** @class */ (function (_super) {\n    __extends(GroupHeaderBase, _super);\n    function GroupHeaderBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._toggleCollapse = function () {\n            var _a = _this.props, group = _a.group, onToggleCollapse = _a.onToggleCollapse, isGroupLoading = _a.isGroupLoading;\n            var isCollapsed = _this.state.isCollapsed;\n            var newCollapsed = !isCollapsed;\n            var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(group);\n            _this.setState({\n                isCollapsed: newCollapsed,\n                isLoadingVisible: newLoadingVisible,\n            });\n            if (onToggleCollapse) {\n                onToggleCollapse(group);\n            }\n        };\n        _this._onKeyUp = function (ev) {\n            var _a = _this.props, group = _a.group, onGroupHeaderKeyUp = _a.onGroupHeaderKeyUp;\n            if (onGroupHeaderKeyUp) {\n                onGroupHeaderKeyUp(ev, group);\n            }\n            if (!ev.defaultPrevented) {\n                // eslint-disable-next-line deprecation/deprecation\n                var shouldOpen = _this.state.isCollapsed && ev.which === getRTLSafeKeyCode(KeyCodes.right, _this.props.theme);\n                // eslint-disable-next-line deprecation/deprecation\n                var shouldClose = !_this.state.isCollapsed && ev.which === getRTLSafeKeyCode(KeyCodes.left, _this.props.theme);\n                if (shouldClose || shouldOpen) {\n                    _this._toggleCollapse();\n                    ev.stopPropagation();\n                    ev.preventDefault();\n                }\n            }\n        };\n        _this._onToggleClick = function (ev) {\n            _this._toggleCollapse();\n            ev.stopPropagation();\n            ev.preventDefault();\n        };\n        _this._onHeaderClick = function () {\n            var _a = _this.props, group = _a.group, onGroupHeaderClick = _a.onGroupHeaderClick;\n            if (onGroupHeaderClick) {\n                onGroupHeaderClick(group);\n            }\n        };\n        _this._onRenderTitle = function (props) {\n            var group = props.group;\n            if (!group) {\n                return null;\n            }\n            var onRenderName = props.onRenderName\n                ? composeRenderFunction(props.onRenderName, _this._onRenderName)\n                : _this._onRenderName;\n            return (React.createElement(\"div\", { className: _this._classNames.title, id: _this._id, onClick: _this._onHeaderClick, role: \"gridcell\", \"aria-colspan\": _this.props.ariaColSpan, \"data-selection-invoke\": true }, onRenderName(props)));\n        };\n        _this._onRenderName = function (props) {\n            var group = props.group;\n            if (!group) {\n                return null;\n            }\n            return (React.createElement(React.Fragment, null,\n                React.createElement(\"span\", null, group.name),\n                React.createElement(\"span\", { className: _this._classNames.headerCount },\n                    \"(\",\n                    group.count,\n                    group.hasMoreData && '+',\n                    \")\")));\n        };\n        _this._id = getId('GroupHeader');\n        _this.state = {\n            isCollapsed: (_this.props.group && _this.props.group.isCollapsed),\n            isLoadingVisible: false,\n        };\n        return _this;\n    }\n    GroupHeaderBase.getDerivedStateFromProps = function (nextProps, previousState) {\n        if (nextProps.group) {\n            var newCollapsed = nextProps.group.isCollapsed;\n            var isGroupLoading = nextProps.isGroupLoading;\n            var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(nextProps.group);\n            return __assign(__assign({}, previousState), { isCollapsed: newCollapsed || false, isLoadingVisible: newLoadingVisible || false });\n        }\n        return previousState;\n    };\n    GroupHeaderBase.prototype.render = function () {\n        var _a = this.props, group = _a.group, _b = _a.groupLevel, groupLevel = _b === void 0 ? 0 : _b, viewport = _a.viewport, selectionMode = _a.selectionMode, loadingText = _a.loadingText, \n        // eslint-disable-next-line deprecation/deprecation\n        _c = _a.isSelected, \n        // eslint-disable-next-line deprecation/deprecation\n        isSelected = _c === void 0 ? false : _c, _d = _a.selected, selected = _d === void 0 ? false : _d, indentWidth = _a.indentWidth, onRenderGroupHeaderCheckbox = _a.onRenderGroupHeaderCheckbox, _e = _a.isCollapsedGroupSelectVisible, isCollapsedGroupSelectVisible = _e === void 0 ? true : _e, expandButtonProps = _a.expandButtonProps, expandButtonIcon = _a.expandButtonIcon, selectAllButtonProps = _a.selectAllButtonProps, theme = _a.theme, styles = _a.styles, className = _a.className, compact = _a.compact, ariaLevel = _a.ariaLevel, ariaPosInSet = _a.ariaPosInSet, ariaSetSize = _a.ariaSetSize, ariaRowIndex = _a.ariaRowIndex, useFastIcons = _a.useFastIcons;\n        var onRenderTitle = this.props.onRenderTitle\n            ? composeRenderFunction(this.props.onRenderTitle, this._onRenderTitle)\n            : this._onRenderTitle;\n        var defaultCheckboxRender = useFastIcons ? this._fastDefaultCheckboxRender : this._defaultCheckboxRender;\n        var onRenderCheckbox = onRenderGroupHeaderCheckbox\n            ? composeRenderFunction(onRenderGroupHeaderCheckbox, defaultCheckboxRender)\n            : defaultCheckboxRender;\n        var _f = this.state, isCollapsed = _f.isCollapsed, isLoadingVisible = _f.isLoadingVisible;\n        var canSelectGroup = selectionMode === SelectionMode.multiple;\n        var isSelectionCheckVisible = canSelectGroup && (isCollapsedGroupSelectVisible || !(group && group.isCollapsed));\n        var currentlySelected = selected || isSelected;\n        var isRTL = getRTL(theme);\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            selected: currentlySelected,\n            isCollapsed: isCollapsed,\n            compact: compact,\n        });\n        if (!group) {\n            return null;\n        }\n        return (React.createElement(\"div\", { className: this._classNames.root, style: viewport ? { minWidth: viewport.width } : {}, role: \"row\", \"aria-level\": ariaLevel, \"aria-setsize\": ariaSetSize, \"aria-posinset\": ariaPosInSet, \"aria-rowindex\": ariaRowIndex, \"data-is-focusable\": true, onKeyUp: this._onKeyUp, \"aria-label\": group.ariaLabel, \"aria-labelledby\": group.ariaLabel ? undefined : this._id, \"aria-expanded\": !this.state.isCollapsed, \"aria-selected\": canSelectGroup ? currentlySelected : undefined, \"data-selection-index\": group.startIndex, \"data-selection-span\": group.count },\n            React.createElement(\"div\", { className: this._classNames.groupHeaderContainer, role: \"presentation\" },\n                isSelectionCheckVisible ? (React.createElement(\"div\", { role: \"gridcell\" },\n                    React.createElement(\"button\", __assign({ \"data-is-focusable\": false, type: \"button\", className: this._classNames.check, role: \"checkbox\", id: \"\".concat(this._id, \"-check\"), \"aria-checked\": currentlySelected, \"aria-labelledby\": \"\".concat(this._id, \"-check \").concat(this._id), \"data-selection-toggle\": true }, selectAllButtonProps), onRenderCheckbox({ checked: currentlySelected, theme: theme }, onRenderCheckbox)))) : (\n                // To make the group header align properly with the column headers, this spacer\n                // needs to be the same width as the check cell in the column header.\n                selectionMode !== SelectionMode.none && React.createElement(GroupSpacer, { indentWidth: CHECK_CELL_WIDTH, count: 1 })),\n                React.createElement(GroupSpacer, { indentWidth: indentWidth, count: groupLevel }),\n                React.createElement(\"div\", { className: this._classNames.dropIcon, role: \"presentation\" },\n                    React.createElement(Icon, { iconName: \"Tag\" })),\n                React.createElement(\"div\", { role: \"gridcell\" },\n                    React.createElement(\"button\", __assign({ \"data-is-focusable\": false, \"data-selection-disabled\": true, type: \"button\", className: this._classNames.expand, onClick: this._onToggleClick, \"aria-expanded\": !this.state.isCollapsed }, expandButtonProps),\n                        React.createElement(Icon, { className: this._classNames.expandIsCollapsed, iconName: expandButtonIcon || (isRTL ? 'ChevronLeftMed' : 'ChevronRightMed') }))),\n                onRenderTitle(this.props),\n                isLoadingVisible && React.createElement(Spinner, { label: loadingText }))));\n    };\n    GroupHeaderBase.prototype._defaultCheckboxRender = function (checkboxProps) {\n        return React.createElement(Check, { checked: checkboxProps.checked });\n    };\n    GroupHeaderBase.prototype._fastDefaultCheckboxRender = function (checkboxProps) {\n        return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked });\n    };\n    GroupHeaderBase.defaultProps = {\n        expandButtonProps: { 'aria-label': 'expand collapse group' },\n    };\n    return GroupHeaderBase;\n}(React.Component));\nexport { GroupHeaderBase };\nvar FastCheck = React.memo(function (props) {\n    return React.createElement(Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true });\n});\n//# sourceMappingURL=GroupHeader.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupHeader.styles';\nimport { GroupHeaderBase } from './GroupHeader.base';\nexport var GroupHeader = styled(GroupHeaderBase, getStyles, undefined, {\n    scope: 'GroupHeader',\n});\n//# sourceMappingURL=GroupHeader.js.map","import * as React from 'react';\nexport var SPACER_WIDTH = 36;\nexport var GroupSpacer = function (props) {\n    var count = props.count, _a = props.indentWidth, indentWidth = _a === void 0 ? SPACER_WIDTH : _a, _b = props.role, role = _b === void 0 ? 'presentation' : _b;\n    var width = count * indentWidth;\n    return count > 0 ? (React.createElement(\"span\", { className: 'ms-GroupSpacer', style: { display: 'inline-block', width: width }, role: role })) : null;\n};\n//# sourceMappingURL=GroupSpacer.js.map","import { getGlobalClassNames, AnimationVariables } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-GroupedList',\n    compact: 'ms-GroupedList--Compact',\n    group: 'ms-GroupedList-group',\n    link: 'ms-Link',\n    listCell: 'ms-List-cell',\n};\nvar beziers = {\n    easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)',\n};\nexport var getStyles = function (props) {\n    var _a, _b;\n    var theme = props.theme, className = props.className, compact = props.compact;\n    var palette = theme.palette;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.small,\n            {\n                position: 'relative',\n                selectors: (_a = {},\n                    _a[\".\".concat(classNames.listCell)] = {\n                        minHeight: 38, // be consistent with DetailsList styles\n                    },\n                    _a),\n            },\n            compact && [\n                classNames.compact,\n                {\n                    selectors: (_b = {},\n                        _b[\".\".concat(classNames.listCell)] = {\n                            minHeight: 32, // be consistent with DetailsList styles\n                        },\n                        _b),\n                },\n            ],\n            className,\n        ],\n        group: [\n            classNames.group,\n            {\n                transition: \"background-color \".concat(AnimationVariables.durationValue2, \" \").concat(beziers.easeInOutSine),\n            },\n        ],\n        groupIsDropping: {\n            backgroundColor: palette.neutralLight,\n        },\n    };\n};\n//# sourceMappingURL=GroupedList.styles.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-GroupShowAll',\n    link: 'ms-Link',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var theme = props.theme;\n    var fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            {\n                position: 'relative',\n                padding: '10px 84px',\n                cursor: 'pointer',\n                selectors: (_a = {},\n                    _a[\".\".concat(classNames.link)] = {\n                        fontSize: fonts.small.fontSize,\n                    },\n                    _a),\n            },\n        ],\n    };\n};\n//# sourceMappingURL=GroupShowAll.styles.js.map","import * as React from 'react';\nimport { useCallback } from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { Link } from '../../Link';\nimport { GroupSpacer } from './GroupSpacer';\nvar getClassNames = classNamesFunction();\nexport var GroupShowAllBase = function (props) {\n    var group = props.group, groupLevel = props.groupLevel, _a = props.showAllLinkText, showAllLinkText = _a === void 0 ? 'Show All' : _a, styles = props.styles, theme = props.theme, onToggleSummarize = props.onToggleSummarize;\n    var classNames = getClassNames(styles, { theme: theme });\n    var memoizedOnClick = useCallback(function (ev) {\n        onToggleSummarize(group);\n        ev.stopPropagation();\n        ev.preventDefault();\n    }, [onToggleSummarize, group]);\n    if (group) {\n        return (React.createElement(\"div\", { className: classNames.root },\n            React.createElement(GroupSpacer, { count: groupLevel }),\n            React.createElement(Link, { onClick: memoizedOnClick }, showAllLinkText)));\n    }\n    return null;\n};\n//# sourceMappingURL=GroupShowAll.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupShowAll.styles';\nimport { GroupShowAllBase } from './GroupShowAll.base';\nexport var GroupShowAll = styled(GroupShowAllBase, getStyles, undefined, { scope: 'GroupShowAll' });\n//# sourceMappingURL=GroupShowAll.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-groupFooter',\n};\nexport var getStyles = function (props) {\n    var theme = props.theme, className = props.className;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            theme.fonts.medium,\n            classNames.root,\n            {\n                position: 'relative',\n                padding: '5px 38px',\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=GroupFooter.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { GroupSpacer } from './GroupSpacer';\nvar getClassNames = classNamesFunction();\nexport var GroupFooterBase = function (props) {\n    var group = props.group, groupLevel = props.groupLevel, footerText = props.footerText, indentWidth = props.indentWidth, styles = props.styles, theme = props.theme;\n    var classNames = getClassNames(styles, { theme: theme });\n    if (group && footerText) {\n        return (React.createElement(\"div\", { className: classNames.root },\n            React.createElement(GroupSpacer, { indentWidth: indentWidth, count: groupLevel }),\n            footerText));\n    }\n    return null;\n};\n//# sourceMappingURL=GroupFooter.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupFooter.styles';\nimport { GroupFooterBase } from './GroupFooter.base';\nexport var GroupFooter = styled(GroupFooterBase, getStyles, undefined, {\n    scope: 'GroupFooter',\n});\n//# sourceMappingURL=GroupFooter.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, css, getId, EventGroup } from '../../Utilities';\nimport { SELECTION_CHANGE } from '../../Selection';\nimport { GroupHeader } from './GroupHeader';\nimport { GroupShowAll } from './GroupShowAll';\nimport { GroupFooter } from './GroupFooter';\nimport { List } from '../../List';\nvar DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';\nvar GroupedListSection = /** @class */ (function (_super) {\n    __extends(GroupedListSection, _super);\n    function GroupedListSection(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._list = React.createRef();\n        _this._subGroupRefs = {};\n        _this._droppingClassName = '';\n        _this._onRenderGroupHeader = function (props) {\n            return React.createElement(GroupHeader, __assign({}, props));\n        };\n        _this._onRenderGroupShowAll = function (props) {\n            return React.createElement(GroupShowAll, __assign({}, props));\n        };\n        _this._onRenderGroupFooter = function (props) {\n            return React.createElement(GroupFooter, __assign({}, props));\n        };\n        _this._renderSubGroup = function (subGroup, subGroupIndex) {\n            var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, getGroupItemLimit = _a.getGroupItemLimit, groupNestingDepth = _a.groupNestingDepth, groupProps = _a.groupProps, items = _a.items, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selection = _a.selection, selectionMode = _a.selectionMode, viewport = _a.viewport, onRenderGroupHeader = _a.onRenderGroupHeader, onRenderGroupShowAll = _a.onRenderGroupShowAll, onRenderGroupFooter = _a.onRenderGroupFooter, onShouldVirtualize = _a.onShouldVirtualize, group = _a.group, compact = _a.compact;\n            var nestingDepth = subGroup.level ? subGroup.level + 1 : groupNestingDepth;\n            return !subGroup || subGroup.count > 0 || (groupProps && groupProps.showEmptyGroups) ? (React.createElement(GroupedListSection, { ref: function (ref) { return (_this._subGroupRefs['subGroup_' + subGroupIndex] = ref); }, key: _this._getGroupKey(subGroup, subGroupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: getGroupItemLimit, group: subGroup, groupIndex: subGroupIndex, groupNestingDepth: nestingDepth, groupProps: groupProps, headerProps: headerProps, items: items, listProps: listProps, onRenderCell: onRenderCell, selection: selection, selectionMode: selectionMode, showAllProps: showAllProps, viewport: viewport, onRenderGroupHeader: onRenderGroupHeader, onRenderGroupShowAll: onRenderGroupShowAll, onRenderGroupFooter: onRenderGroupFooter, onShouldVirtualize: onShouldVirtualize, groups: group ? group.children : [], compact: compact })) : null;\n        };\n        /**\n         * collect all the data we need to enable drag/drop for a group\n         */\n        _this._getGroupDragDropOptions = function () {\n            var _a = _this.props, group = _a.group, groupIndex = _a.groupIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;\n            var options = {\n                eventMap: eventsToRegister,\n                selectionIndex: -1,\n                context: { data: group, index: groupIndex, isGroup: true },\n                updateDropState: _this._updateDroppingState,\n                canDrag: dragDropEvents.canDrag,\n                canDrop: dragDropEvents.canDrop,\n                onDrop: dragDropEvents.onDrop,\n                onDragStart: dragDropEvents.onDragStart,\n                onDragEnter: dragDropEvents.onDragEnter,\n                onDragLeave: dragDropEvents.onDragLeave,\n                onDragEnd: dragDropEvents.onDragEnd,\n                onDragOver: dragDropEvents.onDragOver,\n            };\n            return options;\n        };\n        /**\n         * update groupIsDropping state based on the input value, which is used to change style during drag and drop\n         *\n         * @param newValue - new isDropping state value\n         * @param event - the event trigger dropping state change which can be dragenter, dragleave etc\n         */\n        _this._updateDroppingState = function (newIsDropping, event) {\n            var isDropping = _this.state.isDropping;\n            var _a = _this.props, dragDropEvents = _a.dragDropEvents, group = _a.group;\n            if (isDropping !== newIsDropping) {\n                if (isDropping) {\n                    if (dragDropEvents && dragDropEvents.onDragLeave) {\n                        dragDropEvents.onDragLeave(group, event);\n                    }\n                }\n                else {\n                    if (dragDropEvents && dragDropEvents.onDragEnter) {\n                        _this._droppingClassName = dragDropEvents.onDragEnter(group, event);\n                    }\n                }\n                _this.setState({ isDropping: newIsDropping });\n            }\n        };\n        var selection = props.selection, group = props.group;\n        initializeComponentRef(_this);\n        _this._id = getId('GroupedListSection');\n        _this.state = {\n            isDropping: false,\n            isSelected: selection && group ? selection.isRangeSelected(group.startIndex, group.count) : false,\n        };\n        _this._events = new EventGroup(_this);\n        return _this;\n    }\n    GroupedListSection.prototype.componentDidMount = function () {\n        var _a = this.props, dragDropHelper = _a.dragDropHelper, selection = _a.selection;\n        if (dragDropHelper && this._root.current) {\n            this._dragDropSubscription = dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());\n        }\n        if (selection) {\n            this._events.on(selection, SELECTION_CHANGE, this._onSelectionChange);\n        }\n    };\n    GroupedListSection.prototype.componentWillUnmount = function () {\n        this._events.dispose();\n        if (this._dragDropSubscription) {\n            this._dragDropSubscription.dispose();\n        }\n    };\n    GroupedListSection.prototype.componentDidUpdate = function (previousProps) {\n        if (this.props.group !== previousProps.group ||\n            this.props.groupIndex !== previousProps.groupIndex ||\n            this.props.dragDropHelper !== previousProps.dragDropHelper) {\n            if (this._dragDropSubscription) {\n                this._dragDropSubscription.dispose();\n                delete this._dragDropSubscription;\n            }\n            if (this.props.dragDropHelper && this._root.current) {\n                this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());\n            }\n        }\n    };\n    GroupedListSection.prototype.render = function () {\n        var _a = this.props, getGroupItemLimit = _a.getGroupItemLimit, group = _a.group, groupIndex = _a.groupIndex, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, viewport = _a.viewport, selectionMode = _a.selectionMode, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? this._onRenderGroupHeader : _b, _c = _a.onRenderGroupShowAll, onRenderGroupShowAll = _c === void 0 ? this._onRenderGroupShowAll : _c, _d = _a.onRenderGroupFooter, onRenderGroupFooter = _d === void 0 ? this._onRenderGroupFooter : _d, onShouldVirtualize = _a.onShouldVirtualize, groupedListClassNames = _a.groupedListClassNames, groups = _a.groups, compact = _a.compact, _e = _a.listProps, listProps = _e === void 0 ? {} : _e;\n        var isSelected = this.state.isSelected;\n        var renderCount = group && getGroupItemLimit ? getGroupItemLimit(group) : Infinity;\n        var isShowAllVisible = group &&\n            !group.children &&\n            !group.isCollapsed &&\n            !group.isShowingAll &&\n            (group.count > renderCount || group.hasMoreData);\n        var hasNestedGroups = group && group.children && group.children.length > 0;\n        var version = listProps.version;\n        var dividerProps = {\n            group: group,\n            groupIndex: groupIndex,\n            groupLevel: group ? group.level : 0,\n            isSelected: isSelected,\n            selected: isSelected,\n            viewport: viewport,\n            selectionMode: selectionMode,\n            groups: groups,\n            compact: compact,\n        };\n        var ariaControlsProps = {\n            groupedListId: this._id,\n            ariaLevel: (group === null || group === void 0 ? void 0 : group.level) ? group.level + 1 : 1,\n            ariaSetSize: groups ? groups.length : undefined,\n            ariaPosInSet: groupIndex !== undefined ? groupIndex + 1 : undefined,\n        };\n        var groupHeaderProps = __assign(__assign(__assign({}, headerProps), dividerProps), ariaControlsProps);\n        var groupShowAllProps = __assign(__assign({}, showAllProps), dividerProps);\n        var groupFooterProps = __assign(__assign({}, footerProps), dividerProps);\n        var isDraggable = !!this.props.dragDropHelper &&\n            this._getGroupDragDropOptions().canDrag(group) &&\n            !!this.props.dragDropEvents.canDragGroups;\n        return (React.createElement(\"div\", __assign({ ref: this._root }, (isDraggable && { draggable: true }), { className: css(groupedListClassNames && groupedListClassNames.group, this._getDroppingClassName()), role: \"presentation\" }),\n            onRenderGroupHeader(groupHeaderProps, this._onRenderGroupHeader),\n            group && group.isCollapsed ? null : hasNestedGroups ? (React.createElement(List, { role: \"presentation\", ref: this._list, items: group ? group.children : [], onRenderCell: this._renderSubGroup, getItemCountForPage: this._returnOne, onShouldVirtualize: onShouldVirtualize, version: version, id: this._id })) : (this._onRenderGroup(renderCount)),\n            group && group.isCollapsed\n                ? null\n                : isShowAllVisible && onRenderGroupShowAll(groupShowAllProps, this._onRenderGroupShowAll),\n            onRenderGroupFooter(groupFooterProps, this._onRenderGroupFooter)));\n    };\n    GroupedListSection.prototype.forceUpdate = function () {\n        _super.prototype.forceUpdate.call(this);\n        this.forceListUpdate();\n    };\n    GroupedListSection.prototype.forceListUpdate = function () {\n        var group = this.props.group;\n        if (this._list.current) {\n            this._list.current.forceUpdate();\n            if (group && group.children && group.children.length > 0) {\n                var subGroupCount = group.children.length;\n                for (var i = 0; i < subGroupCount; i++) {\n                    var subGroup = this._list.current.pageRefs['subGroup_' + String(i)];\n                    if (subGroup) {\n                        subGroup.forceListUpdate();\n                    }\n                }\n            }\n        }\n        else {\n            var subGroup = this._subGroupRefs['subGroup_' + String(0)];\n            if (subGroup) {\n                subGroup.forceListUpdate();\n            }\n        }\n    };\n    GroupedListSection.prototype._onSelectionChange = function () {\n        var _a = this.props, group = _a.group, selection = _a.selection;\n        if (selection && group) {\n            var isSelected = selection.isRangeSelected(group.startIndex, group.count);\n            if (isSelected !== this.state.isSelected) {\n                this.setState({ isSelected: isSelected });\n            }\n        }\n    };\n    GroupedListSection.prototype._onRenderGroupCell = function (onRenderCell, groupNestingDepth, group) {\n        return function (item, itemIndex) {\n            return onRenderCell(groupNestingDepth, item, itemIndex, group);\n        };\n    };\n    GroupedListSection.prototype._onRenderGroup = function (renderCount) {\n        var _a = this.props, group = _a.group, items = _a.items, onRenderCell = _a.onRenderCell, listProps = _a.listProps, groupNestingDepth = _a.groupNestingDepth, onShouldVirtualize = _a.onShouldVirtualize, groupProps = _a.groupProps;\n        var count = group && !group.isShowingAll ? group.count : items.length;\n        var startIndex = group ? group.startIndex : 0;\n        return (React.createElement(List, __assign({ role: groupProps && groupProps.role ? groupProps.role : 'rowgroup', \"aria-label\": group === null || group === void 0 ? void 0 : group.name, items: items, onRenderCell: this._onRenderGroupCell(onRenderCell, groupNestingDepth, group), ref: this._list, renderCount: Math.min(count, renderCount), startIndex: startIndex, onShouldVirtualize: onShouldVirtualize, id: this._id }, listProps)));\n    };\n    GroupedListSection.prototype._returnOne = function () {\n        return 1;\n    };\n    GroupedListSection.prototype._getGroupKey = function (group, index) {\n        return 'group-' + (group && group.key ? group.key : String(group.level) + String(index));\n    };\n    /**\n     * get the correct css class to reflect the dropping state for a given group\n     *\n     * If the group is the current drop target, return the default dropping class name\n     * Otherwise, return '';\n     *\n     */\n    GroupedListSection.prototype._getDroppingClassName = function () {\n        var isDropping = this.state.isDropping;\n        var _a = this.props, group = _a.group, groupedListClassNames = _a.groupedListClassNames;\n        isDropping = !!(group && isDropping);\n        return css(isDropping && this._droppingClassName, isDropping && DEFAULT_DROPPING_CSS_CLASS, isDropping && groupedListClassNames && groupedListClassNames.groupIsDropping);\n    };\n    return GroupedListSection;\n}(React.Component));\nexport { GroupedListSection };\n//# sourceMappingURL=GroupedListSection.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, classNamesFunction, KeyCodes, getRTLSafeKeyCode, css } from '../../Utilities';\nimport { GroupedListSection } from './GroupedListSection';\nimport { List } from '../../List';\nimport { SelectionMode } from '../../Selection';\nimport { DEFAULT_ROW_HEIGHTS } from '../DetailsList/DetailsRow.styles';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nvar getClassNames = classNamesFunction();\nvar ROW_HEIGHT = DEFAULT_ROW_HEIGHTS.rowHeight, COMPACT_ROW_HEIGHT = DEFAULT_ROW_HEIGHTS.compactRowHeight;\nvar GroupedListBase = /** @class */ (function (_super) {\n    __extends(GroupedListBase, _super);\n    function GroupedListBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._list = React.createRef();\n        _this._renderGroup = function (group, groupIndex) {\n            var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, groupProps = _a.groupProps, items = _a.items, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selectionMode = _a.selectionMode, selection = _a.selection, viewport = _a.viewport, onShouldVirtualize = _a.onShouldVirtualize, groups = _a.groups, compact = _a.compact;\n            // override group header/footer props as needed\n            var dividerProps = {\n                onToggleSelectGroup: _this._onToggleSelectGroup,\n                onToggleCollapse: _this._onToggleCollapse,\n                onToggleSummarize: _this._onToggleSummarize,\n            };\n            var headerProps = __assign(__assign({}, groupProps.headerProps), dividerProps);\n            var showAllProps = __assign(__assign({}, groupProps.showAllProps), dividerProps);\n            var footerProps = __assign(__assign({}, groupProps.footerProps), dividerProps);\n            var groupNestingDepth = _this._getGroupNestingDepth();\n            if (!groupProps.showEmptyGroups && group && group.count === 0) {\n                return null;\n            }\n            var finalListProps = __assign(__assign({}, (listProps || {})), { version: _this.state.version });\n            return (React.createElement(GroupedListSection, { key: _this._getGroupKey(group, groupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: groupProps && groupProps.getGroupItemLimit, group: group, groupIndex: groupIndex, groupNestingDepth: groupNestingDepth, groupProps: groupProps, headerProps: headerProps, listProps: finalListProps, items: items, onRenderCell: onRenderCell, onRenderGroupHeader: groupProps.onRenderHeader, onRenderGroupShowAll: groupProps.onRenderShowAll, onRenderGroupFooter: groupProps.onRenderFooter, selectionMode: selectionMode, selection: selection, showAllProps: showAllProps, viewport: viewport, onShouldVirtualize: onShouldVirtualize, groupedListClassNames: _this._classNames, groups: groups, compact: compact }));\n        };\n        _this._getDefaultGroupItemLimit = function (group) {\n            return group.children && group.children.length > 0 ? group.children.length : group.count;\n        };\n        _this._getGroupItemLimit = function (group) {\n            var groupProps = _this.props.groupProps;\n            var getGroupItemLimit = groupProps && groupProps.getGroupItemLimit ? groupProps.getGroupItemLimit : _this._getDefaultGroupItemLimit;\n            return getGroupItemLimit(group);\n        };\n        _this._getGroupHeight = function (group) {\n            var rowHeight = _this.props.compact ? COMPACT_ROW_HEIGHT : ROW_HEIGHT;\n            return rowHeight + (group.isCollapsed ? 0 : rowHeight * _this._getGroupItemLimit(group));\n        };\n        _this._getPageHeight = function (itemIndex) {\n            var groups = _this.state.groups;\n            var _a = _this.props.getGroupHeight, getGroupHeight = _a === void 0 ? _this._getGroupHeight : _a;\n            var pageGroup = groups && groups[itemIndex];\n            if (pageGroup) {\n                return getGroupHeight(pageGroup, itemIndex);\n            }\n            else {\n                return 0;\n            }\n        };\n        _this._onToggleCollapse = function (group) {\n            var groupProps = _this.props.groupProps;\n            var onToggleCollapse = groupProps && groupProps.headerProps && groupProps.headerProps.onToggleCollapse;\n            if (group) {\n                if (onToggleCollapse) {\n                    onToggleCollapse(group);\n                }\n                group.isCollapsed = !group.isCollapsed;\n                _this._updateIsSomeGroupExpanded();\n                _this.forceUpdate();\n            }\n        };\n        _this._onToggleSelectGroup = function (group) {\n            var _a = _this.props, selection = _a.selection, selectionMode = _a.selectionMode;\n            if (group && selection && selectionMode === SelectionMode.multiple) {\n                selection.toggleRangeSelected(group.startIndex, group.count);\n            }\n        };\n        _this._isInnerZoneKeystroke = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            return ev.which === getRTLSafeKeyCode(KeyCodes.right);\n        };\n        _this._onToggleSummarize = function (group) {\n            var groupProps = _this.props.groupProps;\n            var onToggleSummarize = groupProps && groupProps.showAllProps && groupProps.showAllProps.onToggleSummarize;\n            if (onToggleSummarize) {\n                onToggleSummarize(group);\n            }\n            else {\n                if (group) {\n                    group.isShowingAll = !group.isShowingAll;\n                }\n                _this.forceUpdate();\n            }\n        };\n        _this._getPageSpecification = function (itemIndex) {\n            var groups = _this.state.groups;\n            var pageGroup = groups && groups[itemIndex];\n            return {\n                key: pageGroup && pageGroup.key,\n            };\n        };\n        initializeComponentRef(_this);\n        _this._isSomeGroupExpanded = _this._computeIsSomeGroupExpanded(props.groups);\n        var _a = props.listProps, _b = _a === void 0 ? {} : _a, _c = _b.version, version = _c === void 0 ? {} : _c;\n        _this.state = {\n            groups: props.groups,\n            items: props.items,\n            listProps: props.listProps,\n            version: version,\n        };\n        return _this;\n    }\n    GroupedListBase.getDerivedStateFromProps = function (nextProps, previousState) {\n        var groups = nextProps.groups, selectionMode = nextProps.selectionMode, compact = nextProps.compact, items = nextProps.items, listProps = nextProps.listProps;\n        var listVersion = listProps && listProps.version;\n        var nextState = __assign(__assign({}, previousState), { selectionMode: selectionMode, compact: compact, groups: groups, listProps: listProps, items: items });\n        var shouldForceUpdates = false;\n        var previousListVersion = previousState.listProps && previousState.listProps.version;\n        if (listVersion !== previousListVersion ||\n            items !== previousState.items ||\n            groups !== previousState.groups ||\n            selectionMode !== previousState.selectionMode ||\n            compact !== previousState.compact) {\n            // If there are any props not passed explicitly to `List` which have an impact on the behavior of `onRenderCell`,\n            // these need to 'force-update' this component by revving the version. Otherwise, the List might render with stale\n            // data.\n            shouldForceUpdates = true;\n        }\n        if (shouldForceUpdates) {\n            nextState = __assign(__assign({}, nextState), { version: {} });\n        }\n        return nextState;\n    };\n    GroupedListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n        if (this._list.current) {\n            this._list.current.scrollToIndex(index, measureItem, scrollToMode);\n        }\n    };\n    GroupedListBase.prototype.getStartItemIndexInView = function () {\n        return this._list.current.getStartItemIndexInView() || 0;\n    };\n    GroupedListBase.prototype.componentDidMount = function () {\n        var _a = this.props, groupProps = _a.groupProps, _b = _a.groups, groups = _b === void 0 ? [] : _b;\n        if (groupProps && groupProps.isAllGroupsCollapsed) {\n            this._setGroupsCollapsedState(groups, groupProps.isAllGroupsCollapsed);\n        }\n    };\n    GroupedListBase.prototype.render = function () {\n        var _a = this.props, className = _a.className, usePageCache = _a.usePageCache, onShouldVirtualize = _a.onShouldVirtualize, theme = _a.theme, _b = _a.role, role = _b === void 0 ? 'treegrid' : _b, styles = _a.styles, compact = _a.compact, _c = _a.focusZoneProps, focusZoneProps = _c === void 0 ? {} : _c, _d = _a.rootListProps, rootListProps = _d === void 0 ? {} : _d;\n        var _e = this.state, groups = _e.groups, version = _e.version;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            compact: compact,\n        });\n        var _f = focusZoneProps.shouldEnterInnerZone, shouldEnterInnerZone = _f === void 0 ? this._isInnerZoneKeystroke : _f;\n        return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, \"data-automationid\": \"GroupedList\", \"data-is-scrollable\": \"false\", role: \"presentation\" }, focusZoneProps, { shouldEnterInnerZone: shouldEnterInnerZone, className: css(this._classNames.root, focusZoneProps.className) }), !groups ? (this._renderGroup(undefined, 0)) : (React.createElement(List, __assign({ ref: this._list, role: role, items: groups, onRenderCell: this._renderGroup, getItemCountForPage: this._returnOne, getPageHeight: this._getPageHeight, getPageSpecification: this._getPageSpecification, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, version: version }, rootListProps)))));\n    };\n    GroupedListBase.prototype.forceUpdate = function () {\n        _super.prototype.forceUpdate.call(this);\n        this._forceListUpdates();\n    };\n    GroupedListBase.prototype.toggleCollapseAll = function (allCollapsed) {\n        var _a = this.state.groups, groups = _a === void 0 ? [] : _a;\n        var groupProps = this.props.groupProps;\n        var onToggleCollapseAll = groupProps && groupProps.onToggleCollapseAll;\n        if (groups.length > 0) {\n            if (onToggleCollapseAll) {\n                onToggleCollapseAll(allCollapsed);\n            }\n            this._setGroupsCollapsedState(groups, allCollapsed);\n            this._updateIsSomeGroupExpanded();\n            this.forceUpdate();\n        }\n    };\n    GroupedListBase.prototype._setGroupsCollapsedState = function (groups, isCollapsed) {\n        for (var groupIndex = 0; groupIndex < groups.length; groupIndex++) {\n            groups[groupIndex].isCollapsed = isCollapsed;\n        }\n    };\n    GroupedListBase.prototype._returnOne = function () {\n        return 1;\n    };\n    GroupedListBase.prototype._getGroupKey = function (group, index) {\n        return 'group-' + (group && group.key ? group.key : String(index));\n    };\n    GroupedListBase.prototype._getGroupNestingDepth = function () {\n        var groups = this.state.groups;\n        var level = 0;\n        var groupsInLevel = groups;\n        while (groupsInLevel && groupsInLevel.length > 0) {\n            level++;\n            groupsInLevel = groupsInLevel[0].children;\n        }\n        return level;\n    };\n    GroupedListBase.prototype._forceListUpdates = function (groups) {\n        this.setState({\n            version: {},\n        });\n    };\n    GroupedListBase.prototype._computeIsSomeGroupExpanded = function (groups) {\n        var _this = this;\n        return !!(groups &&\n            groups.some(function (group) { return (group.children ? _this._computeIsSomeGroupExpanded(group.children) : !group.isCollapsed); }));\n    };\n    GroupedListBase.prototype._updateIsSomeGroupExpanded = function () {\n        var groups = this.state.groups;\n        var onGroupExpandStateChanged = this.props.onGroupExpandStateChanged;\n        var newIsSomeGroupExpanded = this._computeIsSomeGroupExpanded(groups);\n        if (this._isSomeGroupExpanded !== newIsSomeGroupExpanded) {\n            if (onGroupExpandStateChanged) {\n                onGroupExpandStateChanged(newIsSomeGroupExpanded);\n            }\n            this._isSomeGroupExpanded = newIsSomeGroupExpanded;\n        }\n    };\n    GroupedListBase.defaultProps = {\n        selectionMode: SelectionMode.multiple,\n        isHeaderVisible: true,\n        groupProps: {},\n        compact: false,\n    };\n    return GroupedListBase;\n}(React.Component));\nexport { GroupedListBase };\n//# sourceMappingURL=GroupedList.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupedList.styles';\nimport { GroupedListBase } from './GroupedList.base';\nexport var GroupedList = styled(GroupedListBase, getStyles, undefined, {\n    scope: 'GroupedList',\n});\n//# sourceMappingURL=GroupedList.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n    var _a = getIcon(iconName) || {\n        subset: {},\n        code: undefined,\n    }, code = _a.code, subset = _a.subset;\n    if (!code) {\n        return null;\n    }\n    return {\n        children: code,\n        iconClassName: subset.className,\n        fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n        mergeImageProps: subset.mergeImageProps,\n    };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n    var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n    var iconContent = getIconContent(iconName) || {};\n    var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n    var nativeProps = getNativeProps(props, htmlElementProperties);\n    var accessibleName = props['aria-label'] || props.title;\n    var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n        ? {\n            role: mergeImageProps ? undefined : 'img',\n        }\n        : {\n            'aria-hidden': true,\n        };\n    var finalChildren = children;\n    if (mergeImageProps) {\n        if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n            finalChildren = React.cloneElement(children, { alt: accessibleName });\n        }\n    }\n    return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n        ? {\n            title: undefined,\n            'aria-label': undefined,\n        }\n        : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n        // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n        // https://github.com/microsoft/fluentui/issues/10449\n        style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n    return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n    /**\n     * Render using the fabric icon font.\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"default\"] = 0] = \"default\";\n    /**\n     * Render using an image, where imageProps would be used.\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"image\"] = 1] = \"image\";\n    /**\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"Default\"] = 100000] = \"Default\";\n    /**\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n    // Icon is used a lot by other components.\n    // It's likely to see expected cases which pass different className to the Icon.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n    __extends(IconBase, _super);\n    function IconBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._onImageLoadingStateChange = function (state) {\n            if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n                _this.props.imageProps.onLoadingStateChange(state);\n            }\n            if (state === ImageLoadState.error) {\n                _this.setState({ imageLoadError: true });\n            }\n        };\n        _this.state = {\n            imageLoadError: false,\n        };\n        return _this;\n    }\n    IconBase.prototype.render = function () {\n        var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n        var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n        var isImage = \n        // eslint-disable-next-line deprecation/deprecation\n        !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n        var iconContent = getIconContent(iconName) || {};\n        var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            iconClassName: iconClassName,\n            isImage: isImage,\n            isPlaceholder: isPlaceholder,\n        });\n        var RootType = isImage ? 'span' : 'i';\n        var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n            'aria-label',\n        ]);\n        var imageLoadError = this.state.imageLoadError;\n        var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n        var ImageType = (imageLoadError && imageErrorAs) || Image;\n        // eslint-disable-next-line deprecation/deprecation\n        var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n        var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n        var hasName = !!(accessibleName ||\n            this.props['aria-labelledby'] ||\n            imageProps['aria-label'] ||\n            imageProps['aria-labelledby']);\n        var containerProps = hasName\n            ? {\n                role: isImage || mergeImageProps ? undefined : 'img',\n                'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n            }\n            : {\n                'aria-hidden': true,\n            };\n        var finalIconContentChildren = iconContentChildren;\n        if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n            finalIconContentChildren = React.cloneElement(iconContentChildren, {\n                alt: accessibleName,\n            });\n        }\n        return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n            ? {\n                title: undefined,\n                'aria-label': undefined,\n            }\n            : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n    };\n    return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n    scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n    root: {\n        display: 'inline-block',\n    },\n    placeholder: [\n        'ms-Icon-placeHolder',\n        {\n            width: '1em',\n        },\n    ],\n    image: [\n        'ms-Icon-imageContainer',\n        {\n            overflow: 'hidden',\n        },\n    ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n    var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n    return {\n        root: [\n            isPlaceholder && classNames.placeholder,\n            classNames.root,\n            isImage && classNames.image,\n            iconClassName,\n            className,\n            styles && styles.root,\n            // eslint-disable-next-line deprecation/deprecation\n            styles && styles.imageContainer,\n        ],\n    };\n};\n//# sourceMappingURL=Icon.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar SVG_REGEX = /\\.svg$/i;\nvar KEY_PREFIX = 'fabricImage';\nfunction useLoadState(props, imageElement) {\n    var onLoadingStateChange = props.onLoadingStateChange, onLoad = props.onLoad, onError = props.onError, src = props.src;\n    var _a = React.useState(ImageLoadState.notLoaded), loadState = _a[0], setLoadState = _a[1];\n    useIsomorphicLayoutEffect(function () {\n        // If the src property changes, reset the load state\n        // (does nothing if the load state is already notLoaded)\n        setLoadState(ImageLoadState.notLoaded);\n    }, [src]);\n    // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n    React.useEffect(function () {\n        if (loadState === ImageLoadState.notLoaded) {\n            // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n            // .complete, because .complete will also be set to true if the image breaks. However,\n            // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n            // to checking .complete for these images.\n            var isLoaded = imageElement.current\n                ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n                    (imageElement.current.complete && SVG_REGEX.test(src))\n                : false;\n            if (isLoaded) {\n                setLoadState(ImageLoadState.loaded);\n            }\n        }\n    });\n    React.useEffect(function () {\n        onLoadingStateChange === null || onLoadingStateChange === void 0 ? void 0 : onLoadingStateChange(loadState);\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n    }, [loadState]);\n    var onImageLoaded = React.useCallback(function (ev) {\n        onLoad === null || onLoad === void 0 ? void 0 : onLoad(ev);\n        if (src) {\n            setLoadState(ImageLoadState.loaded);\n        }\n    }, [src, onLoad]);\n    var onImageError = React.useCallback(function (ev) {\n        onError === null || onError === void 0 ? void 0 : onError(ev);\n        setLoadState(ImageLoadState.error);\n    }, [onError]);\n    return [loadState, onImageLoaded, onImageError];\n}\nexport var ImageBase = React.forwardRef(function (props, forwardedRef) {\n    var frameElement = React.useRef();\n    var imageElement = React.useRef();\n    var _a = useLoadState(props, imageElement), loadState = _a[0], onImageLoaded = _a[1], onImageError = _a[2];\n    var imageProps = getNativeProps(props, imgProperties, [\n        'width',\n        'height',\n    ]);\n    var src = props.src, alt = props.alt, width = props.width, height = props.height, _b = props.shouldFadeIn, shouldFadeIn = _b === void 0 ? true : _b, shouldStartVisible = props.shouldStartVisible, className = props.className, imageFit = props.imageFit, role = props.role, maximizeFrame = props.maximizeFrame, styles = props.styles, theme = props.theme, loading = props.loading;\n    var coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        width: width,\n        height: height,\n        maximizeFrame: maximizeFrame,\n        shouldFadeIn: shouldFadeIn,\n        shouldStartVisible: shouldStartVisible,\n        isLoaded: loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n        isLandscape: coverStyle === ImageCoverStyle.landscape,\n        isCenter: imageFit === ImageFit.center,\n        isCenterContain: imageFit === ImageFit.centerContain,\n        isCenterCover: imageFit === ImageFit.centerCover,\n        isContain: imageFit === ImageFit.contain,\n        isCover: imageFit === ImageFit.cover,\n        isNone: imageFit === ImageFit.none,\n        isError: loadState === ImageLoadState.error,\n        isNotImageFit: imageFit === undefined,\n    });\n    // If image dimensions aren't specified, the natural size of the image is used.\n    return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: frameElement },\n        React.createElement(\"img\", __assign({}, imageProps, { onLoad: onImageLoaded, onError: onImageError, key: KEY_PREFIX + props.src || '', className: classNames.image, ref: useMergedRefs(imageElement, forwardedRef), src: src, alt: alt, role: role, loading: loading }))));\n});\nImageBase.displayName = 'ImageBase';\nfunction useCoverStyle(props, loadState, imageElement, frameElement) {\n    var previousLoadState = React.useRef(loadState);\n    var coverStyle = React.useRef();\n    if (coverStyle === undefined ||\n        (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)) {\n        coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n    }\n    previousLoadState.current = loadState;\n    return coverStyle.current;\n}\nfunction computeCoverStyle(props, loadState, imageElement, frameElement) {\n    var imageFit = props.imageFit, width = props.width, height = props.height;\n    // Do not compute cover style if it was already specified in props\n    if (props.coverStyle !== undefined) {\n        return props.coverStyle;\n    }\n    else if (loadState === ImageLoadState.loaded &&\n        (imageFit === ImageFit.cover ||\n            imageFit === ImageFit.contain ||\n            imageFit === ImageFit.centerContain ||\n            imageFit === ImageFit.centerCover) &&\n        imageElement.current &&\n        frameElement.current) {\n        // Determine the desired ratio using the width and height props.\n        // If those props aren't available, measure measure the frame.\n        var desiredRatio = void 0;\n        if (typeof width === 'number' &&\n            typeof height === 'number' &&\n            imageFit !== ImageFit.centerContain &&\n            imageFit !== ImageFit.centerCover) {\n            desiredRatio = width / height;\n        }\n        else {\n            desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n        }\n        // Examine the source image to determine its original ratio.\n        var naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n        // Should we crop from the top or the sides?\n        if (naturalRatio > desiredRatio) {\n            return ImageCoverStyle.landscape;\n        }\n    }\n    return ImageCoverStyle.portrait;\n}\n//# sourceMappingURL=Image.base.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-Image',\n    rootMaximizeFrame: 'ms-Image--maximizeFrame',\n    image: 'ms-Image-image',\n    imageCenter: 'ms-Image-image--center',\n    imageContain: 'ms-Image-image--contain',\n    imageCover: 'ms-Image-image--cover',\n    imageCenterContain: 'ms-Image-image--centerContain',\n    imageCenterCover: 'ms-Image-image--centerCover',\n    imageNone: 'ms-Image-image--none',\n    imageLandscape: 'ms-Image-image--landscape',\n    imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n    var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var ImageFitStyles = {\n        position: 'absolute',\n        left: '50% /* @noflip */',\n        top: '50%',\n        transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n    };\n    // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n    var window = getWindow();\n    var supportsObjectFit = window !== undefined &&\n        // eslint-disable-next-line @fluentui/max-len\n        // cast needed as vendor prefixed `msMaxTouchPoints` api is no longer part of TS lib declaration - introduced with TS 4.4\n        window.navigator.msMaxTouchPoints === undefined;\n    var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n        ? { width: '100%', height: 'auto' }\n        : { width: 'auto', height: '100%' };\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                overflow: 'hidden',\n            },\n            maximizeFrame && [\n                classNames.rootMaximizeFrame,\n                {\n                    height: '100%',\n                    width: '100%',\n                },\n            ],\n            isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n            (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n                position: 'relative',\n            },\n            className,\n        ],\n        image: [\n            classNames.image,\n            {\n                display: 'block',\n                opacity: 0,\n            },\n            isLoaded && [\n                'is-loaded',\n                {\n                    opacity: 1,\n                },\n            ],\n            isCenter && [classNames.imageCenter, ImageFitStyles],\n            isContain && [\n                classNames.imageContain,\n                supportsObjectFit && {\n                    width: '100%',\n                    height: '100%',\n                    objectFit: 'contain',\n                },\n                !supportsObjectFit && fallbackObjectFitStyles,\n                !supportsObjectFit && ImageFitStyles,\n            ],\n            isCover && [\n                classNames.imageCover,\n                supportsObjectFit && {\n                    width: '100%',\n                    height: '100%',\n                    objectFit: 'cover',\n                },\n                !supportsObjectFit && fallbackObjectFitStyles,\n                !supportsObjectFit && ImageFitStyles,\n            ],\n            isCenterContain && [\n                classNames.imageCenterContain,\n                isLandscape && {\n                    maxWidth: '100%',\n                },\n                !isLandscape && {\n                    maxHeight: '100%',\n                },\n                ImageFitStyles,\n            ],\n            isCenterCover && [\n                classNames.imageCenterCover,\n                isLandscape && {\n                    maxHeight: '100%',\n                },\n                !isLandscape && {\n                    maxWidth: '100%',\n                },\n                ImageFitStyles,\n            ],\n            isNone && [\n                classNames.imageNone,\n                {\n                    width: 'auto',\n                    height: 'auto',\n                },\n            ],\n            isNotImageFit && [\n                !!width &&\n                    !height && {\n                    height: 'auto',\n                    width: '100%',\n                },\n                !width &&\n                    !!height && {\n                    height: '100%',\n                    width: 'auto',\n                },\n                !!width &&\n                    !!height && {\n                    height: '100%',\n                    width: '100%',\n                },\n            ],\n            isLandscape && classNames.imageLandscape,\n            !isLandscape && classNames.imagePortrait,\n            !isLoaded && 'is-notLoaded',\n            shouldFadeIn && 'is-fadeIn',\n            isError && 'is-error',\n        ],\n    };\n};\n//# sourceMappingURL=Image.styles.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n    scope: 'Image',\n}, true);\nImage.displayName = 'Image';\n//# sourceMappingURL=Image.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n    /**\n     * The image is not scaled. The image is centered and cropped within the content box.\n     */\n    ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n    /**\n     * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n     * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n     * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n     */\n    ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n    /**\n     * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n     * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n     */\n    ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n    /**\n     * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n     * frame will have empty space.\n     */\n    ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n    /**\n     * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n     * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n     * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n     */\n    ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n    /**\n     * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n     * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n     * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n     */\n    ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n    /**\n     * The image will be shown at 100% height of container and the width will be scaled accordingly\n     */\n    ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n    /**\n     * The image will be shown at 100% width of container and the height will be scaled accordingly\n     */\n    ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n    /**\n     * The image has not yet been loaded, and there is no error yet.\n     */\n    ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n    /**\n     * The image has been loaded successfully.\n     */\n    ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n    /**\n     * An error has been encountered while loading the image.\n     */\n    ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n    /**\n     * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n     */\n    ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __spreadArray } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n    return keySequences.reduce(function (prevValue, keySequence) {\n        return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n    }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n    var overflowSequenceLen = overflowKeySequences.length;\n    var overflowSequence = __spreadArray([], overflowKeySequences, true).pop();\n    var newKeySequences = __spreadArray([], keySequences, true);\n    return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n    return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n    return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n    var describedby = ' ' + KTP_LAYER_ID;\n    if (!keySequences.length) {\n        // Return just the layer ID\n        return describedby;\n    }\n    return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n    var _a;\n    var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n    var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n    return children((_a = {},\n        _a[DATAKTP_TARGET] = keytipId,\n        _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n        _a['aria-describedby'] = ariaDescribedBy,\n        _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n    var uniqueId = React.useRef();\n    var keytipProps = options.keytipProps\n        ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n    var keytipManager = useConst(KeytipManager.getInstance());\n    var prevOptions = usePrevious(options);\n    // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n    useIsomorphicLayoutEffect(function () {\n        if (uniqueId.current &&\n            keytipProps &&\n            ((prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.keytipProps) !== options.keytipProps || (prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.disabled) !== options.disabled)) {\n            keytipManager.update(keytipProps, uniqueId.current);\n        }\n    });\n    useIsomorphicLayoutEffect(function () {\n        // Register Keytip in KeytipManager\n        if (keytipProps) {\n            uniqueId.current = keytipManager.register(keytipProps);\n        }\n        return function () {\n            // Unregister Keytip in KeytipManager\n            keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n        };\n        // this is meant to run only at mount, and updates are handled separately\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n    var nativeKeytipProps = {\n        ariaDescribedBy: undefined,\n        keytipId: undefined,\n    };\n    if (keytipProps) {\n        nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n    }\n    return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n    // Add the parent overflow sequence if necessary\n    var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n    // Construct aria-describedby and data-ktp-id attributes\n    var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n    var keySequences = __spreadArray([], newKeytipProps.keySequences, true);\n    if (newKeytipProps.overflowSetSequence) {\n        keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n    }\n    var keytipId = sequencesToID(keySequences);\n    return {\n        ariaDescribedBy: ariaDescribedBy,\n        keytipId: keytipId,\n    };\n}\n//# sourceMappingURL=useKeytipData.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction({\n    // Label is used a lot by other components.\n    // It's likely to see expected cases which pass different className to the Label.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\nvar LabelBase = /** @class */ (function (_super) {\n    __extends(LabelBase, _super);\n    function LabelBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    LabelBase.prototype.render = function () {\n        var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;\n        var classNames = getClassNames(styles, {\n            className: className,\n            disabled: disabled,\n            required: required,\n            theme: theme,\n        });\n        return (React.createElement(RootType, __assign({}, getNativeProps(this.props, divProperties), { className: classNames.root }), children));\n    };\n    return LabelBase;\n}(React.Component));\nexport { LabelBase };\n//# sourceMappingURL=Label.base.js.map","import { styled } from '../../Utilities';\nimport { LabelBase } from './Label.base';\nimport { getStyles } from './Label.styles';\nexport var Label = styled(LabelBase, getStyles, undefined, {\n    scope: 'Label',\n});\n//# sourceMappingURL=Label.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nexport var getStyles = function (props) {\n    var _a;\n    var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;\n    var semanticColors = theme.semanticColors;\n    // Tokens\n    var labelFontWeight = FontWeights.semibold;\n    var labelColor = semanticColors.bodyText;\n    var labelDisabledColor = semanticColors.disabledBodyText;\n    var labelRequiredStarColor = semanticColors.errorText;\n    return {\n        root: [\n            'ms-Label',\n            theme.fonts.medium,\n            {\n                fontWeight: labelFontWeight,\n                color: labelColor,\n                boxSizing: 'border-box',\n                boxShadow: 'none',\n                margin: 0,\n                display: 'block',\n                padding: '5px 0',\n                wordWrap: 'break-word',\n                overflowWrap: 'break-word',\n            },\n            disabled && {\n                color: labelDisabledColor,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                    _a),\n            },\n            required && {\n                selectors: {\n                    '::after': {\n                        content: \"' *'\",\n                        color: labelRequiredStarColor,\n                        paddingRight: 12,\n                    },\n                },\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=Label.styles.js.map","import * as React from 'react';\nconst PortalCompatContext = React.createContext(undefined);\nconst portalCompatContextDefaultValue = ()=>()=>undefined;\nexport const PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n    var _React_useContext;\n    return (_React_useContext = React.useContext(PortalCompatContext)) !== null && _React_useContext !== void 0 ? _React_useContext : portalCompatContextDefaultValue;\n}\n","import * as React from 'react';\nimport { FocusRectsContext } from './useFocusRects';\nexport var FocusRectsProvider = function (props) {\n    var providerRef = props.providerRef, layerRoot = props.layerRoot;\n    var registeredProviders = React.useState([])[0];\n    var parentContext = React.useContext(FocusRectsContext);\n    // Inherit the parent context if it exists, unless this is a layer root.\n    // This allows the topmost provider element in the DOM tree to handle the focus events.\n    // Since layers are in a separate HTML tree from their parent, they shouldn't use the parent's providerRef.\n    var inheritParentContext = parentContext !== undefined && !layerRoot;\n    var context = React.useMemo(function () {\n        return inheritParentContext\n            ? undefined\n            : {\n                providerRef: providerRef,\n                registeredProviders: registeredProviders,\n                registerProvider: function (ref) {\n                    // Register this child provider with the current context, and any parent contexts\n                    registeredProviders.push(ref);\n                    parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerProvider(ref);\n                },\n                unregisterProvider: function (ref) {\n                    parentContext === null || parentContext === void 0 ? void 0 : parentContext.unregisterProvider(ref);\n                    var i = registeredProviders.indexOf(ref);\n                    if (i >= 0) {\n                        registeredProviders.splice(i, 1);\n                    }\n                },\n            };\n    }, [providerRef, registeredProviders, parentContext, inheritParentContext]);\n    React.useEffect(function () {\n        if (context) {\n            context.registerProvider(context.providerRef);\n            return function () { return context.unregisterProvider(context.providerRef); };\n        }\n    }, [context]);\n    // Create a new context provider if this is not inheriting from the parent.\n    if (context) {\n        return React.createElement(FocusRectsContext.Provider, { value: context }, props.children);\n    }\n    else {\n        return React.createElement(React.Fragment, null, props.children);\n    }\n};\n//# sourceMappingURL=FocusRectsProvider.js.map","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n    if (oldSettings === void 0) { oldSettings = {}; }\n    var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n    return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n    if (oldSettings === void 0) { oldSettings = {}; }\n    var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n    return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n    return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n    return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n    if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n    return function (oldScopedSettings) {\n        var newScopedSettings = __assign({}, oldScopedSettings);\n        for (var scopeName in scopedSettingsFromProps) {\n            if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n                newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n            }\n        }\n        return newScopedSettings;\n    };\n}\n//# sourceMappingURL=mergeSettings.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n *\n * @deprecated This component is deprecated for purpose of applying theme to components\n * as of `@fluentui/react` version 8. Use `ThemeProvider` for applying theme instead.\n */\nvar Customizer = /** @class */ (function (_super) {\n    __extends(Customizer, _super);\n    function Customizer() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n        return _this;\n    }\n    Customizer.prototype.componentDidMount = function () {\n        Customizations.observe(this._onCustomizationChange);\n    };\n    Customizer.prototype.componentWillUnmount = function () {\n        Customizations.unobserve(this._onCustomizationChange);\n    };\n    Customizer.prototype.render = function () {\n        var _this = this;\n        var contextTransform = this.props.contextTransform;\n        return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n            var newContext = mergeCustomizations(_this.props, parentContext);\n            if (contextTransform) {\n                newContext = contextTransform(newContext);\n            }\n            return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n        }));\n    };\n    return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n    var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n    return {\n        customizations: {\n            settings: mergeSettings(customizations.settings, props.settings),\n            scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n            inCustomizerContext: true,\n        },\n    };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getDocument, getNativeProps, getRTL, memoizeFunction, Customizer, FocusRectsProvider, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (_a) {\n    var theme = _a.theme, dir = _a.dir;\n    var contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n    var pageDir = getRTL() ? 'rtl' : 'ltr';\n    var componentDir = dir ? dir : contextDir;\n    return {\n        // If Fabric dir !== contextDir\n        // Or If contextDir !== pageDir\n        // Then we need to set dir of the Fabric root\n        rootDir: componentDir !== contextDir || componentDir !== pageDir ? componentDir : dir,\n        // If dir !== contextDir || pageDir\n        // then set contextual theme around content\n        needsTheme: componentDir !== contextDir,\n    };\n};\nexport var FabricBase = React.forwardRef(function (props, ref) {\n    var className = props.className, theme = props.theme, applyTheme = props.applyTheme, applyThemeToBody = props.applyThemeToBody, styles = props.styles;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        applyTheme: applyTheme,\n        className: className,\n    });\n    var rootElement = React.useRef(null);\n    useApplyThemeToBody(applyThemeToBody, classNames, rootElement);\n    return React.createElement(React.Fragment, null, useRenderedContent(props, classNames, rootElement, ref));\n});\nFabricBase.displayName = 'FabricBase';\nfunction useRenderedContent(props, _a, rootElement, ref) {\n    var root = _a.root;\n    var _b = props.as, Root = _b === void 0 ? 'div' : _b, dir = props.dir, theme = props.theme;\n    var divProps = getNativeProps(props, divProperties, ['dir']);\n    var _c = getDir(props), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n    var renderedContent = (React.createElement(FocusRectsProvider, { providerRef: rootElement },\n        React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: root, ref: useMergedRefs(rootElement, ref) }))));\n    // Create the contextual theme if component direction does not match parent direction.\n    if (needsTheme) {\n        // Disabling ThemeProvider here because theme doesn't need to be re-provided by ThemeProvider if dir has changed.\n        renderedContent = (\n        // eslint-disable-next-line deprecation/deprecation\n        React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n    }\n    return renderedContent;\n}\nfunction useApplyThemeToBody(applyThemeToBody, _a, rootElement) {\n    var bodyThemed = _a.bodyThemed;\n    React.useEffect(function () {\n        if (applyThemeToBody) {\n            var currentDoc_1 = getDocument(rootElement.current);\n            if (currentDoc_1) {\n                currentDoc_1.body.classList.add(bodyThemed);\n                return function () {\n                    currentDoc_1.body.classList.remove(bodyThemed);\n                };\n            }\n        }\n    }, [bodyThemed, applyThemeToBody, rootElement]);\n    return rootElement;\n}\n//# sourceMappingURL=Fabric.base.js.map","import { __assign } from \"tslib\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \"react-portal-compat-context\" uses v9 configs via path aliases\nimport { usePortalCompat } from '@fluentui/react-portal-compat-context';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, css, getDocument, setPortalAttribute, setVirtualParent, FocusRectsProvider, FocusRectsContext, IsFocusVisibleClassName, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost, createDefaultLayerHost, } from './Layer.notification';\nimport { useIsomorphicLayoutEffect, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFocusVisibility = function (providerRef) {\n    if (providerRef === null || providerRef === void 0 ? void 0 : providerRef.current) {\n        return providerRef.current.classList.contains(IsFocusVisibleClassName);\n    }\n    return false;\n};\nexport var LayerBase = React.forwardRef(function (props, ref) {\n    var registerPortalEl = usePortalCompat();\n    var rootRef = React.useRef(null);\n    var mergedRef = useMergedRefs(rootRef, ref);\n    var layerRef = React.useRef();\n    var fabricElementRef = React.useRef(null);\n    var focusContext = React.useContext(FocusRectsContext);\n    // Tracks if the layer mount events need to be raised.\n    // Required to allow the DOM to render after the layer element is added.\n    var _a = React.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1];\n    // Sets the focus visible className when the FocusRectsProvider for the layer is rendered\n    // This allows the current focus visibility style to be carried over to the layer content\n    var focusRectsRef = React.useCallback(function (el) {\n        var isFocusVisible = getFocusVisibility(focusContext === null || focusContext === void 0 ? void 0 : focusContext.providerRef);\n        if (el && isFocusVisible) {\n            el.classList.add(IsFocusVisibleClassName);\n        }\n    }, [focusContext]);\n    var children = props.children, className = props.className, eventBubblingEnabled = props.eventBubblingEnabled, fabricProps = props.fabricProps, hostId = props.hostId, insertFirst = props.insertFirst, _b = props.onLayerDidMount, onLayerDidMount = _b === void 0 ? function () { return undefined; } : _b, \n    // eslint-disable-next-line deprecation/deprecation\n    _c = props.onLayerMounted, \n    // eslint-disable-next-line deprecation/deprecation\n    onLayerMounted = _c === void 0 ? function () { return undefined; } : _c, onLayerWillUnmount = props.onLayerWillUnmount, styles = props.styles, theme = props.theme;\n    var fabricRef = useMergedRefs(fabricElementRef, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.ref, focusRectsRef);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        isNotHost: !hostId,\n    });\n    // Returns the user provided hostId props element, the default target selector,\n    // or undefined if document doesn't exist.\n    var getHost = function (doc) {\n        var _a, _b;\n        if (hostId) {\n            var layerHost = getLayerHost(hostId);\n            if (layerHost) {\n                return (_a = layerHost.rootRef.current) !== null && _a !== void 0 ? _a : null;\n            }\n            return (_b = doc.getElementById(hostId)) !== null && _b !== void 0 ? _b : null;\n        }\n        else {\n            var defaultHostSelector = getDefaultTarget();\n            // Find the host.\n            var host = defaultHostSelector ? doc.querySelector(defaultHostSelector) : null;\n            // If no host is available, create a container for injecting layers in.\n            // Having a container scopes layout computation.\n            if (!host) {\n                host = createDefaultLayerHost(doc);\n            }\n            return host;\n        }\n    };\n    // Removes the current layer element's parentNode and runs onLayerWillUnmount prop if provided.\n    var removeLayerElement = function () {\n        onLayerWillUnmount === null || onLayerWillUnmount === void 0 ? void 0 : onLayerWillUnmount();\n        var elem = layerRef.current;\n        // Clear ref before removing from the DOM\n        layerRef.current = undefined;\n        if (elem && elem.parentNode) {\n            elem.parentNode.removeChild(elem);\n        }\n    };\n    // If a doc or host exists, it will remove and update layer parentNodes.\n    var createLayerElement = function () {\n        var _a;\n        var doc = getDocument(rootRef.current);\n        if (!doc) {\n            return;\n        }\n        var host = getHost(doc);\n        if (!host) {\n            return;\n        }\n        // Remove and re-create any previous existing layer elements.\n        removeLayerElement();\n        var el = ((_a = host.ownerDocument) !== null && _a !== void 0 ? _a : doc).createElement('div');\n        el.className = classNames.root;\n        setPortalAttribute(el);\n        setVirtualParent(el, rootRef.current);\n        insertFirst ? host.insertBefore(el, host.firstChild) : host.appendChild(el);\n        layerRef.current = el;\n        setNeedRaiseLayerMount(true);\n    };\n    useIsomorphicLayoutEffect(function () {\n        createLayerElement();\n        // Check if the user provided a hostId prop and register the layer with the ID.\n        if (hostId) {\n            registerLayer(hostId, createLayerElement);\n        }\n        var unregisterPortalEl = layerRef.current ? registerPortalEl(layerRef.current) : undefined;\n        return function () {\n            if (unregisterPortalEl) {\n                unregisterPortalEl();\n            }\n            removeLayerElement();\n            if (hostId) {\n                unregisterLayer(hostId, createLayerElement);\n            }\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should run if the hostId updates.\n    }, [hostId]);\n    React.useEffect(function () {\n        if (layerRef.current && needRaiseLayerMount) {\n            onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n            onLayerDidMount === null || onLayerDidMount === void 0 ? void 0 : onLayerDidMount();\n            setNeedRaiseLayerMount(false);\n        }\n    }, [needRaiseLayerMount, onLayerMounted, onLayerDidMount]);\n    useDebugWarnings(props);\n    return (React.createElement(\"span\", { className: \"ms-layer\", ref: mergedRef }, layerRef.current &&\n        ReactDOM.createPortal(React.createElement(FocusRectsProvider, { layerRoot: true, providerRef: fabricRef },\n            React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && getFilteredEvents()), fabricProps, { className: css(classNames.content, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.className), ref: fabricRef }), children)), layerRef.current)));\n});\nLayerBase.displayName = 'LayerBase';\nvar filteredEventProps;\nvar onFilterEvent = function (ev) {\n    // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n    // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n    // event name rather than ev.bubble.\n    if (ev.eventPhase === Event.BUBBLING_PHASE &&\n        ev.type !== 'mouseenter' &&\n        ev.type !== 'mouseleave' &&\n        ev.type !== 'touchstart' &&\n        ev.type !== 'touchend') {\n        ev.stopPropagation();\n    }\n};\nfunction getFilteredEvents() {\n    if (!filteredEventProps) {\n        filteredEventProps = {};\n        [\n            'onClick',\n            'onContextMenu',\n            'onDoubleClick',\n            'onDrag',\n            'onDragEnd',\n            'onDragEnter',\n            'onDragExit',\n            'onDragLeave',\n            'onDragOver',\n            'onDragStart',\n            'onDrop',\n            'onMouseDown',\n            'onMouseEnter',\n            'onMouseLeave',\n            'onMouseMove',\n            'onMouseOver',\n            'onMouseOut',\n            'onMouseUp',\n            'onTouchMove',\n            'onTouchStart',\n            'onTouchCancel',\n            'onTouchEnd',\n            'onKeyDown',\n            'onKeyPress',\n            'onKeyUp',\n            'onFocus',\n            'onBlur',\n            'onChange',\n            'onInput',\n            'onInvalid',\n            'onSubmit',\n        ].forEach(function (name) { return (filteredEventProps[name] = onFilterEvent); });\n    }\n    return filteredEventProps;\n}\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'Layer',\n            props: props,\n            deprecations: { onLayerMounted: 'onLayerDidMount' },\n        });\n    }\n}\n//# sourceMappingURL=Layer.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar inheritFont = { fontFamily: 'inherit' };\nvar GlobalClassNames = {\n    root: 'ms-Fabric',\n    bodyThemed: 'ms-Fabric-bodyThemed',\n};\nexport var getStyles = function (props) {\n    var applyTheme = props.applyTheme, className = props.className, preventBlanketFontInheritance = props.preventBlanketFontInheritance, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                color: theme.palette.neutralPrimary,\n            },\n            !preventBlanketFontInheritance && {\n                '& button': inheritFont,\n                '& input': inheritFont,\n                '& textarea': inheritFont,\n            },\n            // apply theme to only if applyTheme is true\n            applyTheme && {\n                color: theme.semanticColors.bodyText,\n                backgroundColor: theme.semanticColors.bodyBackground,\n            },\n            className,\n        ],\n        bodyThemed: [\n            {\n                backgroundColor: theme.semanticColors.bodyBackground,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Fabric.styles.js.map","import { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\n/**\n * @deprecated This component is deprecated as of `@fluentui/react` version 8. Use `ThemeProvider` instead.\n */\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n    scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar defaultHostId = 'fluent-default-layer-host';\nvar _defaultHostSelector = \"#\".concat(defaultHostId);\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n    if (!_layersByHostId[hostId]) {\n        _layersByHostId[hostId] = [];\n    }\n    _layersByHostId[hostId].push(callback);\n    var layerHosts = _layerHostsById[hostId];\n    if (layerHosts) {\n        for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n            var layerHost = layerHosts_1[_i];\n            layerHost.notifyLayersChanged();\n        }\n    }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n    var layers = _layersByHostId[hostId];\n    if (layers) {\n        var idx = layers.indexOf(callback);\n        if (idx >= 0) {\n            layers.splice(idx, 1);\n            if (layers.length === 0) {\n                delete _layersByHostId[hostId];\n            }\n        }\n    }\n    var layerHosts = _layerHostsById[hostId];\n    if (layerHosts) {\n        for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n            var layerHost = layerHosts_2[_i];\n            layerHost.notifyLayersChanged();\n        }\n    }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n    var layers = _layerHostsById[hostId];\n    return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n    var layerHosts = _layerHostsById[hostId];\n    return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n    var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n    // Insert this at the start of an array to avoid race conditions between mount and unmount.\n    // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n    // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n    // get the new one even if the old one is around briefly.\n    layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n    var layerHosts = _layerHostsById[hostId];\n    if (layerHosts) {\n        var idx = layerHosts.indexOf(layerHost);\n        if (idx >= 0) {\n            layerHosts.splice(idx, 1);\n        }\n        if (layerHosts.length === 0) {\n            delete _layerHostsById[hostId];\n        }\n    }\n}\n/**\n * When no default layer host is provided, this function is executed to create the default host.\n */\nexport function createDefaultLayerHost(doc) {\n    var host = doc.createElement('div');\n    host.setAttribute('id', defaultHostId);\n    host.style.cssText = 'position:fixed;z-index:1000000';\n    doc === null || doc === void 0 ? void 0 : doc.body.appendChild(host);\n    return host;\n}\n/**\n * This function can be optionally called to clean up the default layer host as needed.\n */\nexport function cleanupDefaultLayerHost(doc) {\n    var host = doc.querySelector(\"#\".concat(defaultHostId));\n    if (host) {\n        doc.removeChild(host);\n    }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n    if (_layersByHostId[id]) {\n        _layersByHostId[id].forEach(function (callback) { return callback(); });\n    }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsy value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n    _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n    return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n    var virtualChild = child;\n    var virtualParent = parent;\n    if (!virtualChild._virtual) {\n        virtualChild._virtual = {\n            children: [],\n        };\n    }\n    var oldParent = virtualChild._virtual.parent;\n    if (oldParent && oldParent !== parent) {\n        // Remove the child from its old parent.\n        var index = oldParent._virtual.children.indexOf(virtualChild);\n        if (index > -1) {\n            oldParent._virtual.children.splice(index, 1);\n        }\n    }\n    virtualChild._virtual.parent = virtualParent || undefined;\n    if (virtualParent) {\n        if (!virtualParent._virtual) {\n            virtualParent._virtual = {\n                children: [],\n            };\n        }\n        virtualParent._virtual.children.push(virtualChild);\n    }\n}\n//# sourceMappingURL=setVirtualParent.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Layer',\n    rootNoHost: 'ms-Layer--fixed',\n    content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n    var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            isNotHost && [\n                classNames.rootNoHost,\n                {\n                    position: 'fixed',\n                    zIndex: ZIndexes.Layer,\n                    top: 0,\n                    left: 0,\n                    bottom: 0,\n                    right: 0,\n                    visibility: 'hidden',\n                },\n            ],\n            className,\n        ],\n        content: [\n            classNames.content,\n            {\n                visibility: 'visible',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n    scope: 'Layer',\n    fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { classNamesFunction, useFocusRects } from '@fluentui/utilities';\nvar getClassNames = classNamesFunction();\n/**\n * The useLink hook processes the Link component props and returns\n * state, slots and slotProps for consumption by the component.\n */\nexport var useLink = function (props, forwardedRef) {\n    var as = props.as, className = props.className, disabled = props.disabled, href = props.href, onClick = props.onClick, styles = props.styles, theme = props.theme, underline = props.underline;\n    var rootRef = React.useRef(null);\n    var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n    useComponentRef(props, rootRef);\n    useFocusRects(rootRef);\n    var classNames = getClassNames(styles, {\n        className: className,\n        isButton: !href,\n        isDisabled: disabled,\n        isUnderlined: underline,\n        theme: theme,\n    });\n    var _onClick = function (ev) {\n        if (disabled) {\n            ev.preventDefault();\n        }\n        else if (onClick) {\n            onClick(ev);\n        }\n    };\n    var rootType = as ? as : href ? 'a' : 'button';\n    var state = {};\n    var slots = { root: rootType };\n    var slotProps = {\n        root: __assign(__assign({}, adjustPropsForRootType(rootType, props)), { 'aria-disabled': disabled, className: classNames.root, onClick: _onClick, ref: mergedRootRefs }),\n    };\n    return { state: state, slots: slots, slotProps: slotProps };\n};\nvar useComponentRef = function (props, link) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        focus: function () {\n            if (link.current) {\n                link.current.focus();\n            }\n        },\n    }); }, [link]);\n};\nvar adjustPropsForRootType = function (RootType, props) {\n    // Deconstruct the props so we remove props like `as`, `theme` and `styles`\n    // as those will always be removed. We also take some props that are optional\n    // based on the RootType.\n    var as = props.as, disabled = props.disabled, target = props.target, href = props.href, theme = props.theme, getStyles = props.getStyles, styles = props.styles, componentRef = props.componentRef, underline = props.underline, restProps = __rest(props, [\"as\", \"disabled\", \"target\", \"href\", \"theme\", \"getStyles\", \"styles\", \"componentRef\", \"underline\"]);\n    // RootType will be a string if we're dealing with an html component\n    if (typeof RootType === 'string') {\n        // Remove the disabled prop for anchor elements\n        if (RootType === 'a') {\n            return __assign({ target: target, href: disabled ? undefined : href }, restProps);\n        }\n        // Add the type='button' prop for button elements\n        if (RootType === 'button') {\n            return __assign({ type: 'button', disabled: disabled }, restProps);\n        }\n        // Remove the target and href props for all other non anchor elements\n        return __assign(__assign({}, restProps), { disabled: disabled });\n    }\n    // Retain all props except 'as' for ReactComponents\n    return __assign({ target: target, href: href, disabled: disabled }, restProps);\n};\n//# sourceMappingURL=useLink.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useLink } from './useLink';\nexport var LinkBase = React.forwardRef(function (props, ref) {\n    var _a = useLink(props, ref), slots = _a.slots, slotProps = _a.slotProps;\n    return React.createElement(slots.root, __assign({}, slotProps.root));\n});\nLinkBase.displayName = 'LinkBase';\n//# sourceMappingURL=Link.base.js.map","import { styled } from '@fluentui/utilities';\nimport { LinkBase } from './Link.base';\nimport { getStyles } from './Link.styles';\nexport var Link = styled(LinkBase, getStyles, undefined, {\n    scope: 'Link',\n});\n//# sourceMappingURL=Link.js.map","import { getGlobalClassNames, HighContrastSelector } from '@fluentui/style-utilities';\nexport var GlobalClassNames = {\n    root: 'ms-Link',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g;\n    var className = props.className, isButton = props.isButton, isDisabled = props.isDisabled, isUnderlined = props.isUnderlined, theme = props.theme;\n    var semanticColors = theme.semanticColors;\n    // Tokens\n    var linkColor = semanticColors.link;\n    var linkInteractedColor = semanticColors.linkHovered;\n    var linkDisabledColor = semanticColors.disabledText;\n    var focusBorderColor = semanticColors.focusBorder;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                color: linkColor,\n                outline: 'none',\n                fontSize: 'inherit',\n                fontWeight: 'inherit',\n                textDecoration: isUnderlined ? 'underline' : 'none',\n                selectors: (_a = {\n                        '.ms-Fabric--isFocusVisible &:focus': {\n                            // Can't use getFocusStyle because it doesn't support wrapping links\n                            // https://github.com/microsoft/fluentui/issues/4883#issuecomment-406743543\n                            // Using box-shadow and outline allows the focus rect to wrap links that span multiple lines\n                            // and helps the focus rect avoid getting clipped.\n                            boxShadow: \"0 0 0 1px \".concat(focusBorderColor, \" inset\"),\n                            outline: \"1px auto \".concat(focusBorderColor),\n                            selectors: (_b = {},\n                                _b[HighContrastSelector] = {\n                                    outline: '1px solid WindowText',\n                                },\n                                _b),\n                        }\n                    },\n                    _a[HighContrastSelector] = {\n                        // For IE high contrast mode\n                        borderBottom: 'none',\n                    },\n                    _a),\n            },\n            isButton && {\n                background: 'none',\n                backgroundColor: 'transparent',\n                border: 'none',\n                cursor: 'pointer',\n                display: 'inline',\n                margin: 0,\n                overflow: 'inherit',\n                padding: 0,\n                textAlign: 'left',\n                textOverflow: 'inherit',\n                userSelect: 'text',\n                borderBottom: '1px solid transparent',\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = {\n                        color: 'LinkText',\n                        forcedColorAdjust: 'none',\n                    },\n                    _c),\n            },\n            !isButton && {\n                selectors: (_d = {},\n                    _d[HighContrastSelector] = {\n                        // This is mainly for MessageBar, which sets MsHighContrastAdjust: none by default\n                        MsHighContrastAdjust: 'auto',\n                        forcedColorAdjust: 'auto',\n                    },\n                    _d),\n            },\n            isDisabled && [\n                'is-disabled',\n                {\n                    color: linkDisabledColor,\n                    cursor: 'default',\n                },\n                {\n                    selectors: (_e = {\n                            '&:link, &:visited': {\n                                pointerEvents: 'none',\n                            }\n                        },\n                        _e[HighContrastSelector] = {\n                            // We need to specify the color in High Contrast because of the case of Links rendering as buttons.\n                            color: 'GrayText',\n                        },\n                        _e),\n                },\n            ],\n            !isDisabled && {\n                selectors: {\n                    '&:active, &:hover, &:active:hover': {\n                        color: linkInteractedColor,\n                        textDecoration: 'underline',\n                        selectors: (_f = {},\n                            _f[HighContrastSelector] = {\n                                color: 'LinkText',\n                            },\n                            _f),\n                    },\n                    '&:focus': {\n                        color: linkColor,\n                        selectors: (_g = {},\n                            _g[HighContrastSelector] = {\n                                color: 'LinkText',\n                            },\n                            _g),\n                    },\n                },\n            },\n            classNames.root,\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=Link.styles.js.map","export var getScrollHeight = function (el) {\n    if (el === undefined) {\n        return 0;\n    }\n    var scrollHeight = 0;\n    if ('scrollHeight' in el) {\n        scrollHeight = el.scrollHeight;\n    }\n    else if ('document' in el) {\n        scrollHeight = el.document.documentElement.scrollHeight;\n    }\n    // No need to round as scrollHeight is already rounded for us.\n    // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n    return scrollHeight;\n};\nexport var getScrollYPosition = function (el) {\n    if (el === undefined) {\n        return 0;\n    }\n    var scrollPos = 0;\n    if ('scrollTop' in el) {\n        scrollPos = el.scrollTop;\n    }\n    else if ('scrollY' in el) {\n        scrollPos = el.scrollY;\n    }\n    // Round this value to an integer as it may be fractional.\n    // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop\n    // See: https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY\n    return Math.ceil(scrollPos);\n};\nexport var setScrollYPosition = function (el, pos) {\n    if ('scrollTop' in el) {\n        el.scrollTop = pos;\n    }\n    else if ('scrollY' in el) {\n        el.scrollTo(el.scrollX, pos);\n    }\n};\n//# sourceMappingURL=scroll.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, canUseDOM, css, divProperties, findIndex, findScrollableParent, getNativeProps, getParent, getWindow, initializeComponentRef, } from '../../Utilities';\nimport { ScrollToMode } from './List.types';\nimport { composeRenderFunction } from '../../Utilities';\nimport { getScrollHeight, getScrollYPosition, setScrollYPosition } from './utils/scroll';\nvar RESIZE_DELAY = 16;\nvar MIN_SCROLL_UPDATE_DELAY = 100;\nvar MAX_SCROLL_UPDATE_DELAY = 500;\nvar IDLE_DEBOUNCE_DELAY = 200;\n// The amount of time to wait before declaring that the list isn't scrolling\nvar DONE_SCROLLING_WAIT = 500;\nvar DEFAULT_ITEMS_PER_PAGE = 10;\nvar DEFAULT_PAGE_HEIGHT = 30;\nvar DEFAULT_RENDERED_WINDOWS_BEHIND = 2;\nvar DEFAULT_RENDERED_WINDOWS_AHEAD = 2;\nvar PAGE_KEY_PREFIX = 'page-';\nvar SPACER_KEY_PREFIX = 'spacer-';\nvar EMPTY_RECT = {\n    top: -1,\n    bottom: -1,\n    left: -1,\n    right: -1,\n    width: 0,\n    height: 0,\n};\n// Naming expensive measures so that they're named in profiles.\nvar _measurePageRect = function (element) { return element.getBoundingClientRect(); };\nvar _measureSurfaceRect = _measurePageRect;\nvar _measureScrollRect = _measurePageRect;\n/**\n * The List renders virtualized pages of items. Each page's item count is determined by the getItemCountForPage callback\n * if provided by the caller, or 10 as default. Each page's height is determined by the getPageHeight callback if\n * provided by the caller, or by cached measurements if available, or by a running average, or a default fallback.\n *\n * The algorithm for rendering pages works like this:\n *\n * 1. Predict visible pages based on \"current measure data\" (page heights, surface position, visible window)\n * 2. If changes are necessary, apply changes (add/remove pages)\n * 3. For pages that are added, measure the page heights if we need to using getBoundingClientRect\n * 4. If measurements don't match predictions, update measure data and goto step 1 asynchronously\n *\n * Measuring too frequently can pull performance down significantly. To compensate, we cache measured values so that\n * we can avoid re-measuring during operations that should not alter heights, like scrolling.\n *\n * To optimize glass rendering performance, onShouldVirtualize can be set. When onShouldVirtualize return false,\n * List will run in fast mode (not virtualized) to render all items without any measurements to improve page load time.\n * And we start doing measurements and rendering in virtualized mode when items grows larger than this threshold.\n *\n * However, certain operations can make measure data stale. For example, resizing the list, or passing in new props,\n * or forcing an update change cause pages to shrink/grow. When these operations occur, we increment a measureVersion\n * number, which we associate with cached measurements and use to determine if a remeasure should occur.\n */\nvar List = /** @class */ (function (_super) {\n    __extends(List, _super);\n    function List(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._surface = React.createRef();\n        _this._pageRefs = {};\n        _this._getDerivedStateFromProps = function (nextProps, previousState) {\n            if (nextProps.items !== _this.props.items ||\n                nextProps.renderCount !== _this.props.renderCount ||\n                nextProps.startIndex !== _this.props.startIndex ||\n                nextProps.version !== _this.props.version ||\n                (!previousState.hasMounted && _this.props.renderEarly && canUseDOM())) {\n                // We have received new items so we want to make sure that initially we only render a single window to\n                // fill the currently visible rect, and then later render additional windows.\n                _this._resetRequiredWindows();\n                _this._requiredRect = null;\n                _this._measureVersion++;\n                _this._invalidatePageCache();\n                return _this._updatePages(nextProps, previousState);\n            }\n            return previousState;\n        };\n        _this._onRenderRoot = function (props) {\n            var rootRef = props.rootRef, surfaceElement = props.surfaceElement, divProps = props.divProps;\n            return (React.createElement(\"div\", __assign({ ref: rootRef }, divProps), surfaceElement));\n        };\n        _this._onRenderSurface = function (props) {\n            var surfaceRef = props.surfaceRef, pageElements = props.pageElements, divProps = props.divProps;\n            return (React.createElement(\"div\", __assign({ ref: surfaceRef }, divProps), pageElements));\n        };\n        _this._onRenderPage = function (pageProps, defaultRender) {\n            var _a;\n            var _b = _this.props, onRenderCell = _b.onRenderCell, onRenderCellConditional = _b.onRenderCellConditional, role = _b.role;\n            var _c = pageProps.page, _d = _c.items, items = _d === void 0 ? [] : _d, startIndex = _c.startIndex, divProps = __rest(pageProps, [\"page\"]);\n            // only assign list item role if no role is assigned\n            var cellRole = role === undefined ? 'listitem' : 'presentation';\n            var cells = [];\n            for (var i = 0; i < items.length; i++) {\n                var index = startIndex + i;\n                var item = items[i];\n                var itemKey = _this.props.getKey ? _this.props.getKey(item, index) : item && item.key;\n                if (itemKey === null || itemKey === undefined) {\n                    itemKey = index;\n                }\n                var renderCell = onRenderCellConditional !== null && onRenderCellConditional !== void 0 ? onRenderCellConditional : onRenderCell;\n                var cell = (_a = renderCell === null || renderCell === void 0 ? void 0 : renderCell(item, index, !_this.props.ignoreScrollingState ? _this.state.isScrolling : undefined)) !== null && _a !== void 0 ? _a : null;\n                if (!onRenderCellConditional || cell) {\n                    cells.push(React.createElement(\"div\", { role: cellRole, className: 'ms-List-cell', key: itemKey, \"data-list-index\": index, \"data-automationid\": \"ListCell\" }, cell));\n                }\n            }\n            return React.createElement(\"div\", __assign({}, divProps), cells);\n        };\n        initializeComponentRef(_this);\n        _this.state = {\n            pages: [],\n            isScrolling: false,\n            getDerivedStateFromProps: _this._getDerivedStateFromProps,\n            hasMounted: false,\n        };\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        _this._estimatedPageHeight = 0;\n        _this._totalEstimates = 0;\n        _this._requiredWindowsAhead = 0;\n        _this._requiredWindowsBehind = 0;\n        // Track the measure version for everything.\n        _this._measureVersion = 0;\n        // Ensure that scrolls are lazy updated.\n        _this._onAsyncScroll = _this._async.debounce(_this._onAsyncScroll, MIN_SCROLL_UPDATE_DELAY, {\n            leading: false,\n            maxWait: MAX_SCROLL_UPDATE_DELAY,\n        });\n        _this._onAsyncIdle = _this._async.debounce(_this._onAsyncIdle, IDLE_DEBOUNCE_DELAY, {\n            leading: false,\n        });\n        _this._onAsyncResize = _this._async.debounce(_this._onAsyncResize, RESIZE_DELAY, {\n            leading: false,\n        });\n        _this._onScrollingDone = _this._async.debounce(_this._onScrollingDone, DONE_SCROLLING_WAIT, {\n            leading: false,\n        });\n        _this._cachedPageHeights = {};\n        _this._estimatedPageHeight = 0;\n        _this._focusedIndex = -1;\n        _this._pageCache = {};\n        return _this;\n    }\n    List.getDerivedStateFromProps = function (nextProps, previousState) {\n        return previousState.getDerivedStateFromProps(nextProps, previousState);\n    };\n    Object.defineProperty(List.prototype, \"pageRefs\", {\n        get: function () {\n            return this._pageRefs;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Scroll to the given index. By default will bring the page the specified item is on into the view. If a callback\n     * to measure the height of an individual item is specified, will only scroll to bring the specific item into view.\n     *\n     * Note: with items of variable height and no passed in `getPageHeight` method, the list might jump after scrolling\n     * when windows before/ahead are being rendered, and the estimated height is replaced using actual elements.\n     *\n     * @param index - Index of item to scroll to\n     * @param measureItem - Optional callback to measure the height of an individual item\n     * @param scrollToMode - Optional defines where in the window the item should be positioned to when scrolling\n     */\n    List.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n        if (scrollToMode === void 0) { scrollToMode = ScrollToMode.auto; }\n        var startIndex = this.props.startIndex;\n        var renderCount = this._getRenderCount();\n        var endIndex = startIndex + renderCount;\n        var allowedRect = this._allowedRect;\n        var scrollTop = 0;\n        var itemsPerPage = 1;\n        for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {\n            var pageSpecification = this._getPageSpecification(this.props, itemIndex, allowedRect);\n            var pageHeight = pageSpecification.height;\n            itemsPerPage = pageSpecification.itemCount;\n            var requestedIndexIsInPage = itemIndex <= index && itemIndex + itemsPerPage > index;\n            if (requestedIndexIsInPage) {\n                // We have found the page. If the user provided a way to measure an individual item, we will try to scroll in\n                // just the given item, otherwise we'll only bring the page into view\n                if (measureItem && this._scrollElement) {\n                    var scrollRect = _measureScrollRect(this._scrollElement);\n                    var scrollPosition = getScrollYPosition(this._scrollElement);\n                    var scrollWindow = {\n                        top: scrollPosition,\n                        bottom: scrollPosition + scrollRect.height,\n                    };\n                    // Adjust for actual item position within page\n                    var itemPositionWithinPage = index - itemIndex;\n                    for (var itemIndexInPage = 0; itemIndexInPage < itemPositionWithinPage; ++itemIndexInPage) {\n                        scrollTop += measureItem(itemIndex + itemIndexInPage);\n                    }\n                    var scrollBottom = scrollTop + measureItem(index);\n                    // If scrollToMode is set to something other than auto, we always want to\n                    // scroll the item into a specific position on the page.\n                    switch (scrollToMode) {\n                        case ScrollToMode.top:\n                            setScrollYPosition(this._scrollElement, scrollTop);\n                            return;\n                        case ScrollToMode.bottom:\n                            setScrollYPosition(this._scrollElement, scrollBottom - scrollRect.height);\n                            return;\n                        case ScrollToMode.center:\n                            setScrollYPosition(this._scrollElement, (scrollTop + scrollBottom - scrollRect.height) / 2);\n                            return;\n                        case ScrollToMode.auto:\n                        default:\n                            break;\n                    }\n                    var itemIsFullyVisible = scrollTop >= scrollWindow.top && scrollBottom <= scrollWindow.bottom;\n                    if (itemIsFullyVisible) {\n                        // Item is already visible, do nothing.\n                        return;\n                    }\n                    var itemIsPartiallyAbove = scrollTop < scrollWindow.top;\n                    var itemIsPartiallyBelow = scrollBottom > scrollWindow.bottom;\n                    if (itemIsPartiallyAbove) {\n                        //  We will just scroll to 'scrollTop'\n                        //  .------.   - scrollTop\n                        //  |Item  |\n                        //  | .----|-. - scrollWindow.top\n                        //  '------' |\n                        //    |      |\n                        //    '------'\n                    }\n                    else if (itemIsPartiallyBelow) {\n                        //  Adjust scrollTop position to just bring in the element\n                        // .------.  - scrollTop\n                        // |      |\n                        // | .------.\n                        // '-|----' | - scrollWindow.bottom\n                        //   | Item |\n                        //   '------' - scrollBottom\n                        scrollTop = scrollBottom - scrollRect.height;\n                    }\n                }\n                if (this._scrollElement) {\n                    setScrollYPosition(this._scrollElement, scrollTop);\n                }\n                return;\n            }\n            scrollTop += pageHeight;\n        }\n    };\n    List.prototype.getStartItemIndexInView = function (measureItem) {\n        var pages = this.state.pages || [];\n        for (var _i = 0, pages_1 = pages; _i < pages_1.length; _i++) {\n            var page = pages_1[_i];\n            var isPageVisible = !page.isSpacer && (this._scrollTop || 0) >= page.top && (this._scrollTop || 0) <= page.top + page.height;\n            if (isPageVisible) {\n                if (!measureItem) {\n                    var rowHeight = Math.floor(page.height / page.itemCount);\n                    return page.startIndex + Math.floor((this._scrollTop - page.top) / rowHeight);\n                }\n                else {\n                    var totalRowHeight = 0;\n                    for (var itemIndex = page.startIndex; itemIndex < page.startIndex + page.itemCount; itemIndex++) {\n                        var rowHeight = measureItem(itemIndex);\n                        if (page.top + totalRowHeight <= this._scrollTop &&\n                            this._scrollTop < page.top + totalRowHeight + rowHeight) {\n                            return itemIndex;\n                        }\n                        else {\n                            totalRowHeight += rowHeight;\n                        }\n                    }\n                }\n            }\n        }\n        return 0;\n    };\n    List.prototype.componentDidMount = function () {\n        this._scrollElement = findScrollableParent(this._root.current);\n        this._scrollTop = 0;\n        this.setState(__assign(__assign({}, this._updatePages(this.props, this.state)), { hasMounted: true }));\n        this._measureVersion++;\n        this._events.on(window, 'resize', this._onAsyncResize);\n        if (this._root.current) {\n            this._events.on(this._root.current, 'focus', this._onFocus, true);\n        }\n        if (this._scrollElement) {\n            this._events.on(this._scrollElement, 'scroll', this._onScroll);\n            this._events.on(this._scrollElement, 'scroll', this._onAsyncScroll);\n        }\n    };\n    List.prototype.componentDidUpdate = function (previousProps, previousState) {\n        // Multiple updates may have been queued, so the callback will reflect all of them.\n        // Re-fetch the current props and states to avoid using a stale props or state captured in the closure.\n        var finalProps = this.props;\n        var finalState = this.state;\n        if (this.state.pagesVersion !== previousState.pagesVersion) {\n            // If we weren't provided with the page height, measure the pages\n            if (!finalProps.getPageHeight) {\n                // If measured version is invalid since we've updated the DOM\n                var heightsChanged = this._updatePageMeasurements(finalState.pages);\n                // On first render, we should re-measure so that we don't get a visual glitch.\n                if (heightsChanged) {\n                    this._materializedRect = null;\n                    if (!this._hasCompletedFirstRender) {\n                        this._hasCompletedFirstRender = true;\n                        this.setState(this._updatePages(finalProps, finalState));\n                    }\n                    else {\n                        this._onAsyncScroll();\n                    }\n                }\n                else {\n                    // Enqueue an idle bump.\n                    this._onAsyncIdle();\n                }\n            }\n            else {\n                // Enqueue an idle bump\n                this._onAsyncIdle();\n            }\n            // Notify the caller that rendering the new pages has completed\n            if (finalProps.onPagesUpdated) {\n                finalProps.onPagesUpdated(finalState.pages);\n            }\n        }\n    };\n    List.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n        delete this._scrollElement;\n    };\n    List.prototype.shouldComponentUpdate = function (newProps, newState) {\n        var oldPages = this.state.pages;\n        var newPages = newState.pages;\n        var shouldComponentUpdate = false;\n        // Update if the page stops scrolling\n        if (!newState.isScrolling && this.state.isScrolling) {\n            return true;\n        }\n        if (newProps.version !== this.props.version) {\n            return true;\n        }\n        if (newProps.className !== this.props.className) {\n            return true;\n        }\n        if (newProps.items === this.props.items && oldPages.length === newPages.length) {\n            for (var i = 0; i < oldPages.length; i++) {\n                var oldPage = oldPages[i];\n                var newPage = newPages[i];\n                if (oldPage.key !== newPage.key || oldPage.itemCount !== newPage.itemCount) {\n                    shouldComponentUpdate = true;\n                    break;\n                }\n            }\n        }\n        else {\n            shouldComponentUpdate = true;\n        }\n        return shouldComponentUpdate;\n    };\n    List.prototype.forceUpdate = function () {\n        this._invalidatePageCache();\n        // Ensure that when the list is force updated we update the pages first before render.\n        this._updateRenderRects(this.props, this.state, true);\n        this.setState(this._updatePages(this.props, this.state));\n        this._measureVersion++;\n        _super.prototype.forceUpdate.call(this);\n    };\n    /**\n     * Get the current height the list and it's pages.\n     */\n    List.prototype.getTotalListHeight = function () {\n        return this._surfaceRect.height;\n    };\n    List.prototype.render = function () {\n        var _a = this.props, className = _a.className, _b = _a.role, role = _b === void 0 ? 'list' : _b, onRenderSurface = _a.onRenderSurface, onRenderRoot = _a.onRenderRoot;\n        var _c = this.state.pages, pages = _c === void 0 ? [] : _c;\n        var pageElements = [];\n        var divProps = getNativeProps(this.props, divProperties);\n        for (var _i = 0, pages_2 = pages; _i < pages_2.length; _i++) {\n            var page = pages_2[_i];\n            pageElements.push(this._renderPage(page));\n        }\n        var finalOnRenderSurface = onRenderSurface\n            ? composeRenderFunction(onRenderSurface, this._onRenderSurface)\n            : this._onRenderSurface;\n        var finalOnRenderRoot = onRenderRoot\n            ? composeRenderFunction(onRenderRoot, this._onRenderRoot)\n            : this._onRenderRoot;\n        return finalOnRenderRoot({\n            rootRef: this._root,\n            pages: pages,\n            surfaceElement: finalOnRenderSurface({\n                surfaceRef: this._surface,\n                pages: pages,\n                pageElements: pageElements,\n                divProps: {\n                    role: 'presentation',\n                    className: 'ms-List-surface',\n                },\n            }),\n            divProps: __assign(__assign({}, divProps), { className: css('ms-List', className), role: pageElements.length > 0 ? role : undefined, 'aria-label': pageElements.length > 0 ? divProps['aria-label'] : undefined }),\n        });\n    };\n    List.prototype._shouldVirtualize = function (props) {\n        if (props === void 0) { props = this.props; }\n        var onShouldVirtualize = props.onShouldVirtualize;\n        return !onShouldVirtualize || onShouldVirtualize(props);\n    };\n    /**\n     * when props.items change or forceUpdate called, throw away cached pages\n     */\n    List.prototype._invalidatePageCache = function () {\n        this._pageCache = {};\n    };\n    List.prototype._renderPage = function (page) {\n        var _this = this;\n        var usePageCache = this.props.usePageCache;\n        var cachedPage;\n        // if usePageCache is set and cached page element can be found, just return cached page\n        if (usePageCache) {\n            cachedPage = this._pageCache[page.key];\n            if (cachedPage && cachedPage.pageElement) {\n                return cachedPage.pageElement;\n            }\n        }\n        var pageStyle = this._getPageStyle(page);\n        var _a = this.props.onRenderPage, onRenderPage = _a === void 0 ? this._onRenderPage : _a;\n        var pageElement = onRenderPage({\n            page: page,\n            className: 'ms-List-page',\n            key: page.key,\n            ref: function (newRef) {\n                _this._pageRefs[page.key] = newRef;\n            },\n            style: pageStyle,\n            role: 'presentation',\n        }, this._onRenderPage);\n        // cache the first page for now since it is re-rendered a lot times unnecessarily.\n        // todo: a more aggresive caching mechanism is to cache pages constaining the items not changed.\n        // now we re-render pages too frequently, for example, props.items increased from 30 to 60, although the\n        // first 30 items did not change, we still re-rendered all of them in this props.items change.\n        if (usePageCache && page.startIndex === 0) {\n            this._pageCache[page.key] = {\n                page: page,\n                pageElement: pageElement,\n            };\n        }\n        return pageElement;\n    };\n    /** Generate the style object for the page. */\n    List.prototype._getPageStyle = function (page) {\n        var getPageStyle = this.props.getPageStyle;\n        return __assign(__assign({}, (getPageStyle ? getPageStyle(page) : {})), (!page.items\n            ? {\n                height: page.height,\n            }\n            : {}));\n    };\n    /** Track the last item index focused so that we ensure we keep it rendered. */\n    List.prototype._onFocus = function (ev) {\n        var target = ev.target;\n        while (target !== this._surface.current) {\n            var indexString = target.getAttribute('data-list-index');\n            if (indexString) {\n                this._focusedIndex = Number(indexString);\n                break;\n            }\n            target = getParent(target);\n        }\n    };\n    /**\n     * Called synchronously to reset the required render range to 0 on scrolling. After async scroll has executed,\n     * we will call onAsyncIdle which will reset it back to it's correct value.\n     */\n    List.prototype._onScroll = function () {\n        if (!this.state.isScrolling && !this.props.ignoreScrollingState) {\n            this.setState({ isScrolling: true });\n        }\n        this._resetRequiredWindows();\n        this._onScrollingDone();\n    };\n    List.prototype._resetRequiredWindows = function () {\n        this._requiredWindowsAhead = 0;\n        this._requiredWindowsBehind = 0;\n    };\n    /**\n     * Debounced method to asynchronously update the visible region on a scroll event.\n     */\n    List.prototype._onAsyncScroll = function () {\n        this._updateRenderRects(this.props, this.state);\n        // Only update pages when the visible rect falls outside of the materialized rect.\n        if (!this._materializedRect || !_isContainedWithin(this._requiredRect, this._materializedRect)) {\n            this.setState(this._updatePages(this.props, this.state));\n        }\n        else {\n            // console.log('requiredRect contained in materialized', this._requiredRect, this._materializedRect);\n        }\n    };\n    /**\n     * This is an async debounced method that will try and increment the windows we render. If we can increment\n     * either, we increase the amount we render and re-evaluate.\n     */\n    List.prototype._onAsyncIdle = function () {\n        var _a = this.props, renderedWindowsAhead = _a.renderedWindowsAhead, renderedWindowsBehind = _a.renderedWindowsBehind;\n        var _b = this, requiredWindowsAhead = _b._requiredWindowsAhead, requiredWindowsBehind = _b._requiredWindowsBehind;\n        var windowsAhead = Math.min(renderedWindowsAhead, requiredWindowsAhead + 1);\n        var windowsBehind = Math.min(renderedWindowsBehind, requiredWindowsBehind + 1);\n        if (windowsAhead !== requiredWindowsAhead || windowsBehind !== requiredWindowsBehind) {\n            // console.log('idling', windowsBehind, windowsAhead);\n            this._requiredWindowsAhead = windowsAhead;\n            this._requiredWindowsBehind = windowsBehind;\n            this._updateRenderRects(this.props, this.state);\n            this.setState(this._updatePages(this.props, this.state));\n        }\n        if (renderedWindowsAhead > windowsAhead || renderedWindowsBehind > windowsBehind) {\n            // Async increment on next tick.\n            this._onAsyncIdle();\n        }\n    };\n    /**\n     * Function to call when the list is done scrolling.\n     * This function is debounced.\n     */\n    List.prototype._onScrollingDone = function () {\n        if (!this.props.ignoreScrollingState) {\n            this.setState({ isScrolling: false });\n        }\n    };\n    List.prototype._onAsyncResize = function () {\n        this.forceUpdate();\n    };\n    List.prototype._updatePages = function (nextProps, previousState) {\n        // console.log('updating pages');\n        if (!this._requiredRect) {\n            this._updateRenderRects(nextProps, previousState);\n        }\n        var newListState = this._buildPages(nextProps, previousState);\n        var oldListPages = previousState.pages;\n        this._notifyPageChanges(oldListPages, newListState.pages, this.props);\n        return __assign(__assign(__assign({}, previousState), newListState), { pagesVersion: {} });\n    };\n    /**\n     * Notify consumers that the rendered pages have changed\n     * @param oldPages - The old pages\n     * @param newPages - The new pages\n     * @param props - The props to use\n     */\n    List.prototype._notifyPageChanges = function (oldPages, newPages, props) {\n        var onPageAdded = props.onPageAdded, onPageRemoved = props.onPageRemoved;\n        if (onPageAdded || onPageRemoved) {\n            var renderedIndexes = {};\n            for (var _i = 0, oldPages_1 = oldPages; _i < oldPages_1.length; _i++) {\n                var page = oldPages_1[_i];\n                if (page.items) {\n                    renderedIndexes[page.startIndex] = page;\n                }\n            }\n            for (var _a = 0, newPages_1 = newPages; _a < newPages_1.length; _a++) {\n                var page = newPages_1[_a];\n                if (page.items) {\n                    if (!renderedIndexes[page.startIndex]) {\n                        this._onPageAdded(page);\n                    }\n                    else {\n                        delete renderedIndexes[page.startIndex];\n                    }\n                }\n            }\n            for (var index in renderedIndexes) {\n                if (renderedIndexes.hasOwnProperty(index)) {\n                    this._onPageRemoved(renderedIndexes[index]);\n                }\n            }\n        }\n    };\n    List.prototype._updatePageMeasurements = function (pages) {\n        var heightChanged = false;\n        // when not in virtualize mode, we render all the items without page measurement\n        if (!this._shouldVirtualize()) {\n            return heightChanged;\n        }\n        for (var i = 0; i < pages.length; i++) {\n            var page = pages[i];\n            if (page.items) {\n                heightChanged = this._measurePage(page) || heightChanged;\n            }\n        }\n        return heightChanged;\n    };\n    /**\n     * Given a page, measure its dimensions, update cache.\n     * @returns True if the height has changed.\n     */\n    List.prototype._measurePage = function (page) {\n        var hasChangedHeight = false;\n        var pageElement = this._pageRefs[page.key];\n        var cachedHeight = this._cachedPageHeights[page.startIndex];\n        // console.log('   * measure attempt', page.startIndex, cachedHeight);\n        if (pageElement &&\n            this._shouldVirtualize() &&\n            (!cachedHeight || cachedHeight.measureVersion !== this._measureVersion)) {\n            var newClientRect = {\n                width: pageElement.clientWidth,\n                height: pageElement.clientHeight,\n            };\n            if (newClientRect.height || newClientRect.width) {\n                hasChangedHeight = page.height !== newClientRect.height;\n                // console.warn(' *** expensive page measure', page.startIndex, page.height, newClientRect.height);\n                page.height = newClientRect.height;\n                this._cachedPageHeights[page.startIndex] = {\n                    height: newClientRect.height,\n                    measureVersion: this._measureVersion,\n                };\n                this._estimatedPageHeight = Math.round((this._estimatedPageHeight * this._totalEstimates + newClientRect.height) / (this._totalEstimates + 1));\n                this._totalEstimates++;\n            }\n        }\n        return hasChangedHeight;\n    };\n    /** Called when a page has been added to the DOM. */\n    List.prototype._onPageAdded = function (page) {\n        var onPageAdded = this.props.onPageAdded;\n        // console.log('page added', page.startIndex, this.state.pages.map(page => page.key).join(', '));\n        if (onPageAdded) {\n            onPageAdded(page);\n        }\n    };\n    /** Called when a page has been removed from the DOM. */\n    List.prototype._onPageRemoved = function (page) {\n        var onPageRemoved = this.props.onPageRemoved;\n        // console.log('  --- page removed', page.startIndex, this.state.pages.map(page => page.key).join(', '));\n        if (onPageRemoved) {\n            onPageRemoved(page);\n        }\n    };\n    /** Build up the pages that should be rendered. */\n    List.prototype._buildPages = function (props, state) {\n        var renderCount = props.renderCount;\n        var items = props.items, startIndex = props.startIndex, getPageHeight = props.getPageHeight;\n        renderCount = this._getRenderCount(props);\n        var materializedRect = __assign({}, EMPTY_RECT);\n        var pages = [];\n        var itemsPerPage = 1;\n        var pageTop = 0;\n        var currentSpacer = null;\n        var focusedIndex = this._focusedIndex;\n        var endIndex = startIndex + renderCount;\n        var shouldVirtualize = this._shouldVirtualize(props);\n        // First render is very important to track; when we render cells, we have no idea of estimated page height.\n        // So we should default to rendering only the first page so that we can get information.\n        // However if the user provides a measure function, let's just assume they know the right heights.\n        var isFirstRender = this._estimatedPageHeight === 0 && !getPageHeight;\n        var allowedRect = this._allowedRect;\n        var _loop_1 = function (itemIndex) {\n            var pageSpecification = this_1._getPageSpecification(props, itemIndex, allowedRect);\n            var pageHeight = pageSpecification.height;\n            var pageData = pageSpecification.data;\n            var key = pageSpecification.key;\n            itemsPerPage = pageSpecification.itemCount;\n            var pageBottom = pageTop + pageHeight - 1;\n            var isPageRendered = findIndex(state.pages, function (page) { return !!page.items && page.startIndex === itemIndex; }) > -1;\n            var isPageInAllowedRange = !allowedRect || (pageBottom >= allowedRect.top && pageTop <= allowedRect.bottom);\n            var isPageInRequiredRange = !this_1._requiredRect || (pageBottom >= this_1._requiredRect.top && pageTop <= this_1._requiredRect.bottom);\n            var isPageVisible = (!isFirstRender && (isPageInRequiredRange || (isPageInAllowedRange && isPageRendered))) || !shouldVirtualize;\n            var isPageFocused = focusedIndex >= itemIndex && focusedIndex < itemIndex + itemsPerPage;\n            var isFirstPage = itemIndex === startIndex;\n            // console.log('building page', itemIndex, 'pageTop: ' + pageTop, 'inAllowed: ' +\n            // isPageInAllowedRange, 'inRequired: ' + isPageInRequiredRange);\n            // Only render whats visible, focused, or first page,\n            // or when running in fast rendering mode (not in virtualized mode), we render all current items in pages\n            if (isPageVisible || isPageFocused || isFirstPage) {\n                if (currentSpacer) {\n                    pages.push(currentSpacer);\n                    currentSpacer = null;\n                }\n                var itemsInPage = Math.min(itemsPerPage, endIndex - itemIndex);\n                var newPage = this_1._createPage(key, items.slice(itemIndex, itemIndex + itemsInPage), itemIndex, undefined, undefined, pageData);\n                newPage.top = pageTop;\n                newPage.height = pageHeight;\n                if (this_1._visibleRect && this_1._visibleRect.bottom) {\n                    newPage.isVisible = pageBottom >= this_1._visibleRect.top && pageTop <= this_1._visibleRect.bottom;\n                }\n                pages.push(newPage);\n                if (isPageInRequiredRange && this_1._allowedRect) {\n                    _mergeRect(materializedRect, {\n                        top: pageTop,\n                        bottom: pageBottom,\n                        height: pageHeight,\n                        left: allowedRect.left,\n                        right: allowedRect.right,\n                        width: allowedRect.width,\n                    });\n                }\n            }\n            else {\n                if (!currentSpacer) {\n                    currentSpacer = this_1._createPage(SPACER_KEY_PREFIX + itemIndex, undefined, itemIndex, 0, undefined, pageData, true /*isSpacer*/);\n                }\n                currentSpacer.height = (currentSpacer.height || 0) + (pageBottom - pageTop) + 1;\n                currentSpacer.itemCount += itemsPerPage;\n            }\n            pageTop += pageBottom - pageTop + 1;\n            // in virtualized mode, we render need to render first page then break and measure,\n            // otherwise, we render all items without measurement to make rendering fast\n            if (isFirstRender && shouldVirtualize) {\n                return \"break\";\n            }\n        };\n        var this_1 = this;\n        for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {\n            var state_1 = _loop_1(itemIndex);\n            if (state_1 === \"break\")\n                break;\n        }\n        if (currentSpacer) {\n            currentSpacer.key = SPACER_KEY_PREFIX + 'end';\n            pages.push(currentSpacer);\n        }\n        this._materializedRect = materializedRect;\n        // console.log('materialized: ', materializedRect);\n        return __assign(__assign({}, state), { pages: pages, measureVersion: this._measureVersion });\n    };\n    List.prototype._getPageSpecification = function (props, itemIndex, visibleRect) {\n        var getPageSpecification = props.getPageSpecification;\n        if (getPageSpecification) {\n            var pageData = getPageSpecification(itemIndex, visibleRect, props.items);\n            var _a = pageData.itemCount, itemCount = _a === void 0 ? this._getItemCountForPage(itemIndex, visibleRect) : _a;\n            var _b = pageData.height, height = _b === void 0 ? this._getPageHeight(itemIndex, visibleRect, itemCount) : _b;\n            return {\n                itemCount: itemCount,\n                height: height,\n                data: pageData.data,\n                key: pageData.key,\n            };\n        }\n        else {\n            var itemCount = this._getItemCountForPage(itemIndex, visibleRect);\n            return {\n                itemCount: itemCount,\n                height: this._getPageHeight(itemIndex, visibleRect, itemCount),\n            };\n        }\n    };\n    /**\n     * Get the pixel height of a give page. Will use the props getPageHeight first, and if not provided, fallback to\n     * cached height, or estimated page height, or default page height.\n     */\n    List.prototype._getPageHeight = function (itemIndex, visibleRect, itemsPerPage) {\n        if (this.props.getPageHeight) {\n            return this.props.getPageHeight(itemIndex, visibleRect, itemsPerPage, this.props.items);\n        }\n        else {\n            var cachedHeight = this._cachedPageHeights[itemIndex];\n            return cachedHeight ? cachedHeight.height : this._estimatedPageHeight || DEFAULT_PAGE_HEIGHT;\n        }\n    };\n    List.prototype._getItemCountForPage = function (itemIndex, visibileRect) {\n        var itemsPerPage = this.props.getItemCountForPage\n            ? this.props.getItemCountForPage(itemIndex, visibileRect)\n            : DEFAULT_ITEMS_PER_PAGE;\n        return itemsPerPage ? itemsPerPage : DEFAULT_ITEMS_PER_PAGE;\n    };\n    List.prototype._createPage = function (pageKey, items, startIndex, count, style, data, isSpacer) {\n        if (startIndex === void 0) { startIndex = -1; }\n        if (count === void 0) { count = items ? items.length : 0; }\n        if (style === void 0) { style = {}; }\n        pageKey = pageKey || PAGE_KEY_PREFIX + startIndex;\n        var cachedPage = this._pageCache[pageKey];\n        if (cachedPage && cachedPage.page) {\n            return cachedPage.page;\n        }\n        return {\n            key: pageKey,\n            startIndex: startIndex,\n            itemCount: count,\n            items: items,\n            style: style,\n            top: 0,\n            height: 0,\n            data: data,\n            isSpacer: isSpacer || false,\n        };\n    };\n    List.prototype._getRenderCount = function (props) {\n        var _a = props || this.props, items = _a.items, startIndex = _a.startIndex, renderCount = _a.renderCount;\n        return renderCount === undefined ? (items ? items.length - startIndex : 0) : renderCount;\n    };\n    /** Calculate the visible rect within the list where top: 0 and left: 0 is the top/left of the list. */\n    List.prototype._updateRenderRects = function (props, state, forceUpdate) {\n        var renderedWindowsAhead = props.renderedWindowsAhead, renderedWindowsBehind = props.renderedWindowsBehind;\n        var pages = state.pages;\n        // when not in virtualize mode, we render all items without measurement to optimize page rendering perf\n        if (!this._shouldVirtualize(props)) {\n            return;\n        }\n        var surfaceRect = this._surfaceRect || __assign({}, EMPTY_RECT);\n        var scrollHeight = getScrollHeight(this._scrollElement);\n        var scrollTop = getScrollYPosition(this._scrollElement);\n        // WARNING: EXPENSIVE CALL! We need to know the surface top relative to the window.\n        // This needs to be called to recalculate when new pages should be loaded.\n        // We check to see how far we've scrolled and if it's further than a third of a page we run it again.\n        if (this._surface.current &&\n            (forceUpdate ||\n                !pages ||\n                !this._surfaceRect ||\n                !scrollHeight ||\n                scrollHeight !== this._scrollHeight ||\n                Math.abs(this._scrollTop - scrollTop) > this._estimatedPageHeight / 3)) {\n            surfaceRect = this._surfaceRect = _measureSurfaceRect(this._surface.current);\n            this._scrollTop = scrollTop;\n        }\n        // If the scroll height has changed, something in the container likely resized and\n        // we should redo the page heights incase their content resized.\n        if (forceUpdate || !scrollHeight || scrollHeight !== this._scrollHeight) {\n            this._measureVersion++;\n        }\n        this._scrollHeight = scrollHeight || 0;\n        // If the surface is above the container top or below the container bottom, or if this is not the first\n        // render return empty rect.\n        // The first time the list gets rendered we need to calculate the rectangle. The width of the list is\n        // used to calculate the width of the list items.\n        var visibleTop = Math.max(0, -surfaceRect.top);\n        var win = getWindow(this._root.current);\n        var visibleRect = {\n            top: visibleTop,\n            left: surfaceRect.left,\n            bottom: visibleTop + win.innerHeight,\n            right: surfaceRect.right,\n            width: surfaceRect.width,\n            height: win.innerHeight,\n        };\n        // The required/allowed rects are adjusted versions of the visible rect.\n        this._requiredRect = _expandRect(visibleRect, this._requiredWindowsBehind, this._requiredWindowsAhead);\n        this._allowedRect = _expandRect(visibleRect, renderedWindowsBehind, renderedWindowsAhead);\n        // store the visible rect for later use.\n        this._visibleRect = visibleRect;\n    };\n    List.defaultProps = {\n        startIndex: 0,\n        onRenderCell: function (item, index, containsFocus) { return React.createElement(React.Fragment, null, (item && item.name) || ''); },\n        onRenderCellConditional: undefined,\n        renderedWindowsAhead: DEFAULT_RENDERED_WINDOWS_AHEAD,\n        renderedWindowsBehind: DEFAULT_RENDERED_WINDOWS_BEHIND,\n    };\n    return List;\n}(React.Component));\nexport { List };\nfunction _expandRect(rect, pagesBefore, pagesAfter) {\n    var top = rect.top - pagesBefore * rect.height;\n    var height = rect.height + (pagesBefore + pagesAfter) * rect.height;\n    return {\n        top: top,\n        bottom: top + height,\n        height: height,\n        left: rect.left,\n        right: rect.right,\n        width: rect.width,\n    };\n}\nfunction _isContainedWithin(innerRect, outerRect) {\n    return (innerRect.top >= outerRect.top &&\n        innerRect.left >= outerRect.left &&\n        innerRect.bottom <= outerRect.bottom &&\n        innerRect.right <= outerRect.right);\n}\nfunction _mergeRect(targetRect, newRect) {\n    targetRect.top = newRect.top < targetRect.top || targetRect.top === -1 ? newRect.top : targetRect.top;\n    targetRect.left = newRect.left < targetRect.left || targetRect.left === -1 ? newRect.left : targetRect.left;\n    targetRect.bottom =\n        newRect.bottom > targetRect.bottom || targetRect.bottom === -1 ? newRect.bottom : targetRect.bottom;\n    targetRect.right = newRect.right > targetRect.right || targetRect.right === -1 ? newRect.right : targetRect.right;\n    targetRect.width = targetRect.right - targetRect.left + 1;\n    targetRect.height = targetRect.bottom - targetRect.top + 1;\n    return targetRect;\n}\n//# sourceMappingURL=List.js.map","/**\n * {@docCategory List}\n */\nexport var ScrollToMode = {\n    /**\n     * Does not make any consideration to where in the viewport the item should align to.\n     */\n    auto: 0,\n    /**\n     * Attempts to scroll the list so the top of the desired item is aligned with the top of the viewport.\n     */\n    top: 1,\n    /**\n     * Attempts to scroll the list so the bottom of the desired item is aligned with the bottom of the viewport.\n     */\n    bottom: 2,\n    /**\n     * Attempts to scroll the list so the desired item is in the exact center of the viewport.\n     */\n    center: 3,\n};\n//# sourceMappingURL=List.types.js.map","import { EventGroup } from './EventGroup';\nimport { findScrollableParent } from './scroll';\nimport { getRect } from './dom/getRect';\nvar SCROLL_ITERATION_DELAY = 16;\nvar SCROLL_GUTTER = 100;\nvar MAX_SCROLL_VELOCITY = 15;\n/**\n * AutoScroll simply hooks up mouse events given a parent element, and scrolls the container\n * up/down depending on how close the mouse is to the top/bottom of the container.\n *\n * Once you don't want autoscroll any more, just dispose the helper and it will unhook events.\n *\n * @public\n * {@docCategory AutoScroll}\n */\nvar AutoScroll = /** @class */ (function () {\n    function AutoScroll(element) {\n        this._events = new EventGroup(this);\n        this._scrollableParent = findScrollableParent(element);\n        this._incrementScroll = this._incrementScroll.bind(this);\n        this._scrollRect = getRect(this._scrollableParent);\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        if (this._scrollableParent === window) {\n            this._scrollableParent = document.body;\n        }\n        if (this._scrollableParent) {\n            this._events.on(window, 'mousemove', this._onMouseMove, true);\n            this._events.on(window, 'touchmove', this._onTouchMove, true);\n        }\n    }\n    AutoScroll.prototype.dispose = function () {\n        this._events.dispose();\n        this._stopScroll();\n    };\n    AutoScroll.prototype._onMouseMove = function (ev) {\n        this._computeScrollVelocity(ev);\n    };\n    AutoScroll.prototype._onTouchMove = function (ev) {\n        if (ev.touches.length > 0) {\n            this._computeScrollVelocity(ev);\n        }\n    };\n    AutoScroll.prototype._computeScrollVelocity = function (ev) {\n        if (!this._scrollRect) {\n            return;\n        }\n        var clientX;\n        var clientY;\n        if ('clientX' in ev) {\n            clientX = ev.clientX;\n            clientY = ev.clientY;\n        }\n        else {\n            clientX = ev.touches[0].clientX;\n            clientY = ev.touches[0].clientY;\n        }\n        var scrollRectTop = this._scrollRect.top;\n        var scrollRectLeft = this._scrollRect.left;\n        var scrollClientBottom = scrollRectTop + this._scrollRect.height - SCROLL_GUTTER;\n        var scrollClientRight = scrollRectLeft + this._scrollRect.width - SCROLL_GUTTER;\n        // variables to use for alternating scroll direction\n        var scrollRect;\n        var clientDirection;\n        var scrollClient;\n        // if either of these conditions are met we are scrolling vertically else horizontally\n        if (clientY < scrollRectTop + SCROLL_GUTTER || clientY > scrollClientBottom) {\n            clientDirection = clientY;\n            scrollRect = scrollRectTop;\n            scrollClient = scrollClientBottom;\n            this._isVerticalScroll = true;\n        }\n        else {\n            clientDirection = clientX;\n            scrollRect = scrollRectLeft;\n            scrollClient = scrollClientRight;\n            this._isVerticalScroll = false;\n        }\n        // calculate scroll velocity and direction\n        if (clientDirection < scrollRect + SCROLL_GUTTER) {\n            this._scrollVelocity = Math.max(-MAX_SCROLL_VELOCITY, -MAX_SCROLL_VELOCITY * ((SCROLL_GUTTER - (clientDirection - scrollRect)) / SCROLL_GUTTER));\n        }\n        else if (clientDirection > scrollClient) {\n            this._scrollVelocity = Math.min(MAX_SCROLL_VELOCITY, MAX_SCROLL_VELOCITY * ((clientDirection - scrollClient) / SCROLL_GUTTER));\n        }\n        else {\n            this._scrollVelocity = 0;\n        }\n        if (this._scrollVelocity) {\n            this._startScroll();\n        }\n        else {\n            this._stopScroll();\n        }\n    };\n    AutoScroll.prototype._startScroll = function () {\n        if (!this._timeoutId) {\n            this._incrementScroll();\n        }\n    };\n    AutoScroll.prototype._incrementScroll = function () {\n        if (this._scrollableParent) {\n            if (this._isVerticalScroll) {\n                this._scrollableParent.scrollTop += Math.round(this._scrollVelocity);\n            }\n            else {\n                this._scrollableParent.scrollLeft += Math.round(this._scrollVelocity);\n            }\n        }\n        this._timeoutId = setTimeout(this._incrementScroll, SCROLL_ITERATION_DELAY);\n    };\n    AutoScroll.prototype._stopScroll = function () {\n        if (this._timeoutId) {\n            clearTimeout(this._timeoutId);\n            delete this._timeoutId;\n        }\n    };\n    return AutoScroll;\n}());\nexport { AutoScroll };\n//# sourceMappingURL=AutoScroll.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, AutoScroll, classNamesFunction, findScrollableParent, getDistanceBetweenPoints, getRTL, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n// We want to make the marquee selection start when the user drags a minimum distance. Otherwise we'd start\n// the drag even if they just click an item without moving.\nvar MIN_DRAG_DISTANCE = 5;\n/**\n * MarqueeSelection component abstracts managing a draggable rectangle which sets items selected/not selected.\n * Elements which have data-selectable-index attributes are queried and measured once to determine if they\n * fall within the bounds of the rectangle. The measure is memoized during the drag as a performance optimization\n * so if the items change sizes while dragging, that could cause incorrect results.\n */\nvar MarqueeSelectionBase = /** @class */ (function (_super) {\n    __extends(MarqueeSelectionBase, _super);\n    function MarqueeSelectionBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._onMouseDown = function (ev) {\n            var _a = _this.props, isEnabled = _a.isEnabled, onShouldStartSelection = _a.onShouldStartSelection;\n            // Ensure the mousedown is within the boundaries of the target. If not, it may have been a click on a scrollbar.\n            if (_this._isMouseEventOnScrollbar(ev)) {\n                return;\n            }\n            if (_this._isInSelectionToggle(ev)) {\n                return;\n            }\n            if (!_this._isTouch &&\n                isEnabled &&\n                !_this._isDragStartInSelection(ev) &&\n                (!onShouldStartSelection || onShouldStartSelection(ev))) {\n                if (_this._scrollableSurface && ev.button === 0 && _this._root.current) {\n                    _this._selectedIndicies = {};\n                    _this._preservedIndicies = undefined;\n                    _this._events.on(window, 'mousemove', _this._onAsyncMouseMove, true);\n                    _this._events.on(_this._scrollableParent, 'scroll', _this._onAsyncMouseMove);\n                    _this._events.on(window, 'click', _this._onMouseUp, true);\n                    _this._autoScroll = new AutoScroll(_this._root.current);\n                    _this._scrollTop = _this._scrollableSurface.scrollTop;\n                    _this._scrollLeft = _this._scrollableSurface.scrollLeft;\n                    _this._rootRect = _this._root.current.getBoundingClientRect();\n                    _this._onMouseMove(ev);\n                }\n            }\n        };\n        _this._onTouchStart = function (ev) {\n            _this._isTouch = true;\n            _this._async.setTimeout(function () {\n                _this._isTouch = false;\n            }, 0);\n        };\n        _this._onPointerDown = function (ev) {\n            if (ev.pointerType === 'touch') {\n                _this._isTouch = true;\n                _this._async.setTimeout(function () {\n                    _this._isTouch = false;\n                }, 0);\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        _this.state = {\n            dragRect: undefined,\n        };\n        return _this;\n    }\n    MarqueeSelectionBase.prototype.componentDidMount = function () {\n        this._scrollableParent = findScrollableParent(this._root.current);\n        this._scrollableSurface = this._scrollableParent === window ? document.body : this._scrollableParent;\n        // When scroll events come from window, we need to read scrollTop values from the body.\n        var hitTarget = this.props.isDraggingConstrainedToRoot ? this._root.current : this._scrollableSurface;\n        this._events.on(hitTarget, 'mousedown', this._onMouseDown);\n        this._events.on(hitTarget, 'touchstart', this._onTouchStart, true);\n        this._events.on(hitTarget, 'pointerdown', this._onPointerDown, true);\n    };\n    MarqueeSelectionBase.prototype.componentWillUnmount = function () {\n        if (this._autoScroll) {\n            this._autoScroll.dispose();\n        }\n        delete this._scrollableParent;\n        delete this._scrollableSurface;\n        this._events.dispose();\n        this._async.dispose();\n    };\n    MarqueeSelectionBase.prototype.render = function () {\n        var _a = this.props, rootProps = _a.rootProps, children = _a.children, theme = _a.theme, className = _a.className, styles = _a.styles;\n        var dragRect = this.state.dragRect;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n        return (React.createElement(\"div\", __assign({}, rootProps, { className: classNames.root, ref: this._root }),\n            children,\n            dragRect && React.createElement(\"div\", { className: classNames.dragMask }),\n            dragRect && (React.createElement(\"div\", { className: classNames.box, style: dragRect },\n                React.createElement(\"div\", { className: classNames.boxFill })))));\n    };\n    /** Determine if the mouse event occured on a scrollbar of the target element. */\n    MarqueeSelectionBase.prototype._isMouseEventOnScrollbar = function (ev) {\n        var targetElement = ev.target;\n        var targetScrollbarWidth = targetElement.offsetWidth - targetElement.clientWidth;\n        var targetScrollbarHeight = targetElement.offsetHeight - targetElement.clientHeight;\n        if (targetScrollbarWidth || targetScrollbarHeight) {\n            var targetRect = targetElement.getBoundingClientRect();\n            // Check vertical scroll\n            if (getRTL(this.props.theme)) {\n                if (ev.clientX < targetRect.left + targetScrollbarWidth) {\n                    return true;\n                }\n            }\n            else {\n                if (ev.clientX > targetRect.left + targetElement.clientWidth) {\n                    return true;\n                }\n            }\n            // Check horizontal scroll\n            if (ev.clientY > targetRect.top + targetElement.clientHeight) {\n                return true;\n            }\n        }\n        return false;\n    };\n    MarqueeSelectionBase.prototype._getRootRect = function () {\n        return {\n            left: this._rootRect.left +\n                (this._scrollableSurface ? this._scrollLeft - this._scrollableSurface.scrollLeft : this._scrollLeft),\n            top: this._rootRect.top +\n                (this._scrollableSurface ? this._scrollTop - this._scrollableSurface.scrollTop : this._scrollTop),\n            width: this._rootRect.width,\n            height: this._rootRect.height,\n        };\n    };\n    MarqueeSelectionBase.prototype._onAsyncMouseMove = function (ev) {\n        var _this = this;\n        this._async.requestAnimationFrame(function () {\n            _this._onMouseMove(ev);\n        });\n        ev.stopPropagation();\n        ev.preventDefault();\n    };\n    MarqueeSelectionBase.prototype._onMouseMove = function (ev) {\n        if (!this._autoScroll) {\n            return;\n        }\n        if (ev.clientX !== undefined) {\n            this._lastMouseEvent = ev;\n        }\n        var rootRect = this._getRootRect();\n        var currentPoint = { left: ev.clientX - rootRect.left, top: ev.clientY - rootRect.top };\n        if (!this._dragOrigin) {\n            this._dragOrigin = currentPoint;\n        }\n        if (ev.buttons !== undefined && ev.buttons === 0) {\n            this._onMouseUp(ev);\n        }\n        else {\n            if (this.state.dragRect || getDistanceBetweenPoints(this._dragOrigin, currentPoint) > MIN_DRAG_DISTANCE) {\n                if (!this.state.dragRect) {\n                    var selection = this.props.selection;\n                    if (!ev.shiftKey) {\n                        selection.setAllSelected(false);\n                    }\n                    this._preservedIndicies = selection && selection.getSelectedIndices && selection.getSelectedIndices();\n                }\n                // We need to constrain the current point to the rootRect boundaries.\n                var constrainedPoint = this.props.isDraggingConstrainedToRoot\n                    ? {\n                        left: Math.max(0, Math.min(rootRect.width, this._lastMouseEvent.clientX - rootRect.left)),\n                        top: Math.max(0, Math.min(rootRect.height, this._lastMouseEvent.clientY - rootRect.top)),\n                    }\n                    : {\n                        left: this._lastMouseEvent.clientX - rootRect.left,\n                        top: this._lastMouseEvent.clientY - rootRect.top,\n                    };\n                var dragRect = {\n                    left: Math.min(this._dragOrigin.left || 0, constrainedPoint.left),\n                    top: Math.min(this._dragOrigin.top || 0, constrainedPoint.top),\n                    width: Math.abs(constrainedPoint.left - (this._dragOrigin.left || 0)),\n                    height: Math.abs(constrainedPoint.top - (this._dragOrigin.top || 0)),\n                };\n                this._evaluateSelection(dragRect, rootRect);\n                this.setState({ dragRect: dragRect });\n            }\n        }\n        return false;\n    };\n    MarqueeSelectionBase.prototype._onMouseUp = function (ev) {\n        this._events.off(window);\n        this._events.off(this._scrollableParent, 'scroll');\n        if (this._autoScroll) {\n            this._autoScroll.dispose();\n        }\n        this._autoScroll = this._dragOrigin = this._lastMouseEvent = undefined;\n        this._selectedIndicies = this._itemRectCache = undefined;\n        if (this.state.dragRect) {\n            this.setState({\n                dragRect: undefined,\n            });\n            ev.preventDefault();\n            ev.stopPropagation();\n        }\n    };\n    MarqueeSelectionBase.prototype._isPointInRectangle = function (rectangle, point) {\n        return (!!point.top &&\n            rectangle.top < point.top &&\n            rectangle.bottom > point.top &&\n            !!point.left &&\n            rectangle.left < point.left &&\n            rectangle.right > point.left);\n    };\n    /**\n     * We do not want to start the marquee if we're trying to marquee\n     * from within an existing marquee selection.\n     */\n    MarqueeSelectionBase.prototype._isDragStartInSelection = function (ev) {\n        var selection = this.props.selection;\n        if (!this._root.current || (selection && selection.getSelectedCount() === 0)) {\n            return false;\n        }\n        var allElements = this._root.current.querySelectorAll('[data-selection-index]');\n        for (var i = 0; i < allElements.length; i++) {\n            var element = allElements[i];\n            var index = Number(element.getAttribute('data-selection-index'));\n            if (selection.isIndexSelected(index)) {\n                var itemRect = element.getBoundingClientRect();\n                if (this._isPointInRectangle(itemRect, { left: ev.clientX, top: ev.clientY })) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    MarqueeSelectionBase.prototype._isInSelectionToggle = function (ev) {\n        var element = ev.target;\n        while (element && element !== this._root.current) {\n            if (element.getAttribute('data-selection-toggle') === 'true') {\n                return true;\n            }\n            element = element.parentElement;\n        }\n        return false;\n    };\n    MarqueeSelectionBase.prototype._evaluateSelection = function (dragRect, rootRect) {\n        // Break early if we don't need to evaluate.\n        if (!dragRect || !this._root.current) {\n            return;\n        }\n        var selection = this.props.selection;\n        var allElements = this._root.current.querySelectorAll('[data-selection-index]');\n        if (!this._itemRectCache) {\n            this._itemRectCache = {};\n        }\n        for (var i = 0; i < allElements.length; i++) {\n            var element = allElements[i];\n            var index = element.getAttribute('data-selection-index');\n            // Pull the memoized rectangle for the item, or the get the rect and memoize.\n            var itemRect = this._itemRectCache[index];\n            if (!itemRect) {\n                itemRect = element.getBoundingClientRect();\n                // Normalize the item rect to the dragRect coordinates.\n                itemRect = {\n                    left: itemRect.left - rootRect.left,\n                    top: itemRect.top - rootRect.top,\n                    width: itemRect.width,\n                    height: itemRect.height,\n                    right: itemRect.left - rootRect.left + itemRect.width,\n                    bottom: itemRect.top - rootRect.top + itemRect.height,\n                };\n                if (itemRect.width > 0 && itemRect.height > 0) {\n                    this._itemRectCache[index] = itemRect;\n                }\n            }\n            if (itemRect.top < dragRect.top + dragRect.height &&\n                itemRect.bottom > dragRect.top &&\n                itemRect.left < dragRect.left + dragRect.width &&\n                itemRect.right > dragRect.left) {\n                this._selectedIndicies[index] = true;\n            }\n            else {\n                delete this._selectedIndicies[index];\n            }\n        }\n        // set previousSelectedIndices to be all of the selected indices from last time\n        var previousSelectedIndices = this._allSelectedIndices || {};\n        this._allSelectedIndices = {};\n        // set all indices that are supposed to be selected in _allSelectedIndices\n        for (var index in this._selectedIndicies) {\n            if (this._selectedIndicies.hasOwnProperty(index)) {\n                this._allSelectedIndices[index] = true;\n            }\n        }\n        if (this._preservedIndicies) {\n            for (var _i = 0, _a = this._preservedIndicies; _i < _a.length; _i++) {\n                var index = _a[_i];\n                this._allSelectedIndices[index] = true;\n            }\n        }\n        // check if needs to update selection, only when current _allSelectedIndices\n        // is different than previousSelectedIndices\n        var needToUpdate = false;\n        for (var index in this._allSelectedIndices) {\n            if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {\n                needToUpdate = true;\n                break;\n            }\n        }\n        if (!needToUpdate) {\n            for (var index in previousSelectedIndices) {\n                if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {\n                    needToUpdate = true;\n                    break;\n                }\n            }\n        }\n        // only update selection when needed\n        if (needToUpdate) {\n            // Stop change events, clear selection to re-populate.\n            selection.setChangeEvents(false);\n            selection.setAllSelected(false);\n            for (var _b = 0, _c = Object.keys(this._allSelectedIndices); _b < _c.length; _b++) {\n                var index = _c[_b];\n                selection.setIndexSelected(Number(index), true, false);\n            }\n            selection.setChangeEvents(true);\n        }\n    };\n    MarqueeSelectionBase.defaultProps = {\n        rootTagName: 'div',\n        rootProps: {},\n        isEnabled: true,\n    };\n    return MarqueeSelectionBase;\n}(React.Component));\nexport { MarqueeSelectionBase };\n//# sourceMappingURL=MarqueeSelection.base.js.map","import { styled } from '../../Utilities';\nimport { MarqueeSelectionBase } from './MarqueeSelection.base';\nimport { getStyles } from './MarqueeSelection.styles';\nexport var MarqueeSelection = \n// TODO: MarqueeSelectionBase defaultProps are not lining up with IMarqueeSelectionProps, so we have to be explicit\n// with styled here. defaultProps.rootTagName doesn't appear to be used anywhere and defaultProps.rootProps is not\n// in IMarqueeSelectionProps.\nstyled(MarqueeSelectionBase, getStyles, undefined, {\n    scope: 'MarqueeSelection',\n});\n//# sourceMappingURL=MarqueeSelection.js.map","import { HighContrastSelector } from '../../Styling';\nexport var getStyles = function (props) {\n    var _a, _b, _c;\n    var theme = props.theme, className = props.className;\n    var palette = theme.palette;\n    return {\n        root: [\n            className,\n            {\n                position: 'relative',\n                cursor: 'default',\n            },\n        ],\n        dragMask: [\n            {\n                position: 'absolute',\n                background: 'rgba(255, 0, 0, 0)',\n                left: 0,\n                top: 0,\n                right: 0,\n                bottom: 0,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        background: 'none',\n                        backgroundColor: 'transparent',\n                    },\n                    _a),\n            },\n        ],\n        box: [\n            {\n                position: 'absolute',\n                boxSizing: 'border-box',\n                border: \"1px solid \".concat(palette.themePrimary),\n                pointerEvents: 'none',\n                zIndex: 10,\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = {\n                        borderColor: 'Highlight',\n                    },\n                    _b),\n            },\n        ],\n        boxFill: [\n            {\n                position: 'absolute',\n                boxSizing: 'border-box',\n                backgroundColor: palette.themePrimary,\n                opacity: 0.1,\n                left: 0,\n                top: 0,\n                right: 0,\n                bottom: 0,\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = {\n                        background: 'none',\n                        backgroundColor: 'transparent',\n                    },\n                    _c),\n            },\n        ],\n    };\n};\n//# sourceMappingURL=MarqueeSelection.styles.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, htmlElementProperties, css } from '../../Utilities';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nimport { MessageBarType } from './MessageBar.types';\nimport { useId, useBoolean } from '@fluentui/react-hooks';\nvar ICON_MAP = (_a = {},\n    _a[MessageBarType.info] = 'Info',\n    _a[MessageBarType.warning] = 'Info',\n    _a[MessageBarType.error] = 'ErrorBadge',\n    _a[MessageBarType.blocked] = 'Blocked2',\n    _a[MessageBarType.severeWarning] = 'Warning',\n    _a[MessageBarType.success] = 'Completed',\n    _a);\nvar COMPONENT_NAME = 'MessageBar';\nvar getClassNames = classNamesFunction();\nvar getAnnouncementPriority = function (messageBarType) {\n    switch (messageBarType) {\n        case MessageBarType.blocked:\n        case MessageBarType.error:\n        case MessageBarType.severeWarning:\n            return 'assertive';\n    }\n    return 'polite';\n};\nvar getRole = function (messageBarType) {\n    switch (messageBarType) {\n        case MessageBarType.blocked:\n        case MessageBarType.error:\n        case MessageBarType.severeWarning:\n            return 'alert';\n    }\n    return 'status';\n};\nexport var MessageBarBase = React.forwardRef(function (props, ref) {\n    var _a = useBoolean(false), expandSingleLine = _a[0], toggleExpandSingleLine = _a[1].toggle;\n    var labelId = useId('MessageBar');\n    var actions = props.actions, className = props.className, children = props.children, \n    // eslint-disable-next-line deprecation/deprecation\n    overflowButtonAriaLabel = props.overflowButtonAriaLabel, dismissIconProps = props.dismissIconProps, styles = props.styles, theme = props.theme, _b = props.messageBarType, messageBarType = _b === void 0 ? MessageBarType.info : _b, _c = props.onDismiss, onDismiss = _c === void 0 ? undefined : _c, _d = props.isMultiline, isMultiline = _d === void 0 ? true : _d, truncated = props.truncated, dismissButtonAriaLabel = props.dismissButtonAriaLabel, messageBarIconProps = props.messageBarIconProps, role = props.role, _e = props.delayedRender, delayedRender = _e === void 0 ? true : _e, expandButtonProps = props.expandButtonProps;\n    var nativeProps = getNativeProps(props, htmlElementProperties, [\n        'className',\n        'role',\n    ]);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        messageBarType: messageBarType || MessageBarType.info,\n        onDismiss: onDismiss !== undefined,\n        actions: actions !== undefined,\n        truncated: truncated,\n        isMultiline: isMultiline,\n        expandSingleLine: expandSingleLine,\n        className: className,\n    });\n    var expandIconProps = { iconName: expandSingleLine ? 'DoubleChevronUp' : 'DoubleChevronDown' };\n    var regionProps = actions || onDismiss ? { 'aria-describedby': labelId, role: 'region' } : {};\n    var actionsDiv = actions ? React.createElement(\"div\", { className: classNames.actions }, actions) : null;\n    var dismissButton = onDismiss ? (React.createElement(IconButton, { disabled: false, className: classNames.dismissal, onClick: onDismiss, iconProps: dismissIconProps ? dismissIconProps : { iconName: 'Clear' }, title: dismissButtonAriaLabel, ariaLabel: dismissButtonAriaLabel })) : null;\n    return (React.createElement(\"div\", __assign({ ref: ref, className: classNames.root }, regionProps),\n        React.createElement(\"div\", { className: classNames.content },\n            React.createElement(\"div\", { className: classNames.iconContainer, \"aria-hidden\": true }, messageBarIconProps ? (React.createElement(Icon, __assign({}, messageBarIconProps, { className: css(classNames.icon, messageBarIconProps.className) }))) : (React.createElement(Icon, { iconName: ICON_MAP[messageBarType], className: classNames.icon }))),\n            React.createElement(\"div\", { className: classNames.text, id: labelId, role: role || getRole(messageBarType), \"aria-live\": getAnnouncementPriority(messageBarType) },\n                React.createElement(\"span\", __assign({ className: classNames.innerText }, nativeProps), delayedRender ? (React.createElement(DelayedRender, null,\n                    React.createElement(\"span\", null, children))) : (\n                // this span is probably not necessary, but preserving it for now in case anyone\n                // has styling that expects it to be present\n                React.createElement(\"span\", null, children)))),\n            /* singleline expand/collapse button */ !isMultiline && !actionsDiv && truncated && (React.createElement(\"div\", { className: classNames.expandSingleLine },\n                React.createElement(IconButton, __assign({ disabled: false, className: classNames.expand, onClick: toggleExpandSingleLine, iconProps: expandIconProps, ariaLabel: overflowButtonAriaLabel, \"aria-expanded\": expandSingleLine }, expandButtonProps)))),\n            !isMultiline && actionsDiv,\n            /* singleline dismiss */ !isMultiline && dismissButton && (React.createElement(\"div\", { className: classNames.dismissSingleLine }, dismissButton)),\n            isMultiline && dismissButton),\n        isMultiline && actionsDiv));\n});\nMessageBarBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=MessageBar.base.js.map","var _a, _b, _c, _d;\nimport { __assign } from \"tslib\";\nimport { HighContrastSelector, HighContrastSelectorWhite, ScreenWidthMaxSmall, getScreenSelector, getGlobalClassNames, getFocusStyle, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { MessageBarType } from './MessageBar.types';\nvar GlobalClassNames = {\n    root: 'ms-MessageBar',\n    error: 'ms-MessageBar--error',\n    blocked: 'ms-MessageBar--blocked',\n    severeWarning: 'ms-MessageBar--severeWarning',\n    success: 'ms-MessageBar--success',\n    warning: 'ms-MessageBar--warning',\n    multiline: 'ms-MessageBar-multiline',\n    singleline: 'ms-MessageBar-singleline',\n    dismissalSingleLine: 'ms-MessageBar-dismissalSingleLine',\n    expandingSingleLine: 'ms-MessageBar-expandingSingleLine',\n    content: 'ms-MessageBar-content',\n    iconContainer: 'ms-MessageBar-icon',\n    text: 'ms-MessageBar-text',\n    innerText: 'ms-MessageBar-innerText',\n    dismissSingleLine: 'ms-MessageBar-dismissSingleLine',\n    expandSingleLine: 'ms-MessageBar-expandSingleLine',\n    dismissal: 'ms-MessageBar-dismissal',\n    expand: 'ms-MessageBar-expand',\n    actions: 'ms-MessageBar-actions',\n    actionsSingleline: 'ms-MessageBar-actionsSingleLine',\n};\nvar backgroundColor = (_a = {},\n    _a[MessageBarType.error] = 'errorBackground',\n    _a[MessageBarType.blocked] = 'errorBackground',\n    _a[MessageBarType.success] = 'successBackground',\n    _a[MessageBarType.warning] = 'warningBackground',\n    _a[MessageBarType.severeWarning] = 'severeWarningBackground',\n    _a[MessageBarType.info] = 'infoBackground',\n    _a);\nvar iconColor = (_b = {},\n    _b[MessageBarType.error] = 'errorIcon',\n    _b[MessageBarType.blocked] = 'errorIcon',\n    _b[MessageBarType.success] = 'successIcon',\n    _b[MessageBarType.warning] = 'warningIcon',\n    _b[MessageBarType.severeWarning] = 'severeWarningIcon',\n    _b[MessageBarType.info] = 'infoIcon',\n    _b);\nvar highContrastBorderColor = (_c = {},\n    _c[MessageBarType.error] = '#ff0000',\n    _c[MessageBarType.blocked] = '#ff0000',\n    _c[MessageBarType.success] = '#bad80a',\n    _c[MessageBarType.warning] = '#fff100',\n    _c[MessageBarType.severeWarning] = '#ff0000',\n    _c[MessageBarType.info] = 'WindowText',\n    _c);\nvar highContrastWhiteBorderColor = (_d = {},\n    _d[MessageBarType.error] = '#e81123',\n    _d[MessageBarType.blocked] = '#e81123',\n    _d[MessageBarType.success] = '#107c10',\n    _d[MessageBarType.warning] = '#966400',\n    _d[MessageBarType.severeWarning] = '#d83b01',\n    _d[MessageBarType.info] = 'WindowText',\n    _d);\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n    var theme = props.theme, className = props.className, onDismiss = props.onDismiss, truncated = props.truncated, isMultiline = props.isMultiline, expandSingleLine = props.expandSingleLine, _m = props.messageBarType, messageBarType = _m === void 0 ? MessageBarType.info : _m;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var SmallScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var dismissalAndExpandIconStyle = {\n        fontSize: IconFontSizes.xSmall,\n        height: 10,\n        lineHeight: '10px',\n        color: semanticColors.messageText,\n        selectors: (_a = {},\n            _a[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n            _a),\n    };\n    var dismissalAndExpandStyle = [\n        getFocusStyle(theme, {\n            inset: 1,\n            highContrastStyle: {\n                outlineOffset: '-6px',\n                outline: '1px solid Highlight',\n            },\n            borderColor: 'transparent',\n        }),\n        {\n            flexShrink: 0,\n            width: 32,\n            height: 32,\n            padding: '8px 12px',\n            selectors: {\n                '& .ms-Button-icon': dismissalAndExpandIconStyle,\n                ':hover': {\n                    backgroundColor: 'transparent',\n                },\n                ':active': {\n                    backgroundColor: 'transparent',\n                },\n            },\n        },\n    ];\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            messageBarType === MessageBarType.error && classNames.error,\n            messageBarType === MessageBarType.blocked && classNames.blocked,\n            messageBarType === MessageBarType.severeWarning && classNames.severeWarning,\n            messageBarType === MessageBarType.success && classNames.success,\n            messageBarType === MessageBarType.warning && classNames.warning,\n            isMultiline ? classNames.multiline : classNames.singleline,\n            !isMultiline && onDismiss && classNames.dismissalSingleLine,\n            !isMultiline && truncated && classNames.expandingSingleLine,\n            {\n                background: semanticColors[backgroundColor[messageBarType]],\n                boxSizing: 'border-box',\n                color: semanticColors.messageText,\n                minHeight: 32,\n                width: '100%',\n                display: 'flex',\n                wordBreak: 'break-word',\n                selectors: (_b = {\n                        '.ms-Link': {\n                            color: semanticColors.messageLink,\n                            selectors: {\n                                ':hover': {\n                                    color: semanticColors.messageLinkHovered,\n                                },\n                            },\n                        }\n                    },\n                    _b[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { background: 'transparent', border: \"1px solid \".concat(highContrastBorderColor[messageBarType]), color: 'WindowText' }),\n                    _b[HighContrastSelectorWhite] = {\n                        border: \"1px solid \".concat(highContrastWhiteBorderColor[messageBarType]),\n                    },\n                    _b),\n            },\n            isMultiline && {\n                flexDirection: 'column',\n            },\n            className,\n        ],\n        content: [\n            classNames.content,\n            (_c = {\n                    display: 'flex',\n                    width: '100%',\n                    lineHeight: 'normal'\n                },\n                _c[SmallScreenSelector] = {\n                    display: 'grid',\n                    gridTemplateColumns: 'auto 1fr auto',\n                    gridTemplateRows: '1fr auto',\n                    gridTemplateAreas: \"\\n            \\\"icon text close\\\"\\n            \\\"action action action\\\"\\n          \",\n                },\n                _c),\n        ],\n        iconContainer: [\n            classNames.iconContainer,\n            (_d = {\n                    fontSize: IconFontSizes.medium,\n                    minWidth: 16,\n                    minHeight: 16,\n                    display: 'flex',\n                    flexShrink: 0,\n                    margin: '8px 0 8px 12px'\n                },\n                _d[SmallScreenSelector] = {\n                    gridArea: 'icon',\n                },\n                _d),\n        ],\n        icon: {\n            color: semanticColors[iconColor[messageBarType]],\n            selectors: (_e = {},\n                _e[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n                _e),\n        },\n        text: [\n            classNames.text,\n            __assign(__assign({ minWidth: 0, display: 'flex', flexGrow: 1, margin: 8 }, fonts.small), (_f = {}, _f[SmallScreenSelector] = {\n                gridArea: 'text',\n            }, _f.selectors = (_g = {},\n                _g[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n                _g), _f)),\n            !onDismiss && {\n                marginRight: 12,\n            },\n        ],\n        innerText: [\n            classNames.innerText,\n            {\n                lineHeight: 16,\n                selectors: {\n                    '& span a:last-child': {\n                        paddingLeft: 4,\n                    },\n                },\n            },\n            truncated && {\n                overflow: 'visible',\n                whiteSpace: 'pre-wrap',\n            },\n            !isMultiline && {\n                // In high contrast this causes the top and bottom of links' focus outline to be clipped\n                // (not sure of a good way around that while still maintaining text clipping)\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n            },\n            !isMultiline &&\n                !truncated && {\n                selectors: (_h = {},\n                    _h[SmallScreenSelector] = {\n                        overflow: 'visible',\n                        whiteSpace: 'pre-wrap',\n                    },\n                    _h),\n            },\n            expandSingleLine && {\n                overflow: 'visible',\n                whiteSpace: 'pre-wrap',\n            },\n        ],\n        dismissSingleLine: [\n            classNames.dismissSingleLine,\n            (_j = {},\n                _j[SmallScreenSelector] = {\n                    gridArea: 'close',\n                },\n                _j),\n        ],\n        expandSingleLine: classNames.expandSingleLine,\n        dismissal: [classNames.dismissal, dismissalAndExpandStyle],\n        expand: [classNames.expand, dismissalAndExpandStyle],\n        actions: [\n            isMultiline ? classNames.actions : classNames.actionsSingleline,\n            (_k = {\n                    display: 'flex',\n                    flexGrow: 0,\n                    flexShrink: 0,\n                    flexBasis: 'auto',\n                    flexDirection: 'row-reverse',\n                    alignItems: 'center',\n                    margin: '0 12px 0 8px',\n                    // reset forced colors to browser control for inner actions\n                    forcedColorAdjust: 'auto',\n                    MsHighContrastAdjust: 'auto'\n                },\n                _k[SmallScreenSelector] = {\n                    gridArea: 'action',\n                    marginRight: 8,\n                    marginBottom: 8,\n                },\n                _k.selectors = {\n                    '& button:nth-child(n+2)': (_l = {\n                            marginLeft: 8\n                        },\n                        _l[SmallScreenSelector] = {\n                            marginBottom: 0,\n                        },\n                        _l),\n                },\n                _k),\n            isMultiline && {\n                marginBottom: 8,\n            },\n            onDismiss &&\n                !isMultiline && {\n                marginRight: 0,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=MessageBar.styles.js.map","import { styled } from '../../Utilities';\nimport { MessageBarBase } from './MessageBar.base';\nimport { getStyles } from './MessageBar.styles';\nexport var MessageBar = styled(MessageBarBase, getStyles, undefined, {\n    scope: 'MessageBar',\n});\n//# sourceMappingURL=MessageBar.js.map","/**\n * {@docCategory MessageBar}\n */\nexport var MessageBarType;\n(function (MessageBarType) {\n    /** Info styled MessageBar */\n    MessageBarType[MessageBarType[\"info\"] = 0] = \"info\";\n    /** Error styled MessageBar */\n    MessageBarType[MessageBarType[\"error\"] = 1] = \"error\";\n    /** Blocked styled MessageBar */\n    MessageBarType[MessageBarType[\"blocked\"] = 2] = \"blocked\";\n    /** SevereWarning styled MessageBar */\n    MessageBarType[MessageBarType[\"severeWarning\"] = 3] = \"severeWarning\";\n    /** Success styled MessageBar */\n    MessageBarType[MessageBarType[\"success\"] = 4] = \"success\";\n    /** Warning styled MessageBar */\n    MessageBarType[MessageBarType[\"warning\"] = 5] = \"warning\";\n})(MessageBarType || (MessageBarType = {}));\n//# sourceMappingURL=MessageBar.types.js.map","import { AnimationVariables, getGlobalClassNames, ZIndexes } from '../../Styling';\nexport var animationDuration = AnimationVariables.durationValue2;\nvar globalClassNames = {\n    root: 'ms-Modal',\n    main: 'ms-Dialog-main',\n    scrollableContent: 'ms-Modal-scrollableContent',\n    isOpen: 'is-open',\n    layer: 'ms-Modal-Layer',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var className = props.className, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, isOpen = props.isOpen, isVisible = props.isVisible, hasBeenOpened = props.hasBeenOpened, modalRectangleTop = props.modalRectangleTop, theme = props.theme, topOffsetFixed = props.topOffsetFixed, isModeless = props.isModeless, layerClassName = props.layerClassName, isDefaultDragHandle = props.isDefaultDragHandle, windowInnerHeight = props.windowInnerHeight;\n    var palette = theme.palette, effects = theme.effects, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(globalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            {\n                backgroundColor: 'transparent',\n                position: 'fixed',\n                height: '100%',\n                width: '100%',\n                display: 'flex',\n                alignItems: 'center',\n                justifyContent: 'center',\n                opacity: 0,\n                pointerEvents: 'none',\n                transition: \"opacity \".concat(animationDuration),\n            },\n            topOffsetFixed &&\n                typeof modalRectangleTop === 'number' &&\n                hasBeenOpened && {\n                alignItems: 'flex-start',\n            },\n            isOpen && classNames.isOpen,\n            isVisible && {\n                opacity: 1,\n            },\n            isVisible &&\n                !isModeless && {\n                pointerEvents: 'auto',\n            },\n            className,\n        ],\n        main: [\n            classNames.main,\n            {\n                boxShadow: effects.elevation64,\n                borderRadius: effects.roundedCorner2,\n                backgroundColor: palette.white,\n                boxSizing: 'border-box',\n                position: 'relative',\n                textAlign: 'left',\n                outline: '3px solid transparent',\n                maxHeight: 'calc(100% - 32px)',\n                maxWidth: 'calc(100% - 32px)',\n                minHeight: '176px',\n                minWidth: '288px',\n                overflowY: 'auto',\n                zIndex: isModeless ? ZIndexes.Layer : undefined,\n            },\n            isModeless && {\n                pointerEvents: 'auto',\n            },\n            topOffsetFixed &&\n                typeof modalRectangleTop === 'number' &&\n                hasBeenOpened && {\n                top: modalRectangleTop,\n            },\n            isDefaultDragHandle && {\n                cursor: 'move',\n            },\n            containerClassName,\n        ],\n        scrollableContent: [\n            classNames.scrollableContent,\n            {\n                overflowY: 'auto',\n                flexGrow: 1,\n                maxHeight: '100vh',\n                selectors: (_a = {},\n                    _a['@supports (-webkit-overflow-scrolling: touch)'] = {\n                        maxHeight: windowInnerHeight,\n                    },\n                    _a),\n            },\n            scrollableContentClassName,\n        ],\n        layer: isModeless && [layerClassName, classNames.layer, { pointerEvents: 'none' }],\n        keyboardMoveIconContainer: {\n            position: 'absolute',\n            display: 'flex',\n            justifyContent: 'center',\n            width: '100%',\n            padding: '3px 0px',\n        },\n        keyboardMoveIcon: {\n            // eslint-disable-next-line deprecation/deprecation\n            fontSize: fonts.xLargePlus.fontSize,\n            width: '24px',\n        },\n    };\n};\n//# sourceMappingURL=Modal.styles.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (className, isDragging) {\n    return {\n        root: mergeStyles(className, isDragging && {\n            touchAction: 'none',\n            selectors: {\n                '& *': {\n                    userSelect: 'none',\n                },\n            },\n        }),\n    };\n});\n//# sourceMappingURL=DraggableZone.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './DraggableZone.styles';\nimport { on } from '../../Utilities';\nvar eventMapping = {\n    touch: {\n        start: 'touchstart',\n        move: 'touchmove',\n        stop: 'touchend',\n    },\n    mouse: {\n        start: 'mousedown',\n        move: 'mousemove',\n        stop: 'mouseup',\n    },\n};\nvar DraggableZone = /** @class */ (function (_super) {\n    __extends(DraggableZone, _super);\n    function DraggableZone(props) {\n        var _this = _super.call(this, props) || this;\n        _this._currentEventType = eventMapping.mouse;\n        _this._events = [];\n        _this._onMouseDown = function (event) {\n            var onMouseDown = React.Children.only(_this.props.children).props.onMouseDown;\n            if (onMouseDown) {\n                onMouseDown(event);\n            }\n            _this._currentEventType = eventMapping.mouse;\n            return _this._onDragStart(event);\n        };\n        _this._onMouseUp = function (event) {\n            var onMouseUp = React.Children.only(_this.props.children).props.onMouseUp;\n            if (onMouseUp) {\n                onMouseUp(event);\n            }\n            _this._currentEventType = eventMapping.mouse;\n            return _this._onDragStop(event);\n        };\n        _this._onTouchStart = function (event) {\n            var onTouchStart = React.Children.only(_this.props.children).props.onTouchStart;\n            if (onTouchStart) {\n                onTouchStart(event);\n            }\n            _this._currentEventType = eventMapping.touch;\n            return _this._onDragStart(event);\n        };\n        _this._onTouchEnd = function (event) {\n            var onTouchEnd = React.Children.only(_this.props.children).props.onTouchEnd;\n            if (onTouchEnd) {\n                onTouchEnd(event);\n            }\n            _this._currentEventType = eventMapping.touch;\n            _this._onDragStop(event);\n        };\n        _this._onDragStart = function (event) {\n            // Only handle left click for dragging\n            if (typeof event.button === 'number' && event.button !== 0) {\n                return false;\n            }\n            // If the target doesn't match the handleSelector OR\n            // if the target does match the preventDragSelector, bail out\n            if ((_this.props.handleSelector && !_this._matchesSelector(event.target, _this.props.handleSelector)) ||\n                (_this.props.preventDragSelector &&\n                    _this._matchesSelector(event.target, _this.props.preventDragSelector))) {\n                return;\n            }\n            // Remember the touch identifier if this is a touch event so we can\n            // distinguish between individual touches in multitouch scenarios\n            // by remembering which touch point we were given\n            _this._touchId = _this._getTouchId(event);\n            var position = _this._getControlPosition(event);\n            if (position === undefined) {\n                return;\n            }\n            var dragData = _this._createDragDataFromPosition(position);\n            _this.props.onStart && _this.props.onStart(event, dragData);\n            _this.setState({\n                isDragging: true,\n                lastPosition: position,\n            });\n            // hook up the appropriate mouse/touch events to the body to ensure\n            // smooth dragging\n            _this._events = [\n                on(document.body, _this._currentEventType.move, _this._onDrag, true /* use capture phase */),\n                on(document.body, _this._currentEventType.stop, _this._onDragStop, true /* use capture phase */),\n            ];\n        };\n        _this._onDrag = function (event) {\n            // Prevent scrolling on mobile devices\n            if (event.type === 'touchmove') {\n                event.preventDefault();\n            }\n            var position = _this._getControlPosition(event);\n            if (!position) {\n                return;\n            }\n            // create the updated drag data from the position data\n            var updatedData = _this._createUpdatedDragData(_this._createDragDataFromPosition(position));\n            var updatedPosition = updatedData.position;\n            _this.props.onDragChange && _this.props.onDragChange(event, updatedData);\n            _this.setState({\n                position: updatedPosition,\n                lastPosition: position,\n            });\n        };\n        _this._onDragStop = function (event) {\n            if (!_this.state.isDragging) {\n                return;\n            }\n            var position = _this._getControlPosition(event);\n            if (!position) {\n                return;\n            }\n            var baseDragData = _this._createDragDataFromPosition(position);\n            // Set dragging to false and reset the lastPosition\n            _this.setState({\n                isDragging: false,\n                lastPosition: undefined,\n            });\n            _this.props.onStop && _this.props.onStop(event, baseDragData);\n            if (_this.props.position) {\n                _this.setState({\n                    position: _this.props.position,\n                });\n            }\n            // Remove event handlers\n            _this._events.forEach(function (dispose) { return dispose(); });\n        };\n        _this.state = {\n            isDragging: false,\n            position: _this.props.position || { x: 0, y: 0 },\n            lastPosition: undefined,\n        };\n        return _this;\n    }\n    DraggableZone.prototype.componentDidUpdate = function (prevProps) {\n        if (this.props.position && (!prevProps.position || this.props.position !== prevProps.position)) {\n            this.setState({ position: this.props.position });\n        }\n    };\n    DraggableZone.prototype.componentWillUnmount = function () {\n        this._events.forEach(function (dispose) { return dispose(); });\n    };\n    DraggableZone.prototype.render = function () {\n        var child = React.Children.only(this.props.children);\n        var props = child.props;\n        var position = this.props.position;\n        var _a = this.state, statePosition = _a.position, isDragging = _a.isDragging;\n        var x = statePosition.x;\n        var y = statePosition.y;\n        if (position && !isDragging) {\n            x = position.x;\n            y = position.y;\n        }\n        return React.cloneElement(child, {\n            style: __assign(__assign({}, props.style), { transform: \"translate(\".concat(x, \"px, \").concat(y, \"px)\") }),\n            className: getClassNames(props.className, this.state.isDragging).root,\n            onMouseDown: this._onMouseDown,\n            onMouseUp: this._onMouseUp,\n            onTouchStart: this._onTouchStart,\n            onTouchEnd: this._onTouchEnd,\n        });\n    };\n    /**\n     * Get the control position based off the event that fired\n     * @param event - The event to get offsets from\n     */\n    DraggableZone.prototype._getControlPosition = function (event) {\n        var touchObj = this._getActiveTouch(event);\n        // did we get the right touch?\n        if (this._touchId !== undefined && !touchObj) {\n            return undefined;\n        }\n        var eventToGetOffset = touchObj || event;\n        return {\n            x: eventToGetOffset.clientX,\n            y: eventToGetOffset.clientY,\n        };\n    };\n    /**\n     * Get the active touch point that we have saved from the event's TouchList\n     * @param event - The event used to get the TouchList for the active touch point\n     */\n    DraggableZone.prototype._getActiveTouch = function (event) {\n        return ((event.targetTouches && this._findTouchInTouchList(event.targetTouches)) ||\n            (event.changedTouches && this._findTouchInTouchList(event.changedTouches)));\n    };\n    /**\n     * Get the initial touch identifier associated with the given event\n     * @param event - The event that contains the TouchList\n     */\n    DraggableZone.prototype._getTouchId = function (event) {\n        var touch = (event.targetTouches && event.targetTouches[0]) || (event.changedTouches && event.changedTouches[0]);\n        if (touch) {\n            return touch.identifier;\n        }\n    };\n    /**\n     * Returns if an element (or any of the element's parents) match the given selector\n     */\n    DraggableZone.prototype._matchesSelector = function (element, selector) {\n        if (!element || element === document.body) {\n            return false;\n        }\n        var matchesSelectorFn = \n        // eslint-disable-next-line deprecation/deprecation\n        element.matches || element.webkitMatchesSelector || element.msMatchesSelector; /* for IE */\n        if (!matchesSelectorFn) {\n            return false;\n        }\n        return matchesSelectorFn.call(element, selector) || this._matchesSelector(element.parentElement, selector);\n    };\n    /**\n     * Attempts to find the Touch that matches the identifier  we stored in dragStart\n     * @param touchList The TouchList to look for the stored identifier from dragStart\n     */\n    DraggableZone.prototype._findTouchInTouchList = function (touchList) {\n        if (this._touchId === undefined) {\n            return;\n        }\n        for (var i = 0; i < touchList.length; i++) {\n            if (touchList[i].identifier === this._touchId) {\n                return touchList[i];\n            }\n        }\n        return undefined;\n    };\n    /**\n     * Create DragData based off of the last known position and the new position passed in\n     * @param position The new position as part of the drag\n     */\n    DraggableZone.prototype._createDragDataFromPosition = function (position) {\n        var lastPosition = this.state.lastPosition;\n        // If we have no lastPosition, use the given position\n        // for last position\n        if (lastPosition === undefined) {\n            return {\n                delta: { x: 0, y: 0 },\n                lastPosition: position,\n                position: position,\n            };\n        }\n        return {\n            delta: {\n                x: position.x - lastPosition.x,\n                y: position.y - lastPosition.y,\n            },\n            lastPosition: lastPosition,\n            position: position,\n        };\n    };\n    /**\n     * Creates an updated DragData based off the current position and given baseDragData\n     * @param baseDragData The base DragData (from _createDragDataFromPosition) used to calculate the updated positions\n     */\n    DraggableZone.prototype._createUpdatedDragData = function (baseDragData) {\n        var position = this.state.position;\n        return {\n            position: {\n                x: position.x + baseDragData.delta.x,\n                y: position.y + baseDragData.delta.y,\n            },\n            delta: baseDragData.delta,\n            lastPosition: position,\n        };\n    };\n    return DraggableZone;\n}(React.Component));\nexport { DraggableZone };\n//# sourceMappingURL=DraggableZone.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, allowScrollOnElement, allowOverscrollOnElement, getPropsWithDefaults, KeyCodes, elementContains, EventGroup, } from '../../Utilities';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { animationDuration } from './Modal.styles';\nimport { Overlay } from '../../Overlay';\nimport { Layer } from '../../Layer';\nimport { Popup } from '../../Popup';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Icon } from '../../Icon';\nimport { DraggableZone } from '../../utilities/DraggableZone/index';\nimport { useWindow } from '@fluentui/react-window-provider';\nimport { useBoolean, useMergedRefs, useWarnings, useConst, useSetTimeout, useId, useUnmount, } from '@fluentui/react-hooks';\nvar ZERO = { x: 0, y: 0 };\nvar DEFAULT_PROPS = {\n    isOpen: false,\n    isDarkOverlay: true,\n    className: '',\n    containerClassName: '',\n    enableAriaHiddenSiblings: true,\n};\nvar getClassNames = classNamesFunction();\nvar getMoveDelta = function (ev) {\n    var delta = 10;\n    if (ev.shiftKey) {\n        if (!ev.ctrlKey) {\n            delta = 50;\n        }\n    }\n    else if (ev.ctrlKey) {\n        delta = 1;\n    }\n    return delta;\n};\nvar useComponentRef = function (props, focusTrapZone) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        focus: function () {\n            if (focusTrapZone.current) {\n                focusTrapZone.current.focus();\n            }\n        },\n    }); }, [focusTrapZone]);\n};\nexport var ModalBase = React.forwardRef(function (propsWithoutDefaults, ref) {\n    var _a, _b, _c, _d, _e;\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var allowTouchBodyScroll = props.allowTouchBodyScroll, className = props.className, children = props.children, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, focusTrapZoneProps = props.focusTrapZoneProps, forceFocusInsideTrap = props.forceFocusInsideTrap, \n    // eslint-disable-next-line deprecation/deprecation\n    _f = props.disableRestoreFocus, \n    // eslint-disable-next-line deprecation/deprecation\n    disableRestoreFocus = _f === void 0 ? props.ignoreExternalFocusing : _f, isBlocking = props.isBlocking, isAlert = props.isAlert, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, onDismiss = props.onDismiss, layerProps = props.layerProps, overlay = props.overlay, isOpen = props.isOpen, titleAriaId = props.titleAriaId, styles = props.styles, subtitleAriaId = props.subtitleAriaId, theme = props.theme, topOffsetFixed = props.topOffsetFixed, responsiveMode = props.responsiveMode, \n    // eslint-disable-next-line deprecation/deprecation\n    onLayerDidMount = props.onLayerDidMount, isModeless = props.isModeless, dragOptions = props.dragOptions, onDismissed = props.onDismissed, \n    // eslint-disable-next-line deprecation/deprecation\n    enableAriaHiddenSiblings = props.enableAriaHiddenSiblings, popupProps = props.popupProps;\n    var rootRef = React.useRef(null);\n    var focusTrapZone = React.useRef(null);\n    var focusTrapZoneRef = useMergedRefs(focusTrapZone, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.componentRef);\n    var focusTrapZoneElm = React.useRef(null);\n    var mergedRef = useMergedRefs(rootRef, ref);\n    var modalResponsiveMode = useResponsiveMode(mergedRef);\n    var focusTrapZoneId = useId('ModalFocusTrapZone', focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.id);\n    var win = useWindow();\n    var _g = useSetTimeout(), setTimeout = _g.setTimeout, clearTimeout = _g.clearTimeout;\n    var _h = React.useState(isOpen), isModalOpen = _h[0], setIsModalOpen = _h[1];\n    var _j = React.useState(isOpen), isVisible = _j[0], setIsVisible = _j[1];\n    var _k = React.useState(ZERO), coordinates = _k[0], setCoordinates = _k[1];\n    var _l = React.useState(), modalRectangleTop = _l[0], setModalRectangleTop = _l[1];\n    var _m = useBoolean(false), isModalMenuOpen = _m[0], _o = _m[1], toggleModalMenuOpen = _o.toggle, setModalMenuClose = _o.setFalse;\n    var internalState = useConst(function () { return ({\n        onModalCloseTimer: 0,\n        allowTouchBodyScroll: allowTouchBodyScroll,\n        scrollableContent: null,\n        lastSetCoordinates: ZERO,\n        events: new EventGroup({}),\n    }); });\n    var keepInBounds = (dragOptions || {}).keepInBounds;\n    var isAlertRole = isAlert !== null && isAlert !== void 0 ? isAlert : (isBlocking && !isModeless);\n    var layerClassName = layerProps === undefined ? '' : layerProps.className;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        containerClassName: containerClassName,\n        scrollableContentClassName: scrollableContentClassName,\n        isOpen: isOpen,\n        isVisible: isVisible,\n        hasBeenOpened: internalState.hasBeenOpened,\n        modalRectangleTop: modalRectangleTop,\n        topOffsetFixed: topOffsetFixed,\n        isModeless: isModeless,\n        layerClassName: layerClassName,\n        windowInnerHeight: win === null || win === void 0 ? void 0 : win.innerHeight,\n        isDefaultDragHandle: dragOptions && !dragOptions.dragHandleSelector,\n    });\n    var mergedLayerProps = __assign(__assign({ eventBubblingEnabled: false }, layerProps), { onLayerDidMount: layerProps && layerProps.onLayerDidMount ? layerProps.onLayerDidMount : onLayerDidMount, insertFirst: (layerProps === null || layerProps === void 0 ? void 0 : layerProps.insertFirst) || isModeless, className: classNames.layer });\n    // Allow the user to scroll within the modal but not on the body\n    var allowScrollOnModal = React.useCallback(function (elt) {\n        if (elt) {\n            if (internalState.allowTouchBodyScroll) {\n                allowOverscrollOnElement(elt, internalState.events);\n            }\n            else {\n                allowScrollOnElement(elt, internalState.events);\n            }\n        }\n        else {\n            internalState.events.off(internalState.scrollableContent);\n        }\n        internalState.scrollableContent = elt;\n    }, [internalState]);\n    var registerInitialModalPosition = function () {\n        var dialogMain = focusTrapZoneElm.current;\n        var modalRectangle = dialogMain === null || dialogMain === void 0 ? void 0 : dialogMain.getBoundingClientRect();\n        if (modalRectangle) {\n            if (topOffsetFixed) {\n                setModalRectangleTop(modalRectangle.top);\n            }\n            if (keepInBounds) {\n                // x/y are unavailable in IE, so use the equivalent left/top\n                internalState.minPosition = { x: -modalRectangle.left, y: -modalRectangle.top };\n                internalState.maxPosition = { x: modalRectangle.left, y: modalRectangle.top };\n            }\n        }\n    };\n    /**\n     * Clamps an axis to a specified min and max position.\n     *\n     * @param axis A string that represents the axis (x/y).\n     * @param position The position on the axis.\n     */\n    var getClampedAxis = React.useCallback(function (axis, position) {\n        var minPosition = internalState.minPosition, maxPosition = internalState.maxPosition;\n        if (keepInBounds && minPosition && maxPosition) {\n            position = Math.max(minPosition[axis], position);\n            position = Math.min(maxPosition[axis], position);\n        }\n        return position;\n    }, [keepInBounds, internalState]);\n    var handleModalClose = function () {\n        var _a;\n        internalState.lastSetCoordinates = ZERO;\n        setModalMenuClose();\n        internalState.isInKeyboardMoveMode = false;\n        setIsModalOpen(false);\n        setCoordinates(ZERO);\n        (_a = internalState.disposeOnKeyUp) === null || _a === void 0 ? void 0 : _a.call(internalState);\n        onDismissed === null || onDismissed === void 0 ? void 0 : onDismissed();\n    };\n    var handleDragStart = React.useCallback(function () {\n        setModalMenuClose();\n        internalState.isInKeyboardMoveMode = false;\n    }, [internalState, setModalMenuClose]);\n    var handleDrag = React.useCallback(function (ev, dragData) {\n        setCoordinates(function (prevValue) { return ({\n            x: getClampedAxis('x', prevValue.x + dragData.delta.x),\n            y: getClampedAxis('y', prevValue.y + dragData.delta.y),\n        }); });\n    }, [getClampedAxis]);\n    var handleDragStop = React.useCallback(function () {\n        if (focusTrapZone.current) {\n            focusTrapZone.current.focus();\n        }\n    }, []);\n    var handleEnterKeyboardMoveMode = function () {\n        // We need a global handleKeyDown event when we are in the move mode so that we can\n        // handle the key presses and the components inside the modal do not get the events\n        var handleKeyDown = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n                // CTRL + ALT + SPACE is handled during keyUp\n                ev.preventDefault();\n                ev.stopPropagation();\n                return;\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            var newLocal = ev.altKey || ev.keyCode === KeyCodes.escape;\n            if (isModalMenuOpen && newLocal) {\n                setModalMenuClose();\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            if (internalState.isInKeyboardMoveMode && (ev.keyCode === KeyCodes.escape || ev.keyCode === KeyCodes.enter)) {\n                internalState.isInKeyboardMoveMode = false;\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n            if (internalState.isInKeyboardMoveMode) {\n                var handledEvent = true;\n                var delta_1 = getMoveDelta(ev);\n                // eslint-disable-next-line deprecation/deprecation\n                switch (ev.keyCode) {\n                    /* eslint-disable no-fallthrough */\n                    case KeyCodes.escape:\n                        setCoordinates(internalState.lastSetCoordinates);\n                    case KeyCodes.enter: {\n                        // TODO: determine if fallthrough was intentional\n                        /* eslint-enable no-fallthrough */\n                        internalState.lastSetCoordinates = ZERO;\n                        // setIsInKeyboardMoveMode(false);\n                        break;\n                    }\n                    case KeyCodes.up: {\n                        setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y - delta_1) }); });\n                        break;\n                    }\n                    case KeyCodes.down: {\n                        setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y + delta_1) }); });\n                        break;\n                    }\n                    case KeyCodes.left: {\n                        setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x - delta_1), y: prevValue.y }); });\n                        break;\n                    }\n                    case KeyCodes.right: {\n                        setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x + delta_1), y: prevValue.y }); });\n                        break;\n                    }\n                    default: {\n                        handledEvent = false;\n                    }\n                }\n                if (handledEvent) {\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n            }\n        };\n        internalState.lastSetCoordinates = coordinates;\n        setModalMenuClose();\n        internalState.isInKeyboardMoveMode = true;\n        internalState.events.on(win, 'keydown', handleKeyDown, true /* useCapture */);\n        internalState.disposeOnKeyDown = function () {\n            internalState.events.off(win, 'keydown', handleKeyDown, true /* useCapture */);\n            internalState.disposeOnKeyDown = undefined;\n        };\n    };\n    var handleExitKeyboardMoveMode = function (ev) {\n        var _a, _b;\n        (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(focusTrapZoneProps, ev);\n        internalState.lastSetCoordinates = ZERO;\n        internalState.isInKeyboardMoveMode = false;\n        (_b = internalState.disposeOnKeyDown) === null || _b === void 0 ? void 0 : _b.call(internalState);\n    };\n    var registerForKeyUp = function () {\n        var handleKeyUp = function (ev) {\n            // Needs to handle the CTRL + ALT + SPACE key during keyup due to FireFox bug:\n            // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n                if (elementContains(internalState.scrollableContent, ev.target)) {\n                    toggleModalMenuOpen();\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n            }\n        };\n        if (!internalState.disposeOnKeyUp) {\n            internalState.events.on(win, 'keyup', handleKeyUp, true /* useCapture */);\n            internalState.disposeOnKeyUp = function () {\n                internalState.events.off(win, 'keyup', handleKeyUp, true /* useCapture */);\n                internalState.disposeOnKeyUp = undefined;\n            };\n        }\n    };\n    React.useEffect(function () {\n        clearTimeout(internalState.onModalCloseTimer);\n        // Opening the dialog\n        if (isOpen) {\n            // This must be done after the modal content has rendered\n            requestAnimationFrame(function () { return setTimeout(registerInitialModalPosition, 0); });\n            setIsModalOpen(true);\n            // Add a keyUp handler for all key up events once the dialog is open.\n            if (dragOptions) {\n                registerForKeyUp();\n            }\n            internalState.hasBeenOpened = true;\n            setIsVisible(true);\n        }\n        // Closing the dialog\n        if (!isOpen && isModalOpen) {\n            internalState.onModalCloseTimer = setTimeout(handleModalClose, parseFloat(animationDuration) * 1000);\n            setIsVisible(false);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if isModalOpen or isOpen mutates.\n    }, [isModalOpen, isOpen]);\n    useUnmount(function () {\n        internalState.events.dispose();\n    });\n    useComponentRef(props, focusTrapZone);\n    useDebugWarnings(props);\n    var modalContent = (React.createElement(FocusTrapZone, __assign({}, focusTrapZoneProps, { id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZoneRef, className: css(classNames.main, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.className), elementToFocusOnDismiss: (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.elementToFocusOnDismiss) !== null && _a !== void 0 ? _a : elementToFocusOnDismiss, isClickableOutsideFocusTrap: (_b = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.isClickableOutsideFocusTrap) !== null && _b !== void 0 ? _b : (isModeless || isClickableOutsideFocusTrap || !isBlocking), disableRestoreFocus: (_c = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.disableRestoreFocus) !== null && _c !== void 0 ? _c : disableRestoreFocus, forceFocusInsideTrap: ((_d = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.forceFocusInsideTrap) !== null && _d !== void 0 ? _d : forceFocusInsideTrap) && !isModeless, \n        // eslint-disable-next-line deprecation/deprecation\n        firstFocusableSelector: (focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.firstFocusableSelector) || firstFocusableSelector, focusPreviouslyFocusedInnerElement: (_e = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.focusPreviouslyFocusedInnerElement) !== null && _e !== void 0 ? _e : true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined }),\n        dragOptions && internalState.isInKeyboardMoveMode && (React.createElement(\"div\", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (React.createElement(Icon, __assign({}, dragOptions.keyboardMoveIconProps))) : (React.createElement(Icon, { iconName: \"move\", className: classNames.keyboardMoveIcon })))),\n        React.createElement(\"div\", { ref: allowScrollOnModal, className: classNames.scrollableContent, \"data-is-scrollable\": true },\n            dragOptions && isModalMenuOpen && (React.createElement(dragOptions.menu, { items: [\n                    { key: 'move', text: dragOptions.moveMenuItemText, onClick: handleEnterKeyboardMoveMode },\n                    { key: 'close', text: dragOptions.closeMenuItemText, onClick: handleModalClose },\n                ], onDismiss: setModalMenuClose, alignTargetEdge: true, coverTarget: true, directionalHint: DirectionalHint.topLeftEdge, directionalHintFixed: true, shouldFocusOnMount: true, target: internalState.scrollableContent })),\n            children)));\n    return ((isModalOpen && modalResponsiveMode >= (responsiveMode || ResponsiveMode.small) && (React.createElement(Layer, __assign({ ref: mergedRef }, mergedLayerProps),\n        React.createElement(Popup, __assign({ role: isAlertRole ? 'alertdialog' : 'dialog', ariaLabelledBy: titleAriaId, ariaDescribedBy: subtitleAriaId, onDismiss: onDismiss, shouldRestoreFocus: !disableRestoreFocus, \n            // Modeless modals shouldn't hide siblings.\n            // Popup will automatically handle this based on the aria-modal setting.\n            enableAriaHiddenSiblings: enableAriaHiddenSiblings, \"aria-modal\": !isModeless }, popupProps),\n            React.createElement(\"div\", { className: classNames.root, role: !isModeless ? 'document' : undefined },\n                !isModeless && (React.createElement(Overlay, __assign({ \"aria-hidden\": true, isDarkThemed: isDarkOverlay, onClick: isBlocking ? undefined : onDismiss, allowTouchBodyScroll: allowTouchBodyScroll }, overlay))),\n                dragOptions ? (React.createElement(DraggableZone, { handleSelector: dragOptions.dragHandleSelector || \"#\".concat(focusTrapZoneId), preventDragSelector: \"button\", onStart: handleDragStart, onDragChange: handleDrag, onStop: handleDragStop, position: coordinates }, modalContent)) : (modalContent)))))) ||\n        null);\n});\nModalBase.displayName = 'Modal';\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'Modal',\n            props: props,\n            deprecations: { onLayerDidMount: 'layerProps.onLayerDidMount' },\n        });\n    }\n}\n//# sourceMappingURL=Modal.base.js.map","import { styled } from '../../Utilities';\nimport { ModalBase } from './Modal.base';\nimport { getStyles } from './Modal.styles';\nexport var Modal = styled(ModalBase, getStyles, undefined, {\n    scope: 'Modal',\n    fields: ['theme', 'styles', 'enableAriaHiddenSiblings'],\n});\nModal.displayName = 'Modal';\n//# sourceMappingURL=Modal.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { ActionButton } from '../../Button';\nimport { buttonStyles } from './Nav.styles';\nimport { classNamesFunction, divProperties, getNativeProps, getWindow, initializeComponentRef } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { composeComponentAs, composeRenderFunction } from '@fluentui/utilities';\n// The number pixels per indentation level for Nav links.\nvar _indentationSize = 14;\n// The number of pixels of left margin\nvar _baseIndent = 3;\n// global var used in _isLinkSelectedKey\nvar _urlResolver;\nexport function isRelativeUrl(url) {\n    // A URL is relative if it has no protocol.\n    return !!url && !/^[a-z0-9+-.]+:\\/\\//i.test(url);\n}\nvar getClassNames = classNamesFunction();\nvar NavBase = /** @class */ (function (_super) {\n    __extends(NavBase, _super);\n    function NavBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._focusZone = React.createRef();\n        _this._onRenderLink = function (link) {\n            var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n            var classNames = getClassNames(styles, { theme: theme, groups: groups });\n            return React.createElement(\"div\", { className: classNames.linkText }, link.name);\n        };\n        _this._renderGroup = function (group, groupIndex) {\n            var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? _this._renderGroupHeader : _b;\n            var isExpanded = _this._isGroupExpanded(group);\n            var classNames = getClassNames(styles, {\n                theme: theme,\n                isGroup: true,\n                isExpanded: isExpanded,\n                groups: groups,\n            });\n            var finalOnHeaderClick = function (ev, isCollapsing) {\n                _this._onGroupHeaderClicked(group, ev);\n            };\n            var groupProps = __assign(__assign({}, group), { isExpanded: isExpanded, onHeaderClick: finalOnHeaderClick });\n            return (React.createElement(\"div\", { key: groupIndex, className: classNames.group },\n                groupProps.name ? onRenderGroupHeader(groupProps, _this._renderGroupHeader) : null,\n                React.createElement(\"div\", { className: classNames.groupContent }, _this._renderLinks(groupProps.links, 0 /* nestingLevel */))));\n        };\n        _this._renderGroupHeader = function (group) {\n            var _a;\n            // eslint-disable-next-line deprecation/deprecation\n            var _b = _this.props, styles = _b.styles, groups = _b.groups, theme = _b.theme, expandButtonAriaLabel = _b.expandButtonAriaLabel;\n            var isExpanded = group.isExpanded;\n            var classNames = getClassNames(styles, {\n                theme: theme,\n                isGroup: true,\n                isExpanded: isExpanded,\n                groups: groups,\n            });\n            // respect deprecated collapseAriaLabel, but default to expandAriaLabel for both states\n            // eslint-disable-next-line deprecation/deprecation\n            var collapseAriaLabel = (_a = group.collapseAriaLabel) !== null && _a !== void 0 ? _a : group.expandAriaLabel;\n            var label = (isExpanded ? collapseAriaLabel : group.expandAriaLabel) || expandButtonAriaLabel;\n            var onHeaderClick = group.onHeaderClick;\n            var onClick = onHeaderClick\n                ? function (ev) {\n                    onHeaderClick(ev, isExpanded);\n                }\n                : undefined;\n            return (React.createElement(\"button\", { className: classNames.chevronButton, onClick: onClick, \"aria-label\": label, \"aria-expanded\": isExpanded },\n                React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }),\n                group.name));\n        };\n        initializeComponentRef(_this);\n        _this.state = {\n            isGroupCollapsed: {},\n            isLinkExpandStateChanged: false,\n            selectedKey: props.initialSelectedKey || props.selectedKey,\n        };\n        return _this;\n    }\n    NavBase.prototype.render = function () {\n        var _a = this.props, styles = _a.styles, groups = _a.groups, className = _a.className, isOnTop = _a.isOnTop, _b = _a.role, role = _b === void 0 ? 'navigation' : _b, theme = _a.theme;\n        if (!groups) {\n            return null;\n        }\n        var groupElements = groups.map(this._renderGroup);\n        var classNames = getClassNames(styles, { theme: theme, className: className, isOnTop: isOnTop, groups: groups });\n        return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, componentRef: this._focusZone }, this.props.focusZoneProps),\n            React.createElement(\"nav\", { role: role, className: classNames.root, \"aria-label\": this.props.ariaLabel }, groupElements)));\n    };\n    Object.defineProperty(NavBase.prototype, \"selectedKey\", {\n        get: function () {\n            return this.state.selectedKey;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Sets focus to the first tabbable item in the zone.\n     * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n     * if focus is already in the focus zone.\n     * @returns True if focus could be set to an active element, false if no operation was taken.\n     */\n    NavBase.prototype.focus = function (forceIntoFirstElement) {\n        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n        if (this._focusZone && this._focusZone.current) {\n            return this._focusZone.current.focus(forceIntoFirstElement);\n        }\n        return false;\n    };\n    NavBase.prototype._renderNavLink = function (link, linkIndex, nestingLevel) {\n        var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n        var isLinkWithIcon = link.icon || link.iconProps;\n        var isSelectedLink = this._isLinkSelected(link);\n        var _b = link.ariaCurrent, ariaCurrent = _b === void 0 ? 'page' : _b;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            isSelected: isSelectedLink,\n            isDisabled: link.disabled,\n            isButtonEntry: link.onClick && !link.forceAnchor,\n            leftPadding: _indentationSize * nestingLevel + _baseIndent + (isLinkWithIcon ? 0 : 24),\n            groups: groups,\n        });\n        // Prevent hijacking of the parent window if link.target is defined\n        var rel = link.url && link.target && !isRelativeUrl(link.url) ? 'noopener noreferrer' : undefined;\n        var LinkAs = this.props.linkAs ? composeComponentAs(this.props.linkAs, ActionButton) : ActionButton;\n        var onRenderLink = this.props.onRenderLink\n            ? composeRenderFunction(this.props.onRenderLink, this._onRenderLink)\n            : this._onRenderLink;\n        return (React.createElement(LinkAs, { className: classNames.link, styles: buttonStyles, href: link.url || (link.forceAnchor ? '#' : undefined), iconProps: link.iconProps || { iconName: link.icon }, \n            // eslint-disable-next-line react/jsx-no-bind\n            onClick: link.onClick ? this._onNavButtonLinkClicked.bind(this, link) : this._onNavAnchorLinkClicked.bind(this, link), title: link.title !== undefined ? link.title : link.name, target: link.target, rel: rel, disabled: link.disabled, \"aria-current\": isSelectedLink ? ariaCurrent : undefined, \"aria-label\": link.ariaLabel ? link.ariaLabel : undefined, link: link }, onRenderLink(link)));\n    };\n    NavBase.prototype._renderCompositeLink = function (link, linkIndex, nestingLevel) {\n        var _a;\n        var divProps = __assign({}, getNativeProps(link, divProperties, ['onClick']));\n        // eslint-disable-next-line deprecation/deprecation\n        var _b = this.props, expandButtonAriaLabel = _b.expandButtonAriaLabel, styles = _b.styles, groups = _b.groups, theme = _b.theme;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            isExpanded: !!link.isExpanded,\n            isSelected: this._isLinkSelected(link),\n            isLink: true,\n            isDisabled: link.disabled,\n            position: _indentationSize * nestingLevel + 1,\n            groups: groups,\n        });\n        var finalExpandBtnAriaLabel = '';\n        if (link.links && link.links.length > 0) {\n            if (link.collapseAriaLabel || link.expandAriaLabel) {\n                // still respect link.collapseAriaLabel, even though it's deprecated in favor of expandAriaLabel\n                var collapseAriaLabel = (_a = link.collapseAriaLabel) !== null && _a !== void 0 ? _a : link.expandAriaLabel;\n                finalExpandBtnAriaLabel = link.isExpanded ? collapseAriaLabel : link.expandAriaLabel;\n            }\n            else {\n                // TODO remove when `expandButtonAriaLabel` is removed. This is not an ideal concatenation for localization.\n                finalExpandBtnAriaLabel = expandButtonAriaLabel ? \"\".concat(link.name, \" \").concat(expandButtonAriaLabel) : link.name;\n            }\n        }\n        return (React.createElement(\"div\", __assign({}, divProps, { key: link.key || linkIndex, className: classNames.compositeLink }),\n            link.links && link.links.length > 0 ? (React.createElement(\"button\", { className: classNames.chevronButton, onClick: this._onLinkExpandClicked.bind(this, link), \"aria-label\": finalExpandBtnAriaLabel, \"aria-expanded\": link.isExpanded ? 'true' : 'false' },\n                React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }))) : null,\n            this._renderNavLink(link, linkIndex, nestingLevel)));\n    };\n    NavBase.prototype._renderLink = function (link, linkIndex, nestingLevel) {\n        var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n        var classNames = getClassNames(styles, { theme: theme, groups: groups });\n        return (React.createElement(\"li\", { key: link.key || linkIndex, role: \"listitem\", className: classNames.navItem },\n            this._renderCompositeLink(link, linkIndex, nestingLevel),\n            link.isExpanded ? this._renderLinks(link.links, ++nestingLevel) : null));\n    };\n    NavBase.prototype._renderLinks = function (links, nestingLevel) {\n        var _this = this;\n        if (!links || !links.length) {\n            return null;\n        }\n        var linkElements = links.map(function (link, linkIndex) {\n            return _this._renderLink(link, linkIndex, nestingLevel);\n        });\n        var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n        var classNames = getClassNames(styles, { theme: theme, groups: groups });\n        return (React.createElement(\"ul\", { role: \"list\", className: classNames.navItems }, linkElements));\n    };\n    NavBase.prototype._onGroupHeaderClicked = function (group, ev) {\n        if (group.onHeaderClick) {\n            group.onHeaderClick(ev, this._isGroupExpanded(group));\n        }\n        if (group.isExpanded === undefined) {\n            this._toggleCollapsed(group);\n        }\n        if (ev) {\n            ev.preventDefault();\n            ev.stopPropagation();\n        }\n    };\n    NavBase.prototype._onLinkExpandClicked = function (link, ev) {\n        var onLinkExpandClick = this.props.onLinkExpandClick;\n        if (onLinkExpandClick) {\n            onLinkExpandClick(ev, link);\n        }\n        if (!ev.defaultPrevented) {\n            link.isExpanded = !link.isExpanded;\n            this.setState({ isLinkExpandStateChanged: true });\n        }\n        ev.preventDefault();\n        ev.stopPropagation();\n    };\n    NavBase.prototype._preventBounce = function (link, ev) {\n        if (!link.url && link.forceAnchor) {\n            ev.preventDefault();\n        }\n    };\n    NavBase.prototype._onNavAnchorLinkClicked = function (link, ev) {\n        // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n        this._preventBounce(link, ev);\n        if (this.props.onLinkClick) {\n            this.props.onLinkClick(ev, link);\n        }\n        if (!link.url && link.links && link.links.length > 0) {\n            this._onLinkExpandClicked(link, ev);\n        }\n        this.setState({ selectedKey: link.key });\n    };\n    NavBase.prototype._onNavButtonLinkClicked = function (link, ev) {\n        // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n        this._preventBounce(link, ev);\n        if (link.onClick) {\n            link.onClick(ev, link);\n        }\n        if (!link.url && link.links && link.links.length > 0) {\n            this._onLinkExpandClicked(link, ev);\n        }\n        this.setState({ selectedKey: link.key });\n    };\n    NavBase.prototype._isLinkSelected = function (link) {\n        // if caller passes in selectedKey, use it as first choice or\n        // if current state.selectedKey (from addressbar) is match to the link or\n        // check if URL is matching location.href (if link.url exists)\n        if (this.props.selectedKey !== undefined) {\n            return link.key === this.props.selectedKey;\n        }\n        else if (this.state.selectedKey !== undefined) {\n            return link.key === this.state.selectedKey;\n        }\n        else if (typeof getWindow() === 'undefined' || !link.url) {\n            // resolve is not supported for ssr\n            return false;\n        }\n        else {\n            // If selectedKey is undefined in props and state, then check URL\n            _urlResolver = _urlResolver || document.createElement('a');\n            _urlResolver.href = link.url || '';\n            var target = _urlResolver.href;\n            if (location.href === target) {\n                return true;\n            }\n            // If selectedKey is not defined in state, then check URL to determine link selected status\n            if (location.protocol + '//' + location.host + location.pathname === target) {\n                return true;\n            }\n            if (location.hash) {\n                // Match the hash to the url.\n                if (location.hash === link.url) {\n                    return true;\n                }\n                // Match a rebased url. (e.g. #foo becomes http://hostname/foo)\n                _urlResolver.href = location.hash.substring(1);\n                return _urlResolver.href === target;\n            }\n        }\n        return false;\n    };\n    NavBase.prototype._isGroupExpanded = function (group) {\n        if (group.isExpanded !== undefined) {\n            return group.isExpanded;\n        }\n        if (group.name && this.state.isGroupCollapsed.hasOwnProperty(group.name)) {\n            return !this.state.isGroupCollapsed[group.name];\n        }\n        if (group.collapseByDefault !== undefined) {\n            return !group.collapseByDefault;\n        }\n        return true;\n    };\n    NavBase.prototype._toggleCollapsed = function (group) {\n        var _a;\n        if (group.name) {\n            var newGroupCollapsed = __assign(__assign({}, this.state.isGroupCollapsed), (_a = {}, _a[group.name] = this._isGroupExpanded(group), _a));\n            this.setState({ isGroupCollapsed: newGroupCollapsed });\n        }\n    };\n    NavBase.defaultProps = {\n        groups: null,\n    };\n    return NavBase;\n}(React.Component));\nexport { NavBase };\n//# sourceMappingURL=Nav.base.js.map","import { AnimationClassNames, getFocusStyle, ZIndexes, getGlobalClassNames, HighContrastSelector, FontWeights, } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Nav',\n    linkText: 'ms-Nav-linkText',\n    compositeLink: 'ms-Nav-compositeLink',\n    link: 'ms-Nav-link',\n    chevronButton: 'ms-Nav-chevronButton',\n    chevronIcon: 'ms-Nav-chevron',\n    navItem: 'ms-Nav-navItem',\n    navItems: 'ms-Nav-navItems',\n    group: 'ms-Nav-group',\n    groupContent: 'ms-Nav-groupContent',\n};\nexport var buttonStyles = {\n    textContainer: {\n        overflow: 'hidden',\n    },\n    label: {\n        whiteSpace: 'nowrap',\n        textOverflow: 'ellipsis',\n        overflow: 'hidden',\n    },\n};\nexport var getStyles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, isOnTop = props.isOnTop, isExpanded = props.isExpanded, isGroup = props.isGroup, isLink = props.isLink, isSelected = props.isSelected, isDisabled = props.isDisabled, isButtonEntry = props.isButtonEntry, _b = props.navHeight, navHeight = _b === void 0 ? 44 : _b, position = props.position, _c = props.leftPadding, leftPadding = _c === void 0 ? 20 : _c, _d = props.leftPaddingExpanded, leftPaddingExpanded = _d === void 0 ? 28 : _d, _e = props.rightPadding, rightPadding = _e === void 0 ? 20 : _e;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            className,\n            fonts.medium,\n            {\n                overflowY: 'auto',\n                userSelect: 'none',\n                WebkitOverflowScrolling: 'touch',\n            },\n            isOnTop && [\n                {\n                    position: 'absolute',\n                },\n                AnimationClassNames.slideRightIn40,\n            ],\n        ],\n        linkText: [\n            classNames.linkText,\n            {\n                margin: '0 4px',\n                overflow: 'hidden',\n                verticalAlign: 'middle',\n                textAlign: 'left',\n                textOverflow: 'ellipsis',\n            },\n        ],\n        compositeLink: [\n            classNames.compositeLink,\n            {\n                display: 'block',\n                position: 'relative',\n                color: semanticColors.bodyText,\n            },\n            isExpanded && 'is-expanded',\n            isSelected && 'is-selected',\n            isDisabled && 'is-disabled',\n            isDisabled && {\n                color: semanticColors.disabledText,\n            },\n        ],\n        link: [\n            classNames.link,\n            getFocusStyle(theme),\n            {\n                display: 'block',\n                position: 'relative',\n                height: navHeight,\n                width: '100%',\n                lineHeight: \"\".concat(navHeight, \"px\"),\n                textDecoration: 'none',\n                cursor: 'pointer',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n                overflow: 'hidden',\n                paddingLeft: leftPadding,\n                paddingRight: rightPadding,\n                color: semanticColors.bodyText,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        border: 0,\n                        selectors: {\n                            ':focus': {\n                                border: '1px solid WindowText',\n                            },\n                        },\n                    },\n                    _a),\n            },\n            !isDisabled && {\n                selectors: {\n                    '.ms-Nav-compositeLink:hover &': {\n                        backgroundColor: semanticColors.bodyBackgroundHovered,\n                    },\n                },\n            },\n            isSelected && {\n                color: semanticColors.bodyTextChecked,\n                fontWeight: FontWeights.semibold,\n                backgroundColor: semanticColors.bodyBackgroundChecked,\n                selectors: {\n                    '&:after': {\n                        borderLeft: \"2px solid \".concat(palette.themePrimary),\n                        content: '\"\"',\n                        position: 'absolute',\n                        top: 0,\n                        right: 0,\n                        bottom: 0,\n                        left: 0,\n                        pointerEvents: 'none',\n                    },\n                },\n            },\n            isDisabled && {\n                color: semanticColors.disabledText,\n            },\n            isButtonEntry && {\n                color: palette.themePrimary,\n            },\n        ],\n        chevronButton: [\n            classNames.chevronButton,\n            getFocusStyle(theme),\n            fonts.small,\n            {\n                display: 'block',\n                textAlign: 'left',\n                lineHeight: \"\".concat(navHeight, \"px\"),\n                margin: '5px 0',\n                padding: \"0px, \".concat(rightPadding, \"px, 0px, \").concat(leftPaddingExpanded, \"px\"),\n                border: 'none',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n                overflow: 'hidden',\n                cursor: 'pointer',\n                color: semanticColors.bodyText,\n                backgroundColor: 'transparent',\n                selectors: {\n                    '&:visited': {\n                        color: semanticColors.bodyText,\n                    },\n                },\n            },\n            isGroup && {\n                fontSize: fonts.large.fontSize,\n                width: '100%',\n                height: navHeight,\n                borderBottom: \"1px solid \".concat(semanticColors.bodyDivider),\n            },\n            isLink && {\n                display: 'block',\n                width: leftPaddingExpanded - 2,\n                height: navHeight - 2,\n                position: 'absolute',\n                top: '1px',\n                left: \"\".concat(position, \"px\"),\n                zIndex: ZIndexes.Nav,\n                padding: 0,\n                margin: 0,\n            },\n        ],\n        chevronIcon: [\n            classNames.chevronIcon,\n            {\n                position: 'absolute',\n                left: '8px',\n                height: navHeight,\n                // inline-flex prevents the chevron from shifting with custom line height styles\n                display: 'inline-flex',\n                alignItems: 'center',\n                lineHeight: \"\".concat(navHeight, \"px\"),\n                fontSize: fonts.small.fontSize,\n                transition: 'transform .1s linear',\n            },\n            isExpanded && {\n                transform: 'rotate(-180deg)',\n            },\n            isLink && {\n                top: 0,\n            },\n        ],\n        navItem: [\n            classNames.navItem,\n            {\n                padding: 0,\n            },\n        ],\n        navItems: [\n            classNames.navItems,\n            {\n                listStyleType: 'none',\n                padding: 0,\n                margin: 0, // remove default <UL> styles\n            },\n        ],\n        group: [classNames.group, isExpanded && 'is-expanded'],\n        groupContent: [\n            classNames.groupContent,\n            {\n                display: 'none',\n                marginBottom: '40px',\n            },\n            AnimationClassNames.slideDownIn20,\n            isExpanded && {\n                display: 'block',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Nav.styles.js.map","import { styled } from '../../Utilities';\nimport { NavBase } from './Nav.base';\nimport { getStyles } from './Nav.styles';\nexport var Nav = styled(NavBase, getStyles, undefined, {\n    scope: 'Nav',\n});\n//# sourceMappingURL=Nav.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeytipManager } from '../../utilities/keytips/KeytipManager';\nimport { useConst, usePrevious } from '@fluentui/react-hooks';\nvar registerPersistedKeytips = function (keytipsToRegister, keytipManager, registeredPersistedKeytips) {\n    for (var _i = 0, keytipsToRegister_1 = keytipsToRegister; _i < keytipsToRegister_1.length; _i++) {\n        var keytip = keytipsToRegister_1[_i];\n        var uniqueID = keytipManager.register(keytip, true);\n        // Update map\n        registeredPersistedKeytips[uniqueID] = keytip;\n    }\n};\nvar unregisterPersistedKeytips = function (keytipManager, registeredPersistedKeytips) {\n    for (var _i = 0, _a = Object.keys(registeredPersistedKeytips); _i < _a.length; _i++) {\n        var uniqueID = _a[_i];\n        keytipManager.unregister(registeredPersistedKeytips[uniqueID], uniqueID, true);\n        delete registeredPersistedKeytips[uniqueID];\n    }\n};\nvar useKeytipRegistrations = function (registeredPersistedKeytips, keytipsToRegister, keytipManager) {\n    var prevPersistedKeytips = usePrevious(registeredPersistedKeytips);\n    // Update\n    React.useEffect(function () {\n        if (prevPersistedKeytips) {\n            // Unregister old keytips\n            unregisterPersistedKeytips(keytipManager, prevPersistedKeytips);\n            // Register new keytips\n            registerPersistedKeytips(keytipsToRegister, keytipManager, registeredPersistedKeytips);\n        }\n    });\n    // Mount/Unmount\n    React.useEffect(function () {\n        // Register on mount\n        registerPersistedKeytips(keytipsToRegister, keytipManager, registeredPersistedKeytips);\n        return function () {\n            // Unregister on unmount\n            unregisterPersistedKeytips(keytipManager, registeredPersistedKeytips);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n};\nexport var OverflowButton = function (props) {\n    var keytipManager = KeytipManager.getInstance();\n    var className = props.className, overflowItems = props.overflowItems, keytipSequences = props.keytipSequences, itemSubMenuProvider = props.itemSubMenuProvider, onRenderOverflowButton = props.onRenderOverflowButton;\n    var persistedKeytips = useConst({});\n    // Gets the subMenu for an overflow item\n    var getSubMenuForItem = React.useCallback(function (item) {\n        // Checks if itemSubMenuProvider has been defined, if not defaults to subMenuProps\n        if (itemSubMenuProvider) {\n            return itemSubMenuProvider(item);\n        }\n        if (item.subMenuProps) {\n            return item.subMenuProps.items;\n        }\n        return undefined;\n    }, [itemSubMenuProvider]);\n    var _a = React.useMemo(function () {\n        var newKeytipsToRegister = [];\n        var newOverflowItems = [];\n        if (keytipSequences) {\n            overflowItems === null || overflowItems === void 0 ? void 0 : overflowItems.forEach(function (overflowItem) {\n                var _a;\n                var keytip = overflowItem.keytipProps;\n                if (keytip) {\n                    // Create persisted keytip\n                    var persistedKeytip = {\n                        content: keytip.content,\n                        keySequences: keytip.keySequences,\n                        disabled: keytip.disabled || !!(overflowItem.disabled || overflowItem.isDisabled),\n                        hasDynamicChildren: keytip.hasDynamicChildren,\n                        hasMenu: keytip.hasMenu,\n                    };\n                    if (keytip.hasDynamicChildren || getSubMenuForItem(overflowItem)) {\n                        // If the keytip has a submenu or children nodes, change onExecute to persistedKeytipExecute\n                        persistedKeytip.onExecute = keytipManager.menuExecute.bind(keytipManager, keytipSequences, (_a = overflowItem === null || overflowItem === void 0 ? void 0 : overflowItem.keytipProps) === null || _a === void 0 ? void 0 : _a.keySequences);\n                        persistedKeytip.hasOverflowSubMenu = true;\n                    }\n                    else {\n                        // If the keytip doesn't have a submenu, just execute the original function\n                        persistedKeytip.onExecute = keytip.onExecute;\n                    }\n                    newKeytipsToRegister.push(persistedKeytip);\n                    // Add the overflow sequence to this item\n                    var newOverflowItem = __assign(__assign({}, overflowItem), { keytipProps: __assign(__assign({}, keytip), { overflowSetSequence: keytipSequences }) });\n                    newOverflowItems === null || newOverflowItems === void 0 ? void 0 : newOverflowItems.push(newOverflowItem);\n                }\n                else {\n                    // Nothing to change, add overflowItem to list\n                    newOverflowItems === null || newOverflowItems === void 0 ? void 0 : newOverflowItems.push(overflowItem);\n                }\n            });\n        }\n        else {\n            newOverflowItems = overflowItems;\n        }\n        return { modifiedOverflowItems: newOverflowItems, keytipsToRegister: newKeytipsToRegister };\n    }, [overflowItems, getSubMenuForItem, keytipManager, keytipSequences]), modifiedOverflowItems = _a.modifiedOverflowItems, keytipsToRegister = _a.keytipsToRegister;\n    useKeytipRegistrations(persistedKeytips, keytipsToRegister, keytipManager);\n    return React.createElement(\"div\", { className: className }, onRenderOverflowButton(modifiedOverflowItems));\n};\n//# sourceMappingURL=OverflowButton.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { classNamesFunction, divProperties, elementContains, getNativeProps, focusFirstChild } from '../../Utilities';\nimport { OverflowButton } from './OverflowButton';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'OverflowSet';\nvar useComponentRef = function (props, divContainer) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        focus: function (_forceIntoFirstElement, bypassHiddenElements) {\n            var focusSucceeded = false;\n            if (divContainer.current) {\n                focusSucceeded = focusFirstChild(divContainer.current, bypassHiddenElements);\n            }\n            return focusSucceeded;\n        },\n        focusElement: function (childElement) {\n            var focusSucceeded = false;\n            if (!childElement) {\n                return false;\n            }\n            if (divContainer.current && elementContains(divContainer.current, childElement)) {\n                childElement.focus();\n                focusSucceeded = document.activeElement === childElement;\n            }\n            return focusSucceeded;\n        },\n    }); }, [divContainer]);\n};\nexport var OverflowSetBase = React.forwardRef(function (props, forwardedRef) {\n    var divContainer = React.useRef(null);\n    var mergedRef = useMergedRefs(divContainer, forwardedRef);\n    useComponentRef(props, divContainer);\n    var items = props.items, overflowItems = props.overflowItems, className = props.className, styles = props.styles, vertical = props.vertical, role = props.role, _a = props.overflowSide, overflowSide = _a === void 0 ? 'end' : _a, onRenderItem = props.onRenderItem;\n    var classNames = getClassNames(styles, { className: className, vertical: vertical });\n    var showOverflow = !!overflowItems && overflowItems.length > 0;\n    return (React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties), { role: role || 'group', \"aria-orientation\": role === 'menubar' ? (vertical === true ? 'vertical' : 'horizontal') : undefined, className: classNames.root, ref: mergedRef }),\n        overflowSide === 'start' && showOverflow && React.createElement(OverflowButton, __assign({}, props, { className: classNames.overflowButton })),\n        items &&\n            items.map(function (item, i) { return (React.createElement(\"div\", { className: classNames.item, key: item.key, role: \"none\" }, onRenderItem(item))); }),\n        overflowSide === 'end' && showOverflow && React.createElement(OverflowButton, __assign({}, props, { className: classNames.overflowButton }))));\n});\nOverflowSetBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=OverflowSet.base.js.map","var overflowItemStyle = {\n    flexShrink: 0,\n    display: 'inherit',\n};\nexport var getStyles = function (props) {\n    var className = props.className, vertical = props.vertical;\n    return {\n        root: [\n            'ms-OverflowSet',\n            {\n                position: 'relative',\n                display: 'flex',\n                flexWrap: 'nowrap',\n            },\n            vertical && { flexDirection: 'column' },\n            className,\n        ],\n        item: ['ms-OverflowSet-item', overflowItemStyle],\n        overflowButton: ['ms-OverflowSet-overflowButton', overflowItemStyle],\n    };\n};\n//# sourceMappingURL=OverflowSet.styles.js.map","import { styled } from '../../Utilities';\nimport { OverflowSetBase } from './OverflowSet.base';\nimport { getStyles } from './OverflowSet.styles';\nexport var OverflowSet = styled(OverflowSetBase, getStyles, undefined, {\n    scope: 'OverflowSet',\n});\n//# sourceMappingURL=OverflowSet.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n    __extends(OverlayBase, _super);\n    function OverlayBase(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n        _this._allowTouchBodyScroll = allowTouchBodyScroll;\n        return _this;\n    }\n    OverlayBase.prototype.componentDidMount = function () {\n        !this._allowTouchBodyScroll && disableBodyScroll();\n    };\n    OverlayBase.prototype.componentWillUnmount = function () {\n        !this._allowTouchBodyScroll && enableBodyScroll();\n    };\n    OverlayBase.prototype.render = function () {\n        var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n        var divProps = getNativeProps(this.props, divProperties);\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            isDark: isDark,\n        });\n        return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n    };\n    return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Overlay',\n    rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n    var palette = theme.palette;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                backgroundColor: palette.whiteTranslucent40,\n                top: 0,\n                right: 0,\n                bottom: 0,\n                left: 0,\n                position: 'absolute',\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        border: '1px solid WindowText',\n                        opacity: 0,\n                    },\n                    _a),\n            },\n            isNone && {\n                visibility: 'hidden',\n            },\n            isDark && [\n                classNames.rootDark,\n                {\n                    backgroundColor: palette.blackTranslucent40,\n                },\n            ],\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n    scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Layer } from '../../Layer';\nimport { Overlay } from '../../Overlay';\nimport { Popup } from '../../Popup';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, divProperties, elementContains, getId, getNativeProps, getRTL, css, warnDeprecations, Async, EventGroup, initializeComponentRef, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { PanelType } from './Panel.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Panel';\nvar PanelVisibilityState;\n(function (PanelVisibilityState) {\n    PanelVisibilityState[PanelVisibilityState[\"closed\"] = 0] = \"closed\";\n    PanelVisibilityState[PanelVisibilityState[\"animatingOpen\"] = 1] = \"animatingOpen\";\n    PanelVisibilityState[PanelVisibilityState[\"open\"] = 2] = \"open\";\n    PanelVisibilityState[PanelVisibilityState[\"animatingClosed\"] = 3] = \"animatingClosed\";\n})(PanelVisibilityState || (PanelVisibilityState = {}));\nvar PanelBase = /** @class */ (function (_super) {\n    __extends(PanelBase, _super);\n    function PanelBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._panel = React.createRef();\n        _this._animationCallback = null;\n        _this._hasCustomNavigation = !!(_this.props.onRenderNavigation || _this.props.onRenderNavigationContent);\n        _this.dismiss = function (ev) {\n            if (_this.props.onDismiss && _this.isActive) {\n                _this.props.onDismiss(ev);\n            }\n            if (!ev || (ev && !ev.defaultPrevented)) {\n                _this.close();\n            }\n        };\n        // Allow the user to scroll within the panel but not on the body\n        _this._allowScrollOnPanel = function (elt) {\n            if (elt) {\n                if (_this._allowTouchBodyScroll) {\n                    allowOverscrollOnElement(elt, _this._events);\n                }\n                else {\n                    allowScrollOnElement(elt, _this._events);\n                }\n            }\n            else {\n                _this._events.off(_this._scrollableContent);\n            }\n            _this._scrollableContent = elt;\n        };\n        _this._onRenderNavigation = function (props) {\n            if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {\n                return null;\n            }\n            var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;\n            return (React.createElement(\"div\", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent)));\n        };\n        _this._onRenderNavigationContent = function (props) {\n            var _a;\n            var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton, _b = props.onRenderHeader, onRenderHeader = _b === void 0 ? _this._onRenderHeader : _b;\n            if (hasCloseButton) {\n                var iconButtonStyles = (_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.closeButton();\n                return (React.createElement(React.Fragment, null,\n                    !_this._hasCustomNavigation && onRenderHeader(_this.props, _this._onRenderHeader, _this._headerTextId),\n                    React.createElement(IconButton, { styles: iconButtonStyles, className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, \"data-is-visible\": true, iconProps: { iconName: 'Cancel' } })));\n            }\n            return null;\n        };\n        _this._onRenderHeader = function (props, defaultRender, headerTextId) {\n            var headerText = props.headerText, _a = props.headerTextProps, headerTextProps = _a === void 0 ? {} : _a;\n            if (headerText) {\n                return (React.createElement(\"div\", { className: _this._classNames.header },\n                    React.createElement(\"div\", __assign({ id: headerTextId, role: \"heading\", \"aria-level\": 1 }, headerTextProps, { className: css(_this._classNames.headerText, headerTextProps.className) }), headerText)));\n            }\n            return null;\n        };\n        _this._onRenderBody = function (props) {\n            return React.createElement(\"div\", { className: _this._classNames.content }, props.children);\n        };\n        _this._onRenderFooter = function (props) {\n            var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;\n            if (onRenderFooterContent) {\n                return (React.createElement(\"div\", { className: _this._classNames.footer },\n                    React.createElement(\"div\", { className: _this._classNames.footerInner }, onRenderFooterContent())));\n            }\n            return null;\n        };\n        _this._animateTo = function (newVisibilityState) {\n            if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpen) {\n                _this.props.onOpen();\n            }\n            _this._animationCallback = _this._async.setTimeout(function () {\n                _this.setState({ visibility: newVisibilityState });\n                _this._onTransitionComplete(newVisibilityState);\n            }, 200);\n        };\n        _this._clearExistingAnimationTimer = function () {\n            if (_this._animationCallback !== null) {\n                _this._async.clearTimeout(_this._animationCallback);\n            }\n        };\n        _this._onPanelClick = function (ev) {\n            _this.dismiss(ev);\n        };\n        _this._onTransitionComplete = function (newVisibilityState) {\n            _this._updateFooterPosition();\n            if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpened) {\n                _this.props.onOpened();\n            }\n            if (newVisibilityState === PanelVisibilityState.closed && _this.props.onDismissed) {\n                _this.props.onDismissed();\n            }\n        };\n        var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n        _this._allowTouchBodyScroll = allowTouchBodyScroll;\n        initializeComponentRef(_this);\n        warnDeprecations(COMPONENT_NAME, props, {\n            ignoreExternalFocusing: 'focusTrapZoneProps',\n            forceFocusInsideTrap: 'focusTrapZoneProps',\n            firstFocusableSelector: 'focusTrapZoneProps',\n        });\n        _this.state = {\n            isFooterSticky: false,\n            // intentionally ignore props so animation takes place during componentDidMount\n            visibility: PanelVisibilityState.closed,\n            id: getId('Panel'),\n        };\n        return _this;\n    }\n    PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {\n        if (nextProps.isOpen === undefined) {\n            return null; // no state update\n        }\n        if (nextProps.isOpen &&\n            (prevState.visibility === PanelVisibilityState.closed ||\n                prevState.visibility === PanelVisibilityState.animatingClosed)) {\n            return { visibility: PanelVisibilityState.animatingOpen };\n        }\n        if (!nextProps.isOpen &&\n            (prevState.visibility === PanelVisibilityState.open ||\n                prevState.visibility === PanelVisibilityState.animatingOpen)) {\n            return { visibility: PanelVisibilityState.animatingClosed };\n        }\n        return null;\n    };\n    PanelBase.prototype.componentDidMount = function () {\n        this._async = new Async(this);\n        this._events = new EventGroup(this);\n        this._events.on(window, 'resize', this._updateFooterPosition);\n        if (this._shouldListenForOuterClick(this.props)) {\n            this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n        }\n        if (this.props.isOpen) {\n            this.setState({ visibility: PanelVisibilityState.animatingOpen });\n        }\n    };\n    PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {\n        var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);\n        var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);\n        if (this.state.visibility !== previousState.visibility) {\n            this._clearExistingAnimationTimer();\n            if (this.state.visibility === PanelVisibilityState.animatingOpen) {\n                this._animateTo(PanelVisibilityState.open);\n            }\n            else if (this.state.visibility === PanelVisibilityState.animatingClosed) {\n                this._animateTo(PanelVisibilityState.closed);\n            }\n        }\n        if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {\n            this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n        }\n        else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {\n            this._events.off(document.body, 'mousedown', this._dismissOnOuterClick, true);\n        }\n    };\n    PanelBase.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n    };\n    PanelBase.prototype.render = function () {\n        var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, \n        /* eslint-disable deprecation/deprecation */\n        firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, popupProps = _a.popupProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;\n        var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;\n        var isLeft = type === PanelType.smallFixedNear || type === PanelType.customNear ? true : false;\n        var isRTL = getRTL(theme);\n        var isOnRightSide = isRTL ? isLeft : !isLeft;\n        var customWidthStyles = type === PanelType.custom || type === PanelType.customNear ? { width: customWidth } : {};\n        var nativeProps = getNativeProps(this.props, divProperties);\n        var isOpen = this.isActive;\n        var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;\n        this._headerTextId = headerText && id + '-headerText';\n        if (!isOpen && !isAnimating && !isHiddenOnDismiss) {\n            return null;\n        }\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,\n            hasCloseButton: hasCloseButton,\n            headerClassName: headerClassName,\n            isAnimating: isAnimating,\n            isFooterSticky: isFooterSticky,\n            isFooterAtBottom: isFooterAtBottom,\n            isOnRightSide: isOnRightSide,\n            isOpen: isOpen,\n            isHiddenOnDismiss: isHiddenOnDismiss,\n            type: type,\n            hasCustomNavigation: this._hasCustomNavigation,\n        });\n        var _k = this, _classNames = _k._classNames, _allowTouchBodyScroll = _k._allowTouchBodyScroll;\n        var overlay;\n        if (isBlocking && isOpen) {\n            overlay = (React.createElement(Overlay, __assign({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined, allowTouchBodyScroll: _allowTouchBodyScroll }, overlayProps)));\n        }\n        return (React.createElement(Layer, __assign({}, layerProps),\n            React.createElement(Popup, __assign({ role: \"dialog\", \"aria-modal\": isBlocking ? 'true' : undefined, ariaLabelledBy: this._headerTextId ? this._headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel, enableAriaHiddenSiblings: isOpen ? true : false }, popupProps),\n                React.createElement(\"div\", __assign({ \"aria-hidden\": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),\n                    overlay,\n                    React.createElement(FocusTrapZone, __assign({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),\n                        React.createElement(\"div\", { className: _classNames.contentInner },\n                            React.createElement(\"div\", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, \"data-is-scrollable\": true },\n                                React.createElement(\"div\", { className: _classNames.commands, \"data-is-visible\": true }, onRenderNavigation(this.props, this._onRenderNavigation)),\n                                (this._hasCustomNavigation || !hasCloseButton) &&\n                                    onRenderHeader(this.props, this._onRenderHeader, this._headerTextId),\n                                onRenderBody(this.props, this._onRenderBody),\n                                onRenderFooter(this.props, this._onRenderFooter))))))));\n    };\n    PanelBase.prototype.open = function () {\n        if (this.props.isOpen !== undefined) {\n            return;\n        }\n        if (this.isActive) {\n            return;\n        }\n        this.setState({ visibility: PanelVisibilityState.animatingOpen });\n    };\n    PanelBase.prototype.close = function () {\n        if (this.props.isOpen !== undefined) {\n            return;\n        }\n        if (!this.isActive) {\n            return;\n        }\n        this.setState({ visibility: PanelVisibilityState.animatingClosed });\n    };\n    Object.defineProperty(PanelBase.prototype, \"isActive\", {\n        /** isActive is true when panel is open or opening. */\n        get: function () {\n            return (this.state.visibility === PanelVisibilityState.open ||\n                this.state.visibility === PanelVisibilityState.animatingOpen);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    PanelBase.prototype._shouldListenForOuterClick = function (props) {\n        return !!props.isBlocking && !!props.isOpen;\n    };\n    PanelBase.prototype._updateFooterPosition = function () {\n        var scrollableContent = this._scrollableContent;\n        if (scrollableContent) {\n            var height = scrollableContent.clientHeight;\n            var innerHeight_1 = scrollableContent.scrollHeight;\n            this.setState({\n                isFooterSticky: height < innerHeight_1 ? true : false,\n            });\n        }\n    };\n    PanelBase.prototype._dismissOnOuterClick = function (ev) {\n        var panel = this._panel.current;\n        if (this.isActive && panel && !ev.defaultPrevented) {\n            if (!elementContains(panel, ev.target)) {\n                if (this.props.onOuterClick) {\n                    this.props.onOuterClick(ev);\n                }\n                else {\n                    this.dismiss(ev);\n                }\n            }\n        }\n    };\n    PanelBase.defaultProps = {\n        isHiddenOnDismiss: false,\n        isOpen: undefined,\n        isBlocking: true,\n        hasCloseButton: true,\n        type: PanelType.smallFixedFar,\n    };\n    return PanelBase;\n}(React.Component));\nexport { PanelBase };\n//# sourceMappingURL=Panel.base.js.map","var _a, _b, _c, _d, _e;\nimport { __assign } from \"tslib\";\nimport { PanelType } from './Panel.types';\nimport { AnimationClassNames, AnimationVariables, getGlobalClassNames, HighContrastSelector, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinUhfMobile, IconFontSizes, } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Panel',\n    main: 'ms-Panel-main',\n    commands: 'ms-Panel-commands',\n    contentInner: 'ms-Panel-contentInner',\n    scrollableContent: 'ms-Panel-scrollableContent',\n    navigation: 'ms-Panel-navigation',\n    closeButton: 'ms-Panel-closeButton ms-PanelAction-close',\n    header: 'ms-Panel-header',\n    headerText: 'ms-Panel-headerText',\n    content: 'ms-Panel-content',\n    footer: 'ms-Panel-footer',\n    footerInner: 'ms-Panel-footerInner',\n    isOpen: 'is-open',\n    hasCloseButton: 'ms-Panel--hasCloseButton',\n    smallFluid: 'ms-Panel--smFluid',\n    smallFixedNear: 'ms-Panel--smLeft',\n    smallFixedFar: 'ms-Panel--sm',\n    medium: 'ms-Panel--md',\n    large: 'ms-Panel--lg',\n    largeFixed: 'ms-Panel--fixed',\n    extraLarge: 'ms-Panel--xl',\n    custom: 'ms-Panel--custom',\n    customNear: 'ms-Panel--customLeft',\n};\nvar panelWidth = {\n    full: '100%',\n    auto: 'auto',\n    xs: 272,\n    sm: 340,\n    md1: 592,\n    md2: 644,\n    lg: 940,\n};\nvar panelMargin = {\n    auto: 'auto',\n    none: 0,\n    md: 48,\n    lg: 428,\n    xl: 176,\n};\n// Following consts are used below in `getPanelBreakpoints()` function to provide\n// necessary fallbacks for different types of Panel in different breakpoints.\nvar smallPanelSelectors = (_a = {},\n    _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n        width: panelWidth.sm,\n    },\n    _a);\nvar mediumPanelSelectors = (_b = {},\n    _b[\"@media (min-width: \".concat(ScreenWidthMinLarge, \"px)\")] = {\n        width: panelWidth.md1,\n    },\n    _b[\"@media (min-width: \".concat(ScreenWidthMinXLarge, \"px)\")] = {\n        width: panelWidth.md2,\n    },\n    _b);\nvar largePanelSelectors = (_c = {},\n    _c[\"@media (min-width: \".concat(ScreenWidthMinUhfMobile, \"px)\")] = {\n        left: panelMargin.md,\n        width: panelWidth.auto,\n    },\n    _c[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n        left: panelMargin.lg,\n    },\n    _c);\nvar largeFixedPanelSelectors = (_d = {},\n    _d[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n        left: panelMargin.auto,\n        width: panelWidth.lg,\n    },\n    _d);\nvar extraLargePanelSelectors = (_e = {},\n    _e[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n        left: panelMargin.xl,\n    },\n    _e);\n// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.\n// This is done in the effort to follow design redlines.\nvar getPanelBreakpoints = function (type) {\n    var selectors;\n    // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`\n    // are not checked in here because they render the same in all the breakpoints\n    // and have the checks done separately in the `getStyles` function below.\n    switch (type) {\n        case PanelType.smallFixedFar:\n            selectors = __assign({}, smallPanelSelectors);\n            break;\n        case PanelType.medium:\n            selectors = __assign(__assign({}, smallPanelSelectors), mediumPanelSelectors);\n            break;\n        case PanelType.large:\n            selectors = __assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors);\n            break;\n        case PanelType.largeFixed:\n            selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), largeFixedPanelSelectors);\n            break;\n        case PanelType.extraLarge:\n            selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), extraLargePanelSelectors);\n            break;\n        default:\n            break;\n    }\n    return selectors;\n};\nvar commandBarHeight = '44px';\nvar sharedPaddingStyles = {\n    paddingLeft: '24px',\n    paddingRight: '24px',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d;\n    var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, hasCustomNavigation = props.hasCustomNavigation, theme = props.theme, _e = props.type, type = _e === void 0 ? PanelType.smallFixedFar : _e;\n    var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var isCustomPanel = type === PanelType.custom || type === PanelType.customNear;\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            isOpen && classNames.isOpen,\n            hasCloseButton && classNames.hasCloseButton,\n            {\n                pointerEvents: 'none',\n                position: 'absolute',\n                top: 0,\n                left: 0,\n                right: 0,\n                bottom: 0,\n            },\n            isCustomPanel && isOnRightSide && classNames.custom,\n            isCustomPanel && !isOnRightSide && classNames.customNear,\n            className,\n        ],\n        overlay: [\n            {\n                pointerEvents: 'auto',\n                cursor: 'pointer',\n            },\n            isOpen && isAnimating && AnimationClassNames.fadeIn100,\n            !isOpen && isAnimating && AnimationClassNames.fadeOut100,\n        ],\n        hiddenPanel: [\n            !isOpen &&\n                !isAnimating &&\n                isHiddenOnDismiss && {\n                visibility: 'hidden',\n            },\n        ],\n        main: [\n            classNames.main,\n            {\n                backgroundColor: semanticColors.bodyBackground,\n                boxShadow: effects.elevation64,\n                pointerEvents: 'auto',\n                position: 'absolute',\n                display: 'flex',\n                flexDirection: 'column',\n                overflowX: 'hidden',\n                overflowY: 'auto',\n                WebkitOverflowScrolling: 'touch',\n                bottom: 0,\n                top: 0,\n                // left, right, width are overridden depending on the type of the Panel and the screen breakpoint.\n                left: panelMargin.auto,\n                right: panelMargin.none,\n                width: panelWidth.full,\n                selectors: __assign((_a = {}, _a[HighContrastSelector] = {\n                    borderLeft: \"3px solid \".concat(semanticColors.variantBorder),\n                    borderRight: \"3px solid \".concat(semanticColors.variantBorder),\n                }, _a), getPanelBreakpoints(type)),\n            },\n            type === PanelType.smallFluid && {\n                left: panelMargin.none,\n            },\n            type === PanelType.smallFixedNear && {\n                left: panelMargin.none,\n                right: panelMargin.auto,\n                width: panelWidth.xs,\n            },\n            type === PanelType.customNear && {\n                right: 'auto',\n                left: 0,\n            },\n            isCustomPanel && {\n                maxWidth: '100vw',\n            },\n            isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideRightIn40,\n            isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideLeftIn40,\n            !isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideLeftOut40,\n            !isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideRightOut40,\n            focusTrapZoneClassName,\n        ],\n        commands: [\n            classNames.commands,\n            {\n                // Ensures that the sticky header always has a background to prevent overlaps on scroll.\n                backgroundColor: semanticColors.bodyBackground,\n                paddingTop: 18,\n                selectors: (_b = {},\n                    _b[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n                        position: 'sticky',\n                        top: 0,\n                        zIndex: 1,\n                    },\n                    _b),\n            },\n            hasCustomNavigation && {\n                paddingTop: 'inherit',\n            },\n        ],\n        navigation: [\n            classNames.navigation,\n            {\n                display: 'flex',\n                justifyContent: 'flex-end',\n            },\n            hasCustomNavigation && {\n                height: commandBarHeight,\n            },\n        ],\n        contentInner: [\n            classNames.contentInner,\n            {\n                display: 'flex',\n                flexDirection: 'column',\n                flexGrow: 1,\n                overflowY: 'hidden',\n            },\n        ],\n        header: [\n            classNames.header,\n            sharedPaddingStyles,\n            {\n                alignSelf: 'flex-start',\n            },\n            hasCloseButton &&\n                !hasCustomNavigation && {\n                flexGrow: 1,\n            },\n            hasCustomNavigation && {\n                // Ensure that title doesn't shrink if screen is too small\n                flexShrink: 0,\n            },\n        ],\n        headerText: [\n            classNames.headerText,\n            fonts.xLarge,\n            {\n                color: semanticColors.bodyText,\n                lineHeight: '27px',\n                overflowWrap: 'break-word',\n                wordWrap: 'break-word',\n                wordBreak: 'break-word',\n                hyphens: 'auto',\n            },\n            headerClassName,\n        ],\n        scrollableContent: [\n            classNames.scrollableContent,\n            {\n                overflowY: 'auto',\n            },\n            isFooterAtBottom && {\n                flexGrow: 1,\n                display: 'inherit',\n                flexDirection: 'inherit',\n            },\n        ],\n        content: [\n            classNames.content,\n            sharedPaddingStyles,\n            {\n                paddingBottom: 20,\n            },\n            isFooterAtBottom && {\n                selectors: (_c = {},\n                    _c[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n                        flexGrow: 1,\n                    },\n                    _c),\n            },\n        ],\n        footer: [\n            classNames.footer,\n            {\n                // Ensure that footer doesn't shrink if screen is too small\n                flexShrink: 0,\n                borderTop: '1px solid transparent',\n                transition: \"opacity \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction2),\n                selectors: (_d = {},\n                    _d[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n                        position: 'sticky',\n                        bottom: 0,\n                    },\n                    _d),\n            },\n            isFooterSticky && {\n                backgroundColor: semanticColors.bodyBackground,\n                borderTopColor: semanticColors.variantBorder,\n            },\n        ],\n        footerInner: [\n            classNames.footerInner,\n            sharedPaddingStyles,\n            {\n                paddingBottom: 16,\n                paddingTop: 16,\n            },\n        ],\n        subComponentStyles: {\n            closeButton: {\n                root: [\n                    classNames.closeButton,\n                    {\n                        marginRight: 14,\n                        color: theme.palette.neutralSecondary,\n                        fontSize: IconFontSizes.large,\n                    },\n                    hasCustomNavigation && {\n                        marginRight: 0,\n                        height: 'auto',\n                        width: '44px',\n                    },\n                ],\n                rootHovered: {\n                    color: theme.palette.neutralPrimary,\n                },\n            },\n        },\n    };\n};\n//# sourceMappingURL=Panel.styles.js.map","import { styled } from '../../Utilities';\nimport { PanelBase } from './Panel.base';\nimport { getStyles } from './Panel.styles';\n/**\n * Panel description\n */\nexport var Panel = styled(PanelBase, getStyles, undefined, {\n    scope: 'Panel',\n});\n//# sourceMappingURL=Panel.js.map","/**\n * {@docCategory Panel}\n */\nexport var PanelType;\n(function (PanelType) {\n    /**\n     * Renders the Panel with a `fluid` (full screen) width.\n     * Recommended for use on small screen breakpoints.\n     * - Small (320-479): full screen width, 16px left/right padding\n     * - Medium (480-639): full screen width, 16px left/right padding\n     * - Large (640-1023): full screen width, 32px left/right padding\n     * - XLarge (1024-1365): full screen width, 32px left/right padding\n     * - XXLarge (1366-up): full screen width, 40px left/right padding\n     */\n    PanelType[PanelType[\"smallFluid\"] = 0] = \"smallFluid\";\n    /**\n     * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): 340px width, 16px left/right padding\n     * - Large (640-1023): 340px width, 32px left/right padding\n     * - XLarge (1024-1365): 340px width, 32px left/right padding\n     * - XXLarge (1366-up): 340px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"smallFixedFar\"] = 1] = \"smallFixedFar\";\n    /**\n     * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n     * - Small (320-479): 272px width, 16px left/right padding\n     * - Medium (480-639): 272px width, 16px left/right padding\n     * - Large (640-1023): 272px width, 32px left/right padding\n     * - XLarge (1024-1365): 272px width, 32px left/right padding\n     * - XXLarge (1366-up): 272px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"smallFixedNear\"] = 2] = \"smallFixedNear\";\n    /**\n     * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): 592px width, 32px left/right padding\n     * - XLarge (1024-1365): 644px width, 32px left/right padding\n     * - XXLarge (1366-up): 644px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"medium\"] = 3] = \"medium\";\n    /**\n     * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639):  adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n     * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n     * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n     */\n    PanelType[PanelType[\"large\"] = 4] = \"large\";\n    /**\n     * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n     * XX-Large breakpoint.\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n     * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n     * - XXLarge (1366-up): 940px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"largeFixed\"] = 5] = \"largeFixed\";\n    /**\n     * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n     * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n     * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n     * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n     */\n    PanelType[PanelType[\"extraLarge\"] = 6] = \"extraLarge\";\n    /**\n     * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n     * - Has a fixed width provided by the `customWidth` prop\n     * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n     * taking up 100% of the viewport width\n     */\n    PanelType[PanelType[\"custom\"] = 7] = \"custom\";\n    /**\n     * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n     * - Has a fixed width provided by the `customWidth` prop\n     * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n     * taking up 100% of the viewport width\n     */\n    PanelType[PanelType[\"customNear\"] = 8] = \"customNear\";\n})(PanelType || (PanelType = {}));\n//# sourceMappingURL=Panel.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps, getPropsWithDefaults } from '../../Utilities';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { PersonaCoin } from './PersonaCoin/PersonaCoin';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from './Persona.types';\nimport { useWarnings, useMergedRefs } from '@fluentui/react-hooks';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n    size: PersonaSize.size48,\n    presence: PersonaPresenceEnum.none,\n    imageAlt: '',\n    showOverflowTooltip: true,\n};\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'Persona',\n            props: props,\n            deprecations: { primaryText: 'text' },\n        });\n    }\n}\n/**\n * Persona with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    useDebugWarnings(props);\n    var rootRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n    /**\n     * Deprecation helper for getting text.\n     */\n    var getText = function () {\n        // eslint-disable-next-line deprecation/deprecation\n        return props.text || props.primaryText || '';\n    };\n    /**\n     * Renders various types of Text (primaryText, secondaryText, etc)\n     * based on the classNames passed\n     * @param elementClassNames - element className\n     * @param renderFunction - render function\n     * @param defaultRenderFunction - default render function\n     */\n    var renderElement = function (elementClassNames, renderFunction, defaultRenderFunction) {\n        var content = renderFunction && renderFunction(props, defaultRenderFunction);\n        return content ? (React.createElement(\"div\", { dir: \"auto\", className: elementClassNames }, content)) : undefined;\n    };\n    /**\n     * using closure to wrap the default render behavior\n     * to make it independent of the type of text passed\n     * @param text - text to render\n     */\n    var onRenderText = function (text, tooltip) {\n        if (tooltip === void 0) { tooltip = true; }\n        // return default render behavior for valid text or undefined\n        return text\n            ? tooltip\n                ? function () {\n                    // default onRender behavior\n                    return (React.createElement(TooltipHost, { content: text, overflowMode: TooltipOverflowMode.Parent, directionalHint: DirectionalHint.topLeftEdge }, text));\n                }\n                : function () { return React.createElement(React.Fragment, null, text); }\n            : undefined;\n    };\n    var onInternalRenderPersonaCoin = function (providedCoinProps) {\n        return React.createElement(PersonaCoin, __assign({}, providedCoinProps));\n    };\n    // wrapping default render behavior based on various props properties\n    var onInternalRenderPrimaryText = onRenderText(getText(), props.showOverflowTooltip);\n    var onInternalRenderSecondaryText = onRenderText(props.secondaryText, props.showOverflowTooltip);\n    var onInternalRenderTertiaryText = onRenderText(props.tertiaryText, props.showOverflowTooltip);\n    var onInternalRenderOptionalText = onRenderText(props.optionalText, props.showOverflowTooltip);\n    var hidePersonaDetails = props.hidePersonaDetails, _a = props.onRenderOptionalText, onRenderOptionalText = _a === void 0 ? onInternalRenderOptionalText : _a, _b = props.onRenderPrimaryText, onRenderPrimaryText = _b === void 0 ? onInternalRenderPrimaryText : _b, _c = props.onRenderSecondaryText, onRenderSecondaryText = _c === void 0 ? onInternalRenderSecondaryText : _c, _d = props.onRenderTertiaryText, onRenderTertiaryText = _d === void 0 ? onInternalRenderTertiaryText : _d, _e = props.onRenderPersonaCoin, onRenderPersonaCoin = _e === void 0 ? onInternalRenderPersonaCoin : _e;\n    var size = props.size;\n    // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used\n    var allowPhoneInitials = props.allowPhoneInitials, className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageAlt = props.imageAlt, imageInitials = props.imageInitials, imageShouldFadeIn = props.imageShouldFadeIn, imageShouldStartVisible = props.imageShouldStartVisible, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, onPhotoLoadingStateChange = props.onPhotoLoadingStateChange, \n    // eslint-disable-next-line deprecation/deprecation\n    onRenderCoin = props.onRenderCoin, onRenderInitials = props.onRenderInitials, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, showSecondaryText = props.showSecondaryText, theme = props.theme;\n    var personaCoinProps = __assign({ allowPhoneInitials: allowPhoneInitials, showUnknownPersonaCoin: showUnknownPersonaCoin, coinSize: coinSize, imageAlt: imageAlt, imageInitials: imageInitials, imageShouldFadeIn: imageShouldFadeIn, imageShouldStartVisible: imageShouldStartVisible, imageUrl: imageUrl, initialsColor: initialsColor, initialsTextColor: initialsTextColor, onPhotoLoadingStateChange: onPhotoLoadingStateChange, onRenderCoin: onRenderCoin, onRenderInitials: onRenderInitials, presence: presence, presenceTitle: presenceTitle, showInitialsUntilImageLoads: showInitialsUntilImageLoads, size: size, text: getText(), isOutOfOffice: isOutOfOffice, presenceColors: presenceColors }, coinProps);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        showSecondaryText: showSecondaryText,\n        presence: presence,\n        size: size,\n    });\n    var divProps = getNativeProps(props, divProperties);\n    var personaDetails = (React.createElement(\"div\", { className: classNames.details },\n        renderElement(classNames.primaryText, onRenderPrimaryText, onInternalRenderPrimaryText),\n        renderElement(classNames.secondaryText, onRenderSecondaryText, onInternalRenderSecondaryText),\n        renderElement(classNames.tertiaryText, onRenderTertiaryText, onInternalRenderTertiaryText),\n        renderElement(classNames.optionalText, onRenderOptionalText, onInternalRenderOptionalText),\n        props.children));\n    return (React.createElement(\"div\", __assign({}, divProps, { ref: mergedRootRef, className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),\n        onRenderPersonaCoin(personaCoinProps, onRenderPersonaCoin),\n        /* eslint-disable deprecation/deprecation */\n        (!hidePersonaDetails ||\n            size === PersonaSize.size8 ||\n            size === PersonaSize.size10 ||\n            size === PersonaSize.tiny) &&\n            personaDetails\n    /* eslint-enable deprecation/deprecation */\n    ));\n});\nPersonaBase.displayName = 'PersonaBase';\n//# sourceMappingURL=Persona.base.js.map","import { FontWeights, normalize, noWrap, getGlobalClassNames } from '../../Styling';\nimport { personaSize, presenceBoolean, sizeBoolean } from './PersonaConsts';\nvar GlobalClassNames = {\n    root: 'ms-Persona',\n    size8: 'ms-Persona--size8',\n    size10: 'ms-Persona--size10',\n    size16: 'ms-Persona--size16',\n    size24: 'ms-Persona--size24',\n    size28: 'ms-Persona--size28',\n    size32: 'ms-Persona--size32',\n    size40: 'ms-Persona--size40',\n    size48: 'ms-Persona--size48',\n    size56: 'ms-Persona--size56',\n    size72: 'ms-Persona--size72',\n    size100: 'ms-Persona--size100',\n    size120: 'ms-Persona--size120',\n    available: 'ms-Persona--online',\n    away: 'ms-Persona--away',\n    blocked: 'ms-Persona--blocked',\n    busy: 'ms-Persona--busy',\n    doNotDisturb: 'ms-Persona--donotdisturb',\n    offline: 'ms-Persona--offline',\n    details: 'ms-Persona-details',\n    primaryText: 'ms-Persona-primaryText',\n    secondaryText: 'ms-Persona-secondaryText',\n    tertiaryText: 'ms-Persona-tertiaryText',\n    optionalText: 'ms-Persona-optionalText',\n    textContent: 'ms-Persona-textContent',\n};\nexport var getStyles = function (props) {\n    var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var size = sizeBoolean(props.size);\n    var presence = presenceBoolean(props.presence);\n    var showSecondaryTextDefaultHeight = '16px';\n    var sharedTextStyles = {\n        color: semanticColors.bodySubtext,\n        fontWeight: FontWeights.regular,\n        fontSize: fonts.small.fontSize,\n    };\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            normalize,\n            {\n                color: semanticColors.bodyText,\n                position: 'relative',\n                height: personaSize.size48,\n                minWidth: personaSize.size48,\n                display: 'flex',\n                alignItems: 'center',\n                selectors: {\n                    '.contextualHost': {\n                        display: 'none',\n                    },\n                },\n            },\n            size.isSize8 && [\n                classNames.size8,\n                {\n                    height: personaSize.size8,\n                    minWidth: personaSize.size8,\n                },\n            ],\n            // TODO: Deprecated size and needs to be removed in a future major release.\n            size.isSize10 && [\n                classNames.size10,\n                {\n                    height: personaSize.size10,\n                    minWidth: personaSize.size10,\n                },\n            ],\n            // TODO: Deprecated size and needs to be removed in a future major release.\n            size.isSize16 && [\n                classNames.size16,\n                {\n                    height: personaSize.size16,\n                    minWidth: personaSize.size16,\n                },\n            ],\n            size.isSize24 && [\n                classNames.size24,\n                {\n                    height: personaSize.size24,\n                    minWidth: personaSize.size24,\n                },\n            ],\n            size.isSize24 &&\n                showSecondaryText && {\n                height: '36px',\n            },\n            // TODO: Deprecated size and needs to be removed in a future major release.\n            size.isSize28 && [\n                classNames.size28,\n                {\n                    height: personaSize.size28,\n                    minWidth: personaSize.size28,\n                },\n            ],\n            size.isSize28 &&\n                showSecondaryText && {\n                height: '32px',\n            },\n            size.isSize32 && [\n                classNames.size32,\n                {\n                    height: personaSize.size32,\n                    minWidth: personaSize.size32,\n                },\n            ],\n            size.isSize40 && [\n                classNames.size40,\n                {\n                    height: personaSize.size40,\n                    minWidth: personaSize.size40,\n                },\n            ],\n            size.isSize48 && classNames.size48,\n            size.isSize56 && [\n                classNames.size56,\n                {\n                    height: personaSize.size56,\n                    minWidth: personaSize.size56,\n                },\n            ],\n            size.isSize72 && [\n                classNames.size72,\n                {\n                    height: personaSize.size72,\n                    minWidth: personaSize.size72,\n                },\n            ],\n            size.isSize100 && [\n                classNames.size100,\n                {\n                    height: personaSize.size100,\n                    minWidth: personaSize.size100,\n                },\n            ],\n            size.isSize120 && [\n                classNames.size120,\n                {\n                    height: personaSize.size120,\n                    minWidth: personaSize.size120,\n                },\n            ],\n            /**\n             * Modifiers: presence\n             */\n            presence.isAvailable && classNames.available,\n            presence.isAway && classNames.away,\n            presence.isBlocked && classNames.blocked,\n            presence.isBusy && classNames.busy,\n            presence.isDoNotDisturb && classNames.doNotDisturb,\n            presence.isOffline && classNames.offline,\n            className,\n        ],\n        details: [\n            classNames.details,\n            {\n                padding: '0 24px 0 16px',\n                minWidth: 0,\n                width: '100%',\n                textAlign: 'left',\n                display: 'flex',\n                flexDirection: 'column',\n                justifyContent: 'space-around',\n            },\n            (size.isSize8 || size.isSize10) && {\n                paddingLeft: 17, // increased padding because we don't render a coin at this size\n            },\n            (size.isSize24 || size.isSize28 || size.isSize32) && {\n                padding: '0 8px',\n            },\n            (size.isSize40 || size.isSize48) && {\n                padding: '0 12px',\n            },\n        ],\n        primaryText: [\n            classNames.primaryText,\n            noWrap,\n            {\n                color: semanticColors.bodyText,\n                fontWeight: FontWeights.regular,\n                fontSize: fonts.medium.fontSize,\n                selectors: {\n                    ':hover': {\n                        color: semanticColors.inputTextHovered,\n                    },\n                },\n            },\n            showSecondaryText && {\n                height: showSecondaryTextDefaultHeight,\n                lineHeight: showSecondaryTextDefaultHeight,\n                overflowX: 'hidden',\n            },\n            (size.isSize8 || size.isSize10) && {\n                fontSize: fonts.small.fontSize,\n                lineHeight: personaSize.size8,\n            },\n            size.isSize16 && {\n                lineHeight: personaSize.size28,\n            },\n            (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&\n                showSecondaryText && {\n                height: 18,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n                fontSize: fonts.xLarge.fontSize,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n                showSecondaryText && {\n                height: 22,\n            },\n        ],\n        secondaryText: [\n            classNames.secondaryText,\n            noWrap,\n            sharedTextStyles,\n            (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {\n                display: 'none',\n            },\n            showSecondaryText && {\n                display: 'block',\n                height: showSecondaryTextDefaultHeight,\n                lineHeight: showSecondaryTextDefaultHeight,\n                overflowX: 'hidden',\n            },\n            size.isSize24 &&\n                showSecondaryText && {\n                height: 18,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n                fontSize: fonts.medium.fontSize,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n                showSecondaryText && {\n                height: 18,\n            },\n        ],\n        tertiaryText: [\n            classNames.tertiaryText,\n            noWrap,\n            sharedTextStyles,\n            {\n                display: 'none',\n                fontSize: fonts.medium.fontSize,\n            },\n            (size.isSize72 || size.isSize100 || size.isSize120) && {\n                display: 'block',\n            },\n        ],\n        optionalText: [\n            classNames.optionalText,\n            noWrap,\n            sharedTextStyles,\n            {\n                display: 'none',\n                fontSize: fonts.medium.fontSize,\n            },\n            (size.isSize100 || size.isSize120) && {\n                display: 'block',\n            },\n        ],\n        textContent: [classNames.textContent, noWrap],\n    };\n};\n//# sourceMappingURL=Persona.styles.js.map","import { styled } from '../../Utilities';\nimport { PersonaBase } from './Persona.base';\nimport { getStyles } from './Persona.styles';\n/**\n * Personas are used for rendering an individual's avatar, presence and details.\n * They are used within the PeoplePicker components.\n */\nexport var Persona = styled(PersonaBase, getStyles, undefined, {\n    scope: 'Persona',\n});\n//# sourceMappingURL=Persona.js.map","/**\n * {@docCategory Persona}\n */\nexport var PersonaSize;\n(function (PersonaSize) {\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size8` instead.\n     */\n    PersonaSize[PersonaSize[\"tiny\"] = 0] = \"tiny\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size24` instead.\n     */\n    PersonaSize[PersonaSize[\"extraExtraSmall\"] = 1] = \"extraExtraSmall\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size32` instead.\n     */\n    PersonaSize[PersonaSize[\"extraSmall\"] = 2] = \"extraSmall\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size40` instead.\n     */\n    PersonaSize[PersonaSize[\"small\"] = 3] = \"small\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size48` instead.\n     */\n    PersonaSize[PersonaSize[\"regular\"] = 4] = \"regular\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size72` instead.\n     */\n    PersonaSize[PersonaSize[\"large\"] = 5] = \"large\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size100` instead.\n     */\n    PersonaSize[PersonaSize[\"extraLarge\"] = 6] = \"extraLarge\";\n    /**\n     * No `PersonaCoin` is rendered.\n     */\n    PersonaSize[PersonaSize[\"size8\"] = 17] = \"size8\";\n    /**\n     * No `PersonaCoin` is rendered. Deprecated to align with design specifications.\n     * @deprecated Use `size8` instead.\n     */\n    PersonaSize[PersonaSize[\"size10\"] = 9] = \"size10\";\n    /**\n     * Renders a 16px `PersonaCoin`.\n     * @deprecated Deprecated due to not being in the design specification.\n     */\n    PersonaSize[PersonaSize[\"size16\"] = 8] = \"size16\";\n    /**\n     * Renders a 24px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size24\"] = 10] = \"size24\";\n    /**\n     * Renders a 28px `PersonaCoin`.\n     * @deprecated Deprecated due to not being in the design specification.\n     */\n    PersonaSize[PersonaSize[\"size28\"] = 7] = \"size28\";\n    /**\n     * Renders a 32px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size32\"] = 11] = \"size32\";\n    /**\n     * Renders a 40px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size40\"] = 12] = \"size40\";\n    /**\n     * Renders a 48px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size48\"] = 13] = \"size48\";\n    /**\n     * Renders a 56px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size56\"] = 16] = \"size56\";\n    /**\n     * Renders a 72px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size72\"] = 14] = \"size72\";\n    /**\n     * Renders a 100px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size100\"] = 15] = \"size100\";\n    /**\n     * Renders a 120px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size120\"] = 18] = \"size120\";\n})(PersonaSize || (PersonaSize = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaPresence;\n(function (PersonaPresence) {\n    PersonaPresence[PersonaPresence[\"none\"] = 0] = \"none\";\n    PersonaPresence[PersonaPresence[\"offline\"] = 1] = \"offline\";\n    PersonaPresence[PersonaPresence[\"online\"] = 2] = \"online\";\n    PersonaPresence[PersonaPresence[\"away\"] = 3] = \"away\";\n    PersonaPresence[PersonaPresence[\"dnd\"] = 4] = \"dnd\";\n    PersonaPresence[PersonaPresence[\"blocked\"] = 5] = \"blocked\";\n    PersonaPresence[PersonaPresence[\"busy\"] = 6] = \"busy\";\n})(PersonaPresence || (PersonaPresence = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaInitialsColor;\n(function (PersonaInitialsColor) {\n    PersonaInitialsColor[PersonaInitialsColor[\"lightBlue\"] = 0] = \"lightBlue\";\n    PersonaInitialsColor[PersonaInitialsColor[\"blue\"] = 1] = \"blue\";\n    PersonaInitialsColor[PersonaInitialsColor[\"darkBlue\"] = 2] = \"darkBlue\";\n    PersonaInitialsColor[PersonaInitialsColor[\"teal\"] = 3] = \"teal\";\n    PersonaInitialsColor[PersonaInitialsColor[\"lightGreen\"] = 4] = \"lightGreen\";\n    PersonaInitialsColor[PersonaInitialsColor[\"green\"] = 5] = \"green\";\n    PersonaInitialsColor[PersonaInitialsColor[\"darkGreen\"] = 6] = \"darkGreen\";\n    PersonaInitialsColor[PersonaInitialsColor[\"lightPink\"] = 7] = \"lightPink\";\n    PersonaInitialsColor[PersonaInitialsColor[\"pink\"] = 8] = \"pink\";\n    PersonaInitialsColor[PersonaInitialsColor[\"magenta\"] = 9] = \"magenta\";\n    PersonaInitialsColor[PersonaInitialsColor[\"purple\"] = 10] = \"purple\";\n    /**\n     * @deprecated `black` is a color that can result in offensive persona coins with some initials combinations,\n     * so it can only be set with overrides. Will be removed in a future major release.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"black\"] = 11] = \"black\";\n    PersonaInitialsColor[PersonaInitialsColor[\"orange\"] = 12] = \"orange\";\n    /**\n     * @deprecated `red` is a color that often has a special meaning, so it is considered a reserved color and\n     * can only be set with overrides. Will be removed in a future major release.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"red\"] = 13] = \"red\";\n    PersonaInitialsColor[PersonaInitialsColor[\"darkRed\"] = 14] = \"darkRed\";\n    /**\n     * Transparent is not intended to be used with typical initials due to accessibility issues.\n     * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"transparent\"] = 15] = \"transparent\";\n    PersonaInitialsColor[PersonaInitialsColor[\"violet\"] = 16] = \"violet\";\n    PersonaInitialsColor[PersonaInitialsColor[\"lightRed\"] = 17] = \"lightRed\";\n    PersonaInitialsColor[PersonaInitialsColor[\"gold\"] = 18] = \"gold\";\n    PersonaInitialsColor[PersonaInitialsColor[\"burgundy\"] = 19] = \"burgundy\";\n    PersonaInitialsColor[PersonaInitialsColor[\"warmGray\"] = 20] = \"warmGray\";\n    PersonaInitialsColor[PersonaInitialsColor[\"coolGray\"] = 21] = \"coolGray\";\n    /**\n     * `gray` is a color that can result in offensive persona coins with some initials combinations,\n     * so it can only be set with overrides.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"gray\"] = 22] = \"gray\";\n    PersonaInitialsColor[PersonaInitialsColor[\"cyan\"] = 23] = \"cyan\";\n    PersonaInitialsColor[PersonaInitialsColor[\"rust\"] = 24] = \"rust\";\n})(PersonaInitialsColor || (PersonaInitialsColor = {}));\n//# sourceMappingURL=Persona.types.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nimport { Icon } from '../../../Icon';\nimport { PersonaPresence as PersonaPresenceEnum } from '../Persona.types';\nimport { sizeBoolean } from '../PersonaConsts';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar coinSizeFontScaleFactor = 6;\nvar coinSizePresenceScaleFactor = 3;\nvar presenceMaxSize = 40;\nvar presenceFontMaxSize = 20;\nvar getClassNames = classNamesFunction({\n    // There can be many PersonaPresence rendered with different sizes.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\n/**\n * PersonaPresence with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaPresenceBase = React.forwardRef(function (props, forwardedRef) {\n    var coinSize = props.coinSize, isOutOfOffice = props.isOutOfOffice, styles = props.styles, // Use getStyles from props.\n    presence = props.presence, theme = props.theme, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors;\n    var rootRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n    var size = sizeBoolean(props.size);\n    // Render Presence Icon if Persona is above size 32.\n    var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&\n        (coinSize ? coinSize > 32 : true);\n    var presenceHeightWidth = coinSize\n        ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize\n            ? coinSize / coinSizePresenceScaleFactor + 'px'\n            : presenceMaxSize + 'px'\n        : '';\n    var presenceFontSize = coinSize\n        ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize\n            ? coinSize / coinSizeFontScaleFactor + 'px'\n            : presenceFontMaxSize + 'px'\n        : '';\n    var coinSizeWithPresenceIconStyle = coinSize\n        ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth }\n        : undefined;\n    var coinSizeWithPresenceStyle = coinSize ? { width: presenceHeightWidth, height: presenceHeightWidth } : undefined;\n    // Use getStyles from props, or fall back to getStyles from styles file.\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        presence: presence,\n        size: props.size,\n        isOutOfOffice: isOutOfOffice,\n        presenceColors: presenceColors,\n    });\n    if (presence === PersonaPresenceEnum.none) {\n        return null;\n    }\n    return (React.createElement(\"div\", { role: \"presentation\", className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle, ref: mergedRootRef }, renderIcon && (React.createElement(Icon, { className: classNames.presenceIcon, iconName: determineIcon(props.presence, props.isOutOfOffice), style: coinSizeWithPresenceIconStyle }))));\n});\nPersonaPresenceBase.displayName = 'PersonaPresenceBase';\nfunction determineIcon(presence, isOutOfOffice) {\n    if (!presence) {\n        return undefined;\n    }\n    var oofIcon = 'SkypeArrow';\n    switch (PersonaPresenceEnum[presence]) {\n        case 'online':\n            return 'SkypeCheck';\n        case 'away':\n            return isOutOfOffice ? oofIcon : 'SkypeClock';\n        case 'dnd':\n            return 'SkypeMinus';\n        case 'offline':\n            return isOutOfOffice ? oofIcon : '';\n    }\n    return '';\n}\n//# sourceMappingURL=PersonaPresence.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { personaPresenceSize, presenceBoolean, sizeBoolean } from '../PersonaConsts';\nvar GlobalClassNames = {\n    presence: 'ms-Persona-presence',\n    presenceIcon: 'ms-Persona-presenceIcon',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f;\n    var theme = props.theme, presenceColors = props.presenceColors;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var size = sizeBoolean(props.size);\n    var presence = presenceBoolean(props.presence);\n    // Presence colors\n    var presenceColorAvailable = (presenceColors && presenceColors.available) || '#6BB700';\n    var presenceColorAway = (presenceColors && presenceColors.away) || '#FFAA44';\n    var presenceColorBusy = (presenceColors && presenceColors.busy) || '#C43148';\n    var presenceColorDnd = (presenceColors && presenceColors.dnd) || '#C50F1F';\n    var presenceColorOffline = (presenceColors && presenceColors.offline) || '#8A8886';\n    var presenceColorOof = (presenceColors && presenceColors.oof) || '#B4009E';\n    var presenceColorBackground = (presenceColors && presenceColors.background) || semanticColors.bodyBackground;\n    var isOpenCirclePresence = presence.isOffline ||\n        (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));\n    var borderSizeForSmallPersonas = '1px';\n    var borderSizeForLargePersonas = '2px';\n    var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;\n    return {\n        presence: [\n            classNames.presence,\n            __assign(__assign({ position: 'absolute', height: personaPresenceSize.size12, width: personaPresenceSize.size12, borderRadius: '50%', top: 'auto', right: '-2px', bottom: '-2px', border: \"2px solid \".concat(presenceColorBackground), textAlign: 'center', boxSizing: 'content-box', backgroundClip: 'border-box' }, getHighContrastNoAdjustStyle()), { selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderColor: 'Window',\n                        backgroundColor: 'WindowText',\n                    },\n                    _a) }),\n            (size.isSize8 || size.isSize10) && {\n                right: 'auto',\n                top: '7px',\n                left: 0,\n                border: 0,\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = {\n                        top: '9px',\n                        border: '1px solid WindowText',\n                    },\n                    _b),\n            },\n            (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) &&\n                makeSizeStyle(personaPresenceSize.size8),\n            (size.isSize40 || size.isSize48) && makeSizeStyle(personaPresenceSize.size12),\n            size.isSize16 && {\n                height: personaPresenceSize.size6,\n                width: personaPresenceSize.size6,\n                borderWidth: '1.5px',\n            },\n            size.isSize56 && makeSizeStyle(personaPresenceSize.size16),\n            size.isSize72 && makeSizeStyle(personaPresenceSize.size20),\n            size.isSize100 && makeSizeStyle(personaPresenceSize.size28),\n            size.isSize120 && makeSizeStyle(personaPresenceSize.size32),\n            presence.isAvailable && {\n                backgroundColor: presenceColorAvailable,\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = backgroundColor('Highlight'),\n                    _c),\n            },\n            presence.isAway && backgroundColor(presenceColorAway),\n            presence.isBlocked && [\n                {\n                    selectors: (_d = {\n                            // Only show :after at larger sizes\n                            ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100\n                                ? {\n                                    content: '\"\"',\n                                    width: '100%',\n                                    height: borderSize,\n                                    backgroundColor: presenceColorBusy,\n                                    transform: 'translateY(-50%) rotate(-45deg)',\n                                    position: 'absolute',\n                                    top: '50%',\n                                    left: 0,\n                                }\n                                : undefined\n                        },\n                        _d[HighContrastSelector] = {\n                            selectors: {\n                                ':after': {\n                                    width: \"calc(100% - 4px)\",\n                                    left: '2px',\n                                    backgroundColor: 'Window',\n                                },\n                            },\n                        },\n                        _d),\n                },\n            ],\n            presence.isBusy && backgroundColor(presenceColorBusy),\n            presence.isDoNotDisturb && backgroundColor(presenceColorDnd),\n            presence.isOffline && backgroundColor(presenceColorOffline),\n            (isOpenCirclePresence || presence.isBlocked) && [\n                {\n                    backgroundColor: presenceColorBackground,\n                    selectors: (_e = {\n                            ':before': {\n                                content: '\"\"',\n                                width: '100%',\n                                height: '100%',\n                                position: 'absolute',\n                                top: 0,\n                                left: 0,\n                                border: \"\".concat(borderSize, \" solid \").concat(presenceColorBusy),\n                                borderRadius: '50%',\n                                boxSizing: 'border-box',\n                            }\n                        },\n                        _e[HighContrastSelector] = {\n                            backgroundColor: 'WindowText',\n                            selectors: {\n                                ':before': {\n                                    width: \"calc(100% - 2px)\",\n                                    height: \"calc(100% - 2px)\",\n                                    top: '1px',\n                                    left: '1px',\n                                    borderColor: 'Window',\n                                },\n                            },\n                        },\n                        _e),\n                },\n            ],\n            isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),\n            isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),\n            isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),\n            isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),\n            isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),\n            isOpenCirclePresence &&\n                presence.isOffline &&\n                props.isOutOfOffice &&\n                makeBeforeBorderStyle(borderSize, presenceColorOof),\n        ],\n        presenceIcon: [\n            classNames.presenceIcon,\n            {\n                color: presenceColorBackground,\n                fontSize: '6px',\n                lineHeight: personaPresenceSize.size12,\n                verticalAlign: 'top',\n                selectors: (_f = {},\n                    _f[HighContrastSelector] = {\n                        color: 'Window',\n                    },\n                    _f),\n            },\n            size.isSize56 && {\n                fontSize: '8px',\n                lineHeight: personaPresenceSize.size16,\n            },\n            size.isSize72 && {\n                fontSize: fonts.small.fontSize,\n                lineHeight: personaPresenceSize.size20,\n            },\n            size.isSize100 && {\n                fontSize: fonts.medium.fontSize,\n                lineHeight: personaPresenceSize.size28,\n            },\n            size.isSize120 && {\n                fontSize: fonts.medium.fontSize,\n                lineHeight: personaPresenceSize.size32,\n            },\n            presence.isAway && {\n                position: 'relative',\n                left: isOpenCirclePresence ? undefined : '1px',\n            },\n            isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),\n            isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),\n            isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),\n            isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),\n            isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),\n            isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof),\n        ],\n    };\n};\nfunction makeOpenCircleIconStyle(color) {\n    return {\n        color: color,\n        borderColor: color,\n    };\n}\nfunction makeBeforeBorderStyle(borderSize, color) {\n    return {\n        selectors: {\n            ':before': {\n                border: \"\".concat(borderSize, \" solid \").concat(color),\n            },\n        },\n    };\n}\nfunction makeSizeStyle(size) {\n    return {\n        height: size,\n        width: size,\n    };\n}\nfunction backgroundColor(color) {\n    return { backgroundColor: color };\n}\n//# sourceMappingURL=PersonaPresence.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaPresenceBase } from './PersonaPresence.base';\nimport { getStyles } from './PersonaPresence.styles';\n/**\n * PersonaPresence is used to render an individual's presence.\n */\nexport var PersonaPresence = styled(PersonaPresenceBase, getStyles, undefined, { scope: 'PersonaPresence' });\n//# sourceMappingURL=PersonaPresence.js.map","import { PersonaInitialsColor } from './Persona.types';\n/**\n * Following colors are considered reserved and can only be set with overrides, so they are excluded from this set:\n * - `gray` and `black` can result in offensive persona coins with some initials combinations\n * - `red` often has a special meaning\n * - `transparent` is not intended to be used with typical initials due to accessibility issues;\n *   its primary use is for Facepile overflow buttons.\n */\nvar COLOR_SWATCHES_LOOKUP = [\n    PersonaInitialsColor.lightBlue,\n    PersonaInitialsColor.blue,\n    PersonaInitialsColor.darkBlue,\n    PersonaInitialsColor.teal,\n    PersonaInitialsColor.green,\n    PersonaInitialsColor.darkGreen,\n    PersonaInitialsColor.lightPink,\n    PersonaInitialsColor.pink,\n    PersonaInitialsColor.magenta,\n    PersonaInitialsColor.purple,\n    PersonaInitialsColor.orange,\n    PersonaInitialsColor.lightRed,\n    PersonaInitialsColor.darkRed,\n    PersonaInitialsColor.violet,\n    PersonaInitialsColor.gold,\n    PersonaInitialsColor.burgundy,\n    PersonaInitialsColor.warmGray,\n    PersonaInitialsColor.cyan,\n    PersonaInitialsColor.rust,\n    PersonaInitialsColor.coolGray,\n];\nvar COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;\nfunction getInitialsColorFromName(displayName) {\n    var color = PersonaInitialsColor.blue;\n    if (!displayName) {\n        return color;\n    }\n    var hashCode = 0;\n    for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {\n        var ch = displayName.charCodeAt(iLen);\n        var shift = iLen % 8;\n        // eslint-disable-next-line no-bitwise\n        hashCode ^= (ch << shift) + (ch >> (8 - shift));\n    }\n    color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];\n    return color;\n}\nfunction personaInitialsColorToHexCode(personaInitialsColor) {\n    switch (personaInitialsColor) {\n        case PersonaInitialsColor.lightBlue:\n            return '#4F6BED';\n        case PersonaInitialsColor.blue:\n            return '#0078D4';\n        case PersonaInitialsColor.darkBlue:\n            return '#004E8C';\n        case PersonaInitialsColor.teal:\n            return '#038387';\n        case PersonaInitialsColor.lightGreen:\n        case PersonaInitialsColor.green:\n            return '#498205';\n        case PersonaInitialsColor.darkGreen:\n            return '#0B6A0B';\n        case PersonaInitialsColor.lightPink:\n            return '#C239B3';\n        case PersonaInitialsColor.pink:\n            return '#E3008C';\n        case PersonaInitialsColor.magenta:\n            return '#881798';\n        case PersonaInitialsColor.purple:\n            return '#5C2E91';\n        case PersonaInitialsColor.orange:\n            return '#CA5010';\n        // eslint-disable-next-line deprecation/deprecation\n        case PersonaInitialsColor.red:\n            return '#EE1111';\n        case PersonaInitialsColor.lightRed:\n            return '#D13438';\n        case PersonaInitialsColor.darkRed:\n            return '#A4262C';\n        case PersonaInitialsColor.transparent:\n            return 'transparent';\n        case PersonaInitialsColor.violet:\n            return '#8764B8';\n        case PersonaInitialsColor.gold:\n            return '#986F0B';\n        case PersonaInitialsColor.burgundy:\n            return '#750B1C';\n        case PersonaInitialsColor.warmGray:\n            return '#7A7574';\n        case PersonaInitialsColor.cyan:\n            return '#005B70';\n        case PersonaInitialsColor.rust:\n            return '#8E562E';\n        case PersonaInitialsColor.coolGray:\n            return '#69797E';\n        // eslint-disable-next-line deprecation/deprecation\n        case PersonaInitialsColor.black:\n            return '#1D1D1D';\n        case PersonaInitialsColor.gray:\n            return '#393939';\n    }\n}\n/** @deprecated Use `getPersonaInitialsColor` */\nexport function initialsColorPropToColorCode(props) {\n    return getPersonaInitialsColor(props);\n}\n/**\n * Gets the hex color string (prefixed with #) for the given persona props.\n * This is the logic used internally by the Persona control.\n * @param props - Current persona props\n * @returns Hex color string prefixed with #\n */\nexport function getPersonaInitialsColor(props) {\n    // eslint-disable-next-line deprecation/deprecation\n    var primaryText = props.primaryText, text = props.text;\n    var initialsColor = props.initialsColor;\n    var initialsColorCode;\n    if (typeof initialsColor === 'string') {\n        initialsColorCode = initialsColor;\n    }\n    else {\n        initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);\n        initialsColorCode = personaInitialsColorToHexCode(initialsColor);\n    }\n    return initialsColorCode;\n}\n//# sourceMappingURL=PersonaInitialsColor.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, memoizeFunction, getInitials, getNativeProps, getRTL, getPropsWithDefaults, } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport { PersonaPresence } from '../PersonaPresence/index';\nimport { Icon } from '../../../Icon';\nimport { Image, ImageFit, ImageLoadState } from '../../../Image';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from '../Persona.types';\nimport { getPersonaInitialsColor } from '../PersonaInitialsColor';\nimport { sizeToPixels } from '../PersonaConsts';\nimport { useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction({\n    // There can be many PersonaCoin rendered with different sizes.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\nvar getInitialsStyles = memoizeFunction(function (className, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin) {\n    return mergeStyles(className, !showUnknownPersonaCoin && {\n        backgroundColor: getPersonaInitialsColor({ text: text, initialsColor: initialsColor, primaryText: primaryText }),\n        color: initialsTextColor,\n    });\n});\nvar DEFAULT_PROPS = {\n    size: PersonaSize.size48,\n    presence: PersonaPresenceEnum.none,\n    imageAlt: '',\n};\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'PersonaCoin',\n            props: props,\n            deprecations: { primaryText: 'text' },\n        });\n    }\n}\nfunction useImageLoadState(_a) {\n    var onPhotoLoadingStateChange = _a.onPhotoLoadingStateChange, imageUrl = _a.imageUrl;\n    var _b = React.useState(ImageLoadState.notLoaded), imageLoadState = _b[0], setImageLoadstate = _b[1];\n    React.useEffect(function () {\n        setImageLoadstate(ImageLoadState.notLoaded);\n    }, [imageUrl]);\n    var onLoadingStateChange = function (loadState) {\n        setImageLoadstate(loadState);\n        onPhotoLoadingStateChange === null || onPhotoLoadingStateChange === void 0 ? void 0 : onPhotoLoadingStateChange(loadState);\n    };\n    return [imageLoadState, onLoadingStateChange];\n}\n/**\n * PersonaCoin with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaCoinBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    useDebugWarnings(props);\n    var _a = useImageLoadState(props), imageLoadState = _a[0], onLoadingStateChange = _a[1];\n    var renderCoin = getCoinRenderer(onLoadingStateChange);\n    var className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.onRenderCoin, \n    // eslint-disable-next-line deprecation/deprecation\n    onRenderCoin = _b === void 0 ? renderCoin : _b, \n    // eslint-disable-next-line deprecation/deprecation\n    _c = props.onRenderPersonaCoin, \n    // eslint-disable-next-line deprecation/deprecation\n    onRenderPersonaCoin = _c === void 0 ? onRenderCoin : _c, _d = props.onRenderInitials, onRenderInitials = _d === void 0 ? renderPersonaCoinInitials : _d, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, \n    // eslint-disable-next-line deprecation/deprecation\n    primaryText = props.primaryText, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, text = props.text, theme = props.theme, size = props.size;\n    var divProps = getNativeProps(props, divProperties);\n    var divCoinProps = getNativeProps(coinProps || {}, divProperties);\n    var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;\n    var hideImage = showUnknownPersonaCoin;\n    var personaPresenceProps = {\n        coinSize: coinSize,\n        isOutOfOffice: isOutOfOffice,\n        presence: presence,\n        presenceTitle: presenceTitle,\n        presenceColors: presenceColors,\n        size: size,\n        theme: theme,\n    };\n    // Use getStyles from props, or fall back to getStyles from styles file.\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: coinProps && coinProps.className ? coinProps.className : className,\n        size: size,\n        coinSize: coinSize,\n        showUnknownPersonaCoin: showUnknownPersonaCoin,\n    });\n    var shouldRenderInitials = Boolean(imageLoadState !== ImageLoadState.loaded &&\n        ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || imageLoadState === ImageLoadState.error || hideImage));\n    return (React.createElement(\"div\", __assign({ role: \"presentation\" }, divProps, { className: classNames.coin, ref: forwardedRef }),\n        // Render PersonaCoin if size is not size8. size10 and tiny need to removed after a deprecation cleanup.\n        // eslint-disable-next-line deprecation/deprecation\n        size !== PersonaSize.size8 && size !== PersonaSize.size10 && size !== PersonaSize.tiny ? (React.createElement(\"div\", __assign({ role: \"presentation\" }, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),\n            shouldRenderInitials && (React.createElement(\"div\", { className: getInitialsStyles(classNames.initials, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin), style: coinSizeStyle, \"aria-hidden\": \"true\" }, onRenderInitials(props, renderPersonaCoinInitials))),\n            !hideImage && onRenderPersonaCoin(props, renderCoin),\n            React.createElement(PersonaPresence, __assign({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.\n            props.presence ? (React.createElement(PersonaPresence, __assign({}, personaPresenceProps))) : (\n            // Just render Contact Icon if there isn't a Presence prop.\n            React.createElement(Icon, { iconName: \"Contact\", className: classNames.size10WithoutPresenceIcon })),\n        props.children));\n});\nPersonaCoinBase.displayName = 'PersonaCoinBase';\nvar getCoinRenderer = function (onLoadingStateChange) {\n    return function (_a) {\n        var coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, _b = _a.size, size = _b === void 0 ? DEFAULT_PROPS.size : _b;\n        // Render the Image component only if an image URL is provided\n        if (!imageUrl) {\n            return null;\n        }\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            size: size,\n            showUnknownPersonaCoin: showUnknownPersonaCoin,\n        });\n        var dimension = coinSize || sizeToPixels[size];\n        return (React.createElement(Image, { className: classNames.image, imageFit: ImageFit.cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: onLoadingStateChange }));\n    };\n};\nvar renderPersonaCoinInitials = function (_a) {\n    var imageInitials = _a.imageInitials, allowPhoneInitials = _a.allowPhoneInitials, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, text = _a.text, \n    // eslint-disable-next-line deprecation/deprecation\n    primaryText = _a.primaryText, theme = _a.theme;\n    if (showUnknownPersonaCoin) {\n        return React.createElement(Icon, { iconName: \"Help\" });\n    }\n    var isRTL = getRTL(theme);\n    imageInitials = imageInitials || getInitials(text || primaryText || '', isRTL, allowPhoneInitials);\n    return imageInitials !== '' ? React.createElement(\"span\", null, imageInitials) : React.createElement(Icon, { iconName: \"Contact\" });\n};\n//# sourceMappingURL=PersonaCoin.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { sizeBoolean, sizeToPixels } from '../PersonaConsts';\nvar GlobalClassNames = {\n    coin: 'ms-Persona-coin',\n    imageArea: 'ms-Persona-imageArea',\n    image: 'ms-Persona-image',\n    initials: 'ms-Persona-initials',\n    size8: 'ms-Persona--size8',\n    size10: 'ms-Persona--size10',\n    size16: 'ms-Persona--size16',\n    size24: 'ms-Persona--size24',\n    size28: 'ms-Persona--size28',\n    size32: 'ms-Persona--size32',\n    size40: 'ms-Persona--size40',\n    size48: 'ms-Persona--size48',\n    size56: 'ms-Persona--size56',\n    size72: 'ms-Persona--size72',\n    size100: 'ms-Persona--size100',\n    size120: 'ms-Persona--size120',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, coinSize = props.coinSize;\n    var palette = theme.palette, fonts = theme.fonts;\n    var size = sizeBoolean(props.size);\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    // Static colors used when displaying 'unknown persona' coin\n    var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';\n    var unknownPersonaFontColor = 'rgb(168, 0, 0)';\n    var dimension = coinSize || (props.size && sizeToPixels[props.size]) || 48;\n    return {\n        coin: [\n            classNames.coin,\n            fonts.medium,\n            size.isSize8 && classNames.size8,\n            size.isSize10 && classNames.size10,\n            size.isSize16 && classNames.size16,\n            size.isSize24 && classNames.size24,\n            size.isSize28 && classNames.size28,\n            size.isSize32 && classNames.size32,\n            size.isSize40 && classNames.size40,\n            size.isSize48 && classNames.size48,\n            size.isSize56 && classNames.size56,\n            size.isSize72 && classNames.size72,\n            size.isSize100 && classNames.size100,\n            size.isSize120 && classNames.size120,\n            className,\n        ],\n        size10WithoutPresenceIcon: {\n            fontSize: fonts.xSmall.fontSize,\n            position: 'absolute',\n            top: '5px',\n            right: 'auto',\n            left: 0,\n        },\n        imageArea: [\n            classNames.imageArea,\n            {\n                position: 'relative',\n                textAlign: 'center',\n                flex: '0 0 auto',\n                height: dimension,\n                width: dimension,\n            },\n            dimension <= 10 && {\n                overflow: 'visible',\n                background: 'transparent',\n                height: 0,\n                width: 0,\n            },\n        ],\n        image: [\n            classNames.image,\n            {\n                marginRight: '10px',\n                position: 'absolute',\n                top: 0,\n                left: 0,\n                width: '100%',\n                height: '100%',\n                border: 0,\n                borderRadius: '50%',\n                perspective: '1px',\n            },\n            dimension <= 10 && {\n                overflow: 'visible',\n                background: 'transparent',\n                height: 0,\n                width: 0,\n            },\n            dimension > 10 && {\n                height: dimension,\n                width: dimension,\n            },\n        ],\n        initials: [\n            classNames.initials,\n            {\n                borderRadius: '50%',\n                color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,\n                fontSize: fonts.large.fontSize,\n                fontWeight: FontWeights.semibold,\n                // copying the logic for the dimensions; defaulted to 46 for size48\n                lineHeight: dimension === 48 ? 46 : dimension,\n                height: dimension,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign(__assign({ border: '1px solid WindowText' }, getHighContrastNoAdjustStyle()), { color: 'WindowText', boxSizing: 'border-box', backgroundColor: 'Window !important' }),\n                    _a.i = {\n                        fontWeight: FontWeights.semibold,\n                    },\n                    _a),\n            },\n            props.showUnknownPersonaCoin && {\n                backgroundColor: unknownPersonaBackgroundColor,\n            },\n            dimension < 32 && {\n                fontSize: fonts.xSmall.fontSize,\n            },\n            dimension >= 32 &&\n                dimension < 40 && {\n                fontSize: fonts.medium.fontSize,\n            },\n            dimension >= 40 &&\n                dimension < 56 && {\n                fontSize: fonts.mediumPlus.fontSize,\n            },\n            dimension >= 56 &&\n                dimension < 72 && {\n                fontSize: fonts.xLarge.fontSize,\n            },\n            dimension >= 72 &&\n                dimension < 100 && {\n                fontSize: fonts.xxLarge.fontSize,\n            },\n            dimension >= 100 && {\n                fontSize: fonts.superLarge.fontSize,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=PersonaCoin.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaCoinBase } from './PersonaCoin.base';\nimport { getStyles } from './PersonaCoin.styles';\n/**\n * PersonaCoin is used to render an individual's avatar and presence.\n */\nexport var PersonaCoin = styled(PersonaCoinBase, getStyles, undefined, {\n    scope: 'PersonaCoin',\n});\n//# sourceMappingURL=PersonaCoin.js.map","var _a;\nimport { PersonaPresence, PersonaSize } from './Persona.types';\n// Persona Sizes\nexport var personaSize;\n(function (personaSize) {\n    personaSize.size8 = '20px';\n    // TODO: remove in a future major release as it's deprecated.\n    personaSize.size10 = '20px';\n    // TODO: remove in a future major release as it's deprecated.\n    personaSize.size16 = '16px';\n    personaSize.size24 = '24px';\n    // TODO: remove in a future major release as it's deprecated.\n    personaSize.size28 = '28px';\n    personaSize.size32 = '32px';\n    personaSize.size40 = '40px';\n    personaSize.size48 = '48px';\n    personaSize.size56 = '56px';\n    personaSize.size72 = '72px';\n    personaSize.size100 = '100px';\n    personaSize.size120 = '120px';\n})(personaSize || (personaSize = {}));\n// Persona Presence Sizes\nexport var personaPresenceSize;\n(function (personaPresenceSize) {\n    personaPresenceSize.size6 = '6px';\n    personaPresenceSize.size8 = '8px';\n    personaPresenceSize.size12 = '12px';\n    personaPresenceSize.size16 = '16px';\n    personaPresenceSize.size20 = '20px';\n    personaPresenceSize.size28 = '28px';\n    personaPresenceSize.size32 = '32px';\n    /**\n     * @deprecated This is now unused\n     */\n    personaPresenceSize.border = '2px';\n})(personaPresenceSize || (personaPresenceSize = {}));\n// TODO: remove the deprecated parts in a future major release.\nexport var sizeBoolean = function (size) { return ({\n    isSize8: size === PersonaSize.size8,\n    /* eslint-disable deprecation/deprecation */\n    isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n    isSize16: size === PersonaSize.size16,\n    isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n    isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n    isSize32: size === PersonaSize.size32,\n    isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n    isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n    isSize56: size === PersonaSize.size56,\n    isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n    isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n    isSize120: size === PersonaSize.size120,\n}); };\nexport var sizeToPixels = (_a = {},\n    // Old deprecated sizes\n    _a[PersonaSize.tiny] = 10,\n    _a[PersonaSize.extraExtraSmall] = 24,\n    _a[PersonaSize.extraSmall] = 28,\n    _a[PersonaSize.small] = 40,\n    _a[PersonaSize.regular] = 48,\n    _a[PersonaSize.large] = 72,\n    _a[PersonaSize.extraLarge] = 100,\n    // New sizes\n    _a[PersonaSize.size8] = 8,\n    _a[PersonaSize.size10] = 10,\n    _a[PersonaSize.size16] = 16,\n    _a[PersonaSize.size24] = 24,\n    _a[PersonaSize.size28] = 28,\n    /* eslint-enable deprecation/deprecation */\n    _a[PersonaSize.size32] = 32,\n    _a[PersonaSize.size40] = 40,\n    _a[PersonaSize.size48] = 48,\n    _a[PersonaSize.size56] = 56,\n    _a[PersonaSize.size72] = 72,\n    _a[PersonaSize.size100] = 100,\n    _a[PersonaSize.size120] = 120,\n    _a);\nexport var presenceBoolean = function (presence) { return ({\n    isAvailable: presence === PersonaPresence.online,\n    isAway: presence === PersonaPresence.away,\n    isBlocked: presence === PersonaPresence.blocked,\n    isBusy: presence === PersonaPresence.busy,\n    isDoNotDisturb: presence === PersonaPresence.dnd,\n    isOffline: presence === PersonaPresence.offline,\n}); };\n//# sourceMappingURL=PersonaConsts.js.map","import * as React from 'react';\n/**\n * Creates a ref, and calls a callback whenever the ref changes to a non-null value. The callback can optionally return\n * a cleanup function that'll be called before the value changes, and when the ref is unmounted.\n *\n * This can be used to work around a limitation that useEffect cannot depend on `ref.current` (see\n * https://github.com/facebook/react/issues/14387#issuecomment-503616820).\n *\n * Usage example:\n * ```ts\n * const myRef = useRefEffect<HTMLElement>(element => {\n *  ...\n *  return () => { ... cleanup ... };\n * });\n * ```\n * ```jsx\n * <div ref={myRef} />\n * ```\n *\n * @param callback - Called whenever the ref's value changes to non-null. Can optionally return a cleanup function.\n * @param initial - (Optional) The initial value for the ref.\n *\n * @returns A function that should be called to set the ref's value. The object also has a `.current` member that can be\n * used to access the ref's value (like a normal RefObject). It can be hooked up to an element's `ref` property.\n */\nexport function useRefEffect(callback, initial) {\n    if (initial === void 0) { initial = null; }\n    var createRefCallback = function () {\n        var refCallback = function (value) {\n            if (data.ref.current !== value) {\n                if (data.cleanup) {\n                    data.cleanup();\n                    data.cleanup = undefined;\n                }\n                data.ref.current = value;\n                if (value !== null) {\n                    data.cleanup = data.callback(value);\n                }\n            }\n        };\n        refCallback.current = initial;\n        return refCallback;\n    };\n    var data = React.useRef({\n        ref: createRefCallback(),\n        callback: callback,\n    }).current;\n    data.callback = callback;\n    return data.ref;\n}\n//# sourceMappingURL=useRefEffect.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId } from '@fluentui/react-hooks';\nimport { classNamesFunction, css, divProperties, getNativeProps, getRTL, KeyCodes, warn } from '@fluentui/utilities';\nimport { CommandButton } from '../../Button';\nimport { useOverflow } from '../../utilities/useOverflow';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { DirectionalHint } from '../ContextualMenu/ContextualMenu.types';\nimport { Icon } from '../Icon/Icon';\nimport { PivotItem } from './PivotItem';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Pivot';\nvar getTabId = function (props, pivotId, itemKey, index) {\n    if (props.getTabId) {\n        return props.getTabId(itemKey, index);\n    }\n    return pivotId + \"-Tab\".concat(index);\n};\n// Gets the set of PivotLinks as array of IPivotItemProps\n// The set of Links is determined by child components of type PivotItem\nvar getLinkItems = function (props, pivotId) {\n    var result = {\n        links: [],\n        keyToIndexMapping: {},\n        keyToTabIdMapping: {},\n    };\n    React.Children.forEach(React.Children.toArray(props.children), function (child, index) {\n        if (isPivotItem(child)) {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = child.props, linkText = _a.linkText, pivotItemProps = __rest(_a, [\"linkText\"]);\n            var itemKey = child.props.itemKey || index.toString();\n            result.links.push(__assign(__assign({ headerText: linkText }, pivotItemProps), { itemKey: itemKey }));\n            result.keyToIndexMapping[itemKey] = index;\n            result.keyToTabIdMapping[itemKey] = getTabId(props, pivotId, itemKey, index);\n        }\n        else if (child) {\n            warn('The children of a Pivot component must be of type PivotItem to be rendered.');\n        }\n    });\n    return result;\n};\nvar isPivotItem = function (item) {\n    var _a;\n    return React.isValidElement(item) && ((_a = item.type) === null || _a === void 0 ? void 0 : _a.name) === PivotItem.name;\n};\nexport var PivotBase = React.forwardRef(function (props, ref) {\n    var focusZoneRef = React.useRef(null);\n    var overflowMenuButtonComponentRef = React.useRef(null);\n    var pivotId = useId('Pivot');\n    var _a = useControllableValue(props.selectedKey, props.defaultSelectedKey), selectedKey = _a[0], setSelectedKey = _a[1];\n    var componentRef = props.componentRef, theme = props.theme, linkSize = props.linkSize, linkFormat = props.linkFormat, overflowBehavior = props.overflowBehavior, overflowAriaLabel = props.overflowAriaLabel, focusZoneProps = props.focusZoneProps, overflowButtonAs = props.overflowButtonAs;\n    var classNames;\n    var nameProps = {\n        'aria-label': props['aria-label'],\n        'aria-labelledby': props['aria-labelledby'],\n    };\n    var divProps = getNativeProps(props, divProperties, [\n        'aria-label',\n        'aria-labelledby',\n    ]);\n    var linkCollection = getLinkItems(props, pivotId);\n    React.useImperativeHandle(componentRef, function () { return ({\n        focus: function () {\n            var _a;\n            (_a = focusZoneRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n        },\n    }); });\n    var renderLinkContent = function (link) {\n        if (!link) {\n            return null;\n        }\n        var itemCount = link.itemCount, itemIcon = link.itemIcon, headerText = link.headerText;\n        return (React.createElement(\"span\", { className: classNames.linkContent },\n            itemIcon !== undefined && (React.createElement(\"span\", { className: classNames.icon },\n                React.createElement(Icon, { iconName: itemIcon }))),\n            headerText !== undefined && React.createElement(\"span\", { className: classNames.text },\n                \" \",\n                link.headerText),\n            itemCount !== undefined && React.createElement(\"span\", { className: classNames.count },\n                \" (\",\n                itemCount,\n                \")\")));\n    };\n    var renderPivotLink = function (renderLinkCollection, link, renderPivotLinkSelectedKey, className) {\n        var itemKey = link.itemKey, headerButtonProps = link.headerButtonProps, onRenderItemLink = link.onRenderItemLink;\n        var tabId = renderLinkCollection.keyToTabIdMapping[itemKey];\n        var linkContent;\n        var isSelected = renderPivotLinkSelectedKey === itemKey;\n        if (onRenderItemLink) {\n            linkContent = onRenderItemLink(link, renderLinkContent);\n        }\n        else {\n            linkContent = renderLinkContent(link);\n        }\n        var contentString = link.headerText || '';\n        contentString += link.itemCount ? ' (' + link.itemCount + ')' : '';\n        // Adding space supplementary for icon\n        contentString += link.itemIcon ? ' xx' : '';\n        var itemSemantics = link.role && link.role !== 'tab'\n            ? {\n                role: link.role,\n            }\n            : {\n                role: 'tab',\n                'aria-selected': isSelected,\n            };\n        return (React.createElement(CommandButton, __assign({}, headerButtonProps, itemSemantics, { id: tabId, key: itemKey, className: css(className, isSelected && classNames.linkIsSelected), \n            // eslint-disable-next-line react/jsx-no-bind\n            onClick: function (ev) { return onLinkClick(itemKey, ev); }, \n            // eslint-disable-next-line react/jsx-no-bind\n            onKeyDown: function (ev) { return onKeyDown(itemKey, ev); }, \"aria-label\": link.ariaLabel, name: link.headerText, keytipProps: link.keytipProps, \"data-content\": contentString }), linkContent));\n    };\n    var onLinkClick = function (itemKey, ev) {\n        ev.preventDefault();\n        updateSelectedItem(itemKey, ev);\n    };\n    var onKeyDown = function (itemKey, ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.enter) {\n            ev.preventDefault();\n            updateSelectedItem(itemKey);\n        }\n    };\n    var updateSelectedItem = function (itemKey, ev) {\n        var _a;\n        setSelectedKey(itemKey);\n        linkCollection = getLinkItems(props, pivotId);\n        if (props.onLinkClick && linkCollection.keyToIndexMapping[itemKey] >= 0) {\n            var selectedIndex = linkCollection.keyToIndexMapping[itemKey];\n            var item = React.Children.toArray(props.children)[selectedIndex];\n            if (isPivotItem(item)) {\n                props.onLinkClick(item, ev);\n            }\n        }\n        (_a = overflowMenuButtonComponentRef.current) === null || _a === void 0 ? void 0 : _a.dismissMenu();\n    };\n    var renderPivotItem = function (itemKey, isActive) {\n        if (props.headersOnly || !itemKey) {\n            return null;\n        }\n        var index = linkCollection.keyToIndexMapping[itemKey];\n        var selectedTabId = linkCollection.keyToTabIdMapping[itemKey];\n        return (React.createElement(\"div\", { role: \"tabpanel\", hidden: !isActive, key: itemKey, \"aria-hidden\": !isActive, \"aria-labelledby\": selectedTabId, className: classNames.itemContainer }, React.Children.toArray(props.children)[index]));\n    };\n    var isKeyValid = function (itemKey) {\n        return itemKey === null || (itemKey !== undefined && linkCollection.keyToIndexMapping[itemKey] !== undefined);\n    };\n    var getSelectedKey = function () {\n        if (isKeyValid(selectedKey)) {\n            return selectedKey;\n        }\n        if (linkCollection.links.length) {\n            return linkCollection.links[0].itemKey;\n        }\n        return undefined;\n    };\n    classNames = getClassNames(props.styles, {\n        theme: theme,\n        linkSize: linkSize,\n        linkFormat: linkFormat,\n    });\n    var renderedSelectedKey = getSelectedKey();\n    var renderedSelectedIndex = renderedSelectedKey ? linkCollection.keyToIndexMapping[renderedSelectedKey] : 0;\n    var items = linkCollection.links.map(function (l) {\n        return renderPivotLink(linkCollection, l, renderedSelectedKey, classNames.link);\n    });\n    // The overflow menu starts empty and items[] is updated as the overflow items change\n    var overflowMenuProps = React.useMemo(function () { return ({\n        items: [],\n        alignTargetEdge: true,\n        directionalHint: DirectionalHint.bottomRightEdge,\n    }); }, []);\n    var overflowMenuButtonRef = useOverflow({\n        onOverflowItemsChanged: function (overflowIndex, elements) {\n            // Set data-is-overflowing on each item\n            elements.forEach(function (_a) {\n                var ele = _a.ele, isOverflowing = _a.isOverflowing;\n                return (ele.dataset.isOverflowing = \"\".concat(isOverflowing));\n            });\n            // Update the menu items\n            overflowMenuProps.items = linkCollection.links\n                .slice(overflowIndex)\n                .filter(function (link) { return link.itemKey !== renderedSelectedKey; })\n                .map(function (link, index) {\n                link.role = 'menuitem';\n                return {\n                    key: link.itemKey || \"\".concat(overflowIndex + index),\n                    onRender: function () { return renderPivotLink(linkCollection, link, renderedSelectedKey, classNames.linkInMenu); },\n                };\n            });\n        },\n        rtl: getRTL(theme),\n        pinnedIndex: renderedSelectedIndex,\n    }).menuButtonRef;\n    var OverflowButton = overflowButtonAs ? overflowButtonAs : CommandButton;\n    return (React.createElement(\"div\", __assign({ ref: ref }, divProps),\n        React.createElement(FocusZone, __assign({ componentRef: focusZoneRef, role: \"tablist\" }, nameProps, { direction: FocusZoneDirection.horizontal }, focusZoneProps, { className: css(classNames.root, focusZoneProps === null || focusZoneProps === void 0 ? void 0 : focusZoneProps.className) }),\n            items,\n            overflowBehavior === 'menu' && (React.createElement(OverflowButton, { className: css(classNames.link, classNames.overflowMenuButton), elementRef: overflowMenuButtonRef, componentRef: overflowMenuButtonComponentRef, menuProps: overflowMenuProps, menuIconProps: { iconName: 'More', style: { color: 'inherit' } }, ariaLabel: overflowAriaLabel, role: \"tab\" }))),\n        renderedSelectedKey &&\n            linkCollection.links.map(function (link) {\n                return (link.alwaysRender === true || renderedSelectedKey === link.itemKey) &&\n                    renderPivotItem(link.itemKey, renderedSelectedKey === link.itemKey);\n            })));\n});\nPivotBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=Pivot.base.js.map","import * as React from 'react';\nimport { useIsomorphicLayoutEffect, useRefEffect } from '@fluentui/react-hooks';\nimport { getWindow } from '@fluentui/utilities';\nimport { observeResize } from './observeResize';\n/**\n * Track whether any items don't fit within their container, and move them to the overflow menu.\n * Items are moved into the overflow menu from back to front, excluding pinned items.\n *\n * The overflow menu button must be the last sibling of all of the items that can be put into the overflow, and it\n * must be hooked up to the `setMenuButtonRef` setter function that's returned by `useOverflow`:\n * ```ts\n * const overflow = useOverflow(...);\n * ```\n * ```jsx\n * <Container>\n *  <Item /> // Index 0\n *  <Item /> // Index 1\n *  ...\n *  <Button ref={overflow.setMenuButtonRef} /> // Can be any React.Component or HTMLElement\n * </Container>\n * ```\n */\nexport var useOverflow = function (_a) {\n    var onOverflowItemsChanged = _a.onOverflowItemsChanged, rtl = _a.rtl, pinnedIndex = _a.pinnedIndex;\n    var updateOverflowRef = React.useRef();\n    var containerWidthRef = React.useRef();\n    // Attach a resize observer to the container\n    var containerRef = useRefEffect(function (container) {\n        var cleanupObserver = observeResize(container, function (entries) {\n            containerWidthRef.current = entries ? entries[0].contentRect.width : container.clientWidth;\n            if (updateOverflowRef.current) {\n                updateOverflowRef.current();\n            }\n        });\n        return function () {\n            cleanupObserver();\n            containerWidthRef.current = undefined;\n        };\n    });\n    var menuButtonRef = useRefEffect(function (menuButton) {\n        containerRef(menuButton.parentElement);\n        return function () { return containerRef(null); };\n    });\n    useIsomorphicLayoutEffect(function () {\n        var container = containerRef.current;\n        var menuButton = menuButtonRef.current;\n        if (!container || !menuButton) {\n            return;\n        }\n        // items contains the container's children, excluding the overflow menu button itself\n        var items = [];\n        for (var i = 0; i < container.children.length; i++) {\n            var item = container.children[i];\n            if (item instanceof HTMLElement && item !== menuButton) {\n                items.push(item);\n            }\n        }\n        // Keep track of the minimum width of the container to fit each child index.\n        // This cache is an integral part of the algorithm and not just a performance optimization: it allows us to\n        // recalculate the overflowIndex on subsequent resizes even if some items are already inside the overflow.\n        var minContainerWidth = [];\n        var extraWidth = 0; // The accumulated width of items that don't move into the overflow\n        updateOverflowRef.current = function () {\n            var containerWidth = containerWidthRef.current;\n            if (containerWidth === undefined) {\n                return;\n            }\n            // Iterate the items in reverse order until we find one that fits within the bounds of the container\n            for (var i = items.length - 1; i >= 0; i--) {\n                // Calculate the min container width for this item if we haven't done so yet\n                if (minContainerWidth[i] === undefined) {\n                    var itemOffsetEnd = rtl ? containerWidth - items[i].offsetLeft : items[i].offsetLeft + items[i].offsetWidth;\n                    // If the item after this one is pinned, reserve space for it\n                    if (i + 1 < items.length && i + 1 === pinnedIndex) {\n                        // Use distance between the end of the previous item and this one (rather than the\n                        // pinned item's offsetWidth), to account for any margin between the items.\n                        extraWidth = minContainerWidth[i + 1] - itemOffsetEnd;\n                    }\n                    // Reserve space for the menu button after the first item was added to the overflow\n                    if (i === items.length - 2) {\n                        extraWidth += menuButton.offsetWidth;\n                    }\n                    minContainerWidth[i] = itemOffsetEnd + extraWidth;\n                }\n                if (containerWidth > minContainerWidth[i]) {\n                    setOverflowIndex(i + 1);\n                    return;\n                }\n            }\n            // If we got here, nothing fits outside the overflow\n            setOverflowIndex(0);\n        };\n        var prevOverflowIndex = items.length;\n        var setOverflowIndex = function (overflowIndex) {\n            if (prevOverflowIndex !== overflowIndex) {\n                prevOverflowIndex = overflowIndex;\n                onOverflowItemsChanged(overflowIndex, items.map(function (ele, index) { return ({\n                    ele: ele,\n                    isOverflowing: index >= overflowIndex && index !== pinnedIndex,\n                }); }));\n            }\n        };\n        var cancelAnimationFrame = undefined;\n        // If the container width is already known from a previous render, update the overflow with its width.\n        // Do this in an animation frame to avoid forcing layout to happen early.\n        if (containerWidthRef.current !== undefined) {\n            var win_1 = getWindow(container);\n            if (win_1) {\n                var animationFrameId_1 = win_1.requestAnimationFrame(updateOverflowRef.current);\n                cancelAnimationFrame = function () { return win_1.cancelAnimationFrame(animationFrameId_1); };\n            }\n        }\n        return function () {\n            if (cancelAnimationFrame) {\n                cancelAnimationFrame();\n            }\n            // On cleanup, need to remove all items from the overflow\n            // so they don't have stale properties on the next render\n            setOverflowIndex(items.length);\n            updateOverflowRef.current = undefined;\n        };\n    });\n    return { menuButtonRef: menuButtonRef };\n};\n//# sourceMappingURL=useOverflow.js.map","import { getWindow } from '@fluentui/utilities';\n/**\n * Wrapper for ResizeObserver, with fallback for browsers that don't support ResizeObserver.\n *\n * Calls the onResize callback once layout is complete, and again whenever any of the target(s) change size.\n * Or if ResizeObserver isn't supported, calls the callback whenever the window changes size.\n *\n * @param target - Either a single element, or array of elements to watch for size changes.\n * @param onResize - Callback to be notified when layout is complete, and when the target(s) change size.\n *    If this browser supports ResizeObserver, the callback will be passed the ResizeObserverEntry[] array.\n *    Otherwise, the entries array will be undefined, and you'll need to find another way to get the element's size,\n *    (e.g. clientWidth/clientHeight or getBoundingClientRect).\n *\n * @returns A function to clean up the observer/listener.\n */\nexport var observeResize = function (target, onResize) {\n    if (typeof ResizeObserver !== 'undefined') {\n        var observer_1 = new ResizeObserver(onResize);\n        if (Array.isArray(target)) {\n            target.forEach(function (t) { return observer_1.observe(t); });\n        }\n        else {\n            observer_1.observe(target);\n        }\n        return function () { return observer_1.disconnect(); };\n    }\n    else {\n        // Fallback for browsers that don't support ResizeObserver\n        var onResizeWrapper_1 = function () { return onResize(undefined); };\n        var win_1 = getWindow(Array.isArray(target) ? target[0] : target);\n        if (!win_1) {\n            // Can't listen for resize if we can't get the window object\n            return function () {\n                // Nothing to clean up\n            };\n        }\n        // Listen for the first animation frame, which will happen after layout is complete\n        var animationFrameId_1 = win_1.requestAnimationFrame(onResizeWrapper_1);\n        win_1.addEventListener('resize', onResizeWrapper_1, false);\n        return function () {\n            win_1.cancelAnimationFrame(animationFrameId_1);\n            win_1.removeEventListener('resize', onResizeWrapper_1, false);\n        };\n    }\n};\n//# sourceMappingURL=observeResize.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { AnimationVariables, getGlobalClassNames, HighContrastSelector, normalize, FontWeights, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nvar globalClassNames = {\n    count: 'ms-Pivot-count',\n    icon: 'ms-Pivot-icon',\n    linkIsSelected: 'is-selected',\n    link: 'ms-Pivot-link',\n    linkContent: 'ms-Pivot-linkContent',\n    root: 'ms-Pivot',\n    rootIsLarge: 'ms-Pivot--large',\n    rootIsTabs: 'ms-Pivot--tabs',\n    text: 'ms-Pivot-text',\n    linkInMenu: 'ms-Pivot-linkInMenu',\n    overflowMenuButton: 'ms-Pivot-overflowMenuButton',\n};\nvar getLinkStyles = function (props, classNames, isLinkInOverflowMenu) {\n    var _a, _b, _c;\n    if (isLinkInOverflowMenu === void 0) { isLinkInOverflowMenu = false; }\n    var linkSize = props.linkSize, linkFormat = props.linkFormat;\n    var _d = props.theme, semanticColors = _d.semanticColors, fonts = _d.fonts;\n    var rootIsLarge = linkSize === 'large';\n    var rootIsTabs = linkFormat === 'tabs';\n    return [\n        fonts.medium,\n        {\n            color: semanticColors.actionLink,\n            padding: '0 8px',\n            position: 'relative',\n            backgroundColor: 'transparent',\n            border: 0,\n            borderRadius: 0,\n            selectors: {\n                ':hover': {\n                    backgroundColor: semanticColors.buttonBackgroundHovered,\n                    color: semanticColors.buttonTextHovered,\n                    cursor: 'pointer',\n                },\n                ':active': {\n                    backgroundColor: semanticColors.buttonBackgroundPressed,\n                    color: semanticColors.buttonTextHovered,\n                },\n                ':focus': {\n                    outline: 'none',\n                },\n            },\n        },\n        !isLinkInOverflowMenu && [\n            {\n                display: 'inline-block',\n                lineHeight: 44,\n                height: 44,\n                marginRight: 8,\n                textAlign: 'center',\n                selectors: (_a = {},\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n                        outline: \"1px solid \".concat(semanticColors.focusBorder),\n                    },\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus:after\")] = {\n                        content: 'attr(data-content)',\n                        position: 'relative',\n                        border: 0,\n                    },\n                    _a[':before'] = {\n                        backgroundColor: 'transparent',\n                        bottom: 0,\n                        content: '\"\"',\n                        height: 2,\n                        left: 8,\n                        position: 'absolute',\n                        right: 8,\n                        transition: \"left \".concat(AnimationVariables.durationValue2, \" \").concat(AnimationVariables.easeFunction2, \",\\n                        right \").concat(AnimationVariables.durationValue2, \" \").concat(AnimationVariables.easeFunction2),\n                    },\n                    _a[':after'] = {\n                        color: 'transparent',\n                        content: 'attr(data-content)',\n                        display: 'block',\n                        fontWeight: FontWeights.bold,\n                        height: 1,\n                        overflow: 'hidden',\n                        visibility: 'hidden',\n                    },\n                    _a),\n            },\n            rootIsLarge && {\n                fontSize: fonts.large.fontSize,\n            },\n            rootIsTabs && [\n                {\n                    marginRight: 0,\n                    height: 44,\n                    lineHeight: 44,\n                    backgroundColor: semanticColors.buttonBackground,\n                    padding: '0 10px',\n                    verticalAlign: 'top',\n                    selectors: (_b = {\n                            ':focus': {\n                                outlineOffset: '-2px',\n                            }\n                        },\n                        _b[\".\".concat(IsFocusVisibleClassName, \" &:focus::before\")] = {\n                            height: 'auto',\n                            background: 'transparent',\n                            transition: 'none',\n                        },\n                        _b['&:hover, &:focus'] = {\n                            color: semanticColors.buttonTextCheckedHovered,\n                        },\n                        _b['&:active, &:hover'] = {\n                            color: semanticColors.primaryButtonText,\n                            backgroundColor: semanticColors.primaryButtonBackground,\n                        },\n                        _b[\"&.\".concat(classNames.linkIsSelected)] = {\n                            backgroundColor: semanticColors.primaryButtonBackground,\n                            color: semanticColors.primaryButtonText,\n                            fontWeight: FontWeights.regular,\n                            selectors: (_c = {\n                                    ':before': {\n                                        backgroundColor: 'transparent',\n                                        transition: 'none',\n                                        position: 'absolute',\n                                        top: 0,\n                                        left: 0,\n                                        right: 0,\n                                        bottom: 0,\n                                        content: '\"\"',\n                                        height: 0,\n                                    },\n                                    ':hover': {\n                                        backgroundColor: semanticColors.primaryButtonBackgroundHovered,\n                                        color: semanticColors.primaryButtonText,\n                                    },\n                                    ':active': {\n                                        backgroundColor: semanticColors.primaryButtonBackgroundPressed,\n                                        color: semanticColors.primaryButtonText,\n                                    }\n                                },\n                                _c[HighContrastSelector] = __assign({ fontWeight: FontWeights.semibold, color: 'HighlightText', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                                _c),\n                        },\n                        _b[\".\".concat(IsFocusVisibleClassName, \" &.\").concat(classNames.linkIsSelected, \":focus\")] = {\n                            outlineColor: semanticColors.primaryButtonText,\n                        },\n                        _b),\n                },\n            ],\n        ],\n    ];\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d;\n    var className = props.className, linkSize = props.linkSize, linkFormat = props.linkFormat, theme = props.theme;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(globalClassNames, theme);\n    var rootIsLarge = linkSize === 'large';\n    var rootIsTabs = linkFormat === 'tabs';\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            normalize,\n            {\n                position: 'relative',\n                color: semanticColors.link,\n                whiteSpace: 'nowrap',\n            },\n            rootIsLarge && classNames.rootIsLarge,\n            rootIsTabs && classNames.rootIsTabs,\n            className,\n        ],\n        itemContainer: {\n            selectors: {\n                '&[hidden]': {\n                    display: 'none',\n                },\n            },\n        },\n        link: __spreadArray(__spreadArray([\n            classNames.link\n        ], getLinkStyles(props, classNames), true), [\n            (_a = {},\n                _a[\"&[data-is-overflowing='true']\"] = {\n                    display: 'none',\n                },\n                _a),\n        ], false),\n        overflowMenuButton: [\n            classNames.overflowMenuButton,\n            (_b = {\n                    visibility: 'hidden',\n                    position: 'absolute',\n                    right: 0\n                },\n                _b[\".\".concat(classNames.link, \"[data-is-overflowing='true'] ~ &\")] = {\n                    visibility: 'visible',\n                    position: 'relative',\n                },\n                _b),\n        ],\n        linkInMenu: __spreadArray(__spreadArray([\n            classNames.linkInMenu\n        ], getLinkStyles(props, classNames, true), true), [\n            {\n                textAlign: 'left',\n                width: '100%',\n                height: 36,\n                lineHeight: 36,\n            },\n        ], false),\n        linkIsSelected: [\n            classNames.link,\n            classNames.linkIsSelected,\n            {\n                fontWeight: FontWeights.semibold,\n                selectors: (_c = {\n                        ':before': {\n                            backgroundColor: semanticColors.inputBackgroundChecked,\n                            selectors: (_d = {},\n                                _d[HighContrastSelector] = {\n                                    backgroundColor: 'Highlight',\n                                },\n                                _d),\n                        },\n                        ':hover::before': {\n                            left: 0,\n                            right: 0,\n                        }\n                    },\n                    _c[HighContrastSelector] = {\n                        color: 'Highlight',\n                    },\n                    _c),\n            },\n        ],\n        linkContent: [\n            classNames.linkContent,\n            {\n                flex: '0 1 100%',\n                selectors: {\n                    '& > * ': {\n                        marginLeft: 4,\n                    },\n                    '& > *:first-child': {\n                        marginLeft: 0,\n                    },\n                },\n            },\n        ],\n        text: [\n            classNames.text,\n            {\n                display: 'inline-block',\n                verticalAlign: 'top',\n            },\n        ],\n        count: [\n            classNames.count,\n            {\n                display: 'inline-block',\n                verticalAlign: 'top',\n            },\n        ],\n        icon: classNames.icon,\n    };\n};\n//# sourceMappingURL=Pivot.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { PivotBase } from './Pivot.base';\nimport { getStyles } from './Pivot.styles';\n/**\n * The Pivot control and related tabs pattern are used for navigating frequently accessed,\n * distinct content categories. Pivots allow for navigation between two or more content\n * views and relies on text headers to articulate the different sections of content.\n */\nexport var Pivot = styled(PivotBase, getStyles, undefined, {\n    scope: 'Pivot',\n});\n//# sourceMappingURL=Pivot.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getNativeProps, divProperties, initializeComponentRef, warnDeprecations } from '@fluentui/utilities';\nvar COMPONENT_NAME = 'PivotItem';\nvar PivotItem = /** @class */ (function (_super) {\n    __extends(PivotItem, _super);\n    function PivotItem(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        warnDeprecations(COMPONENT_NAME, props, {\n            linkText: 'headerText',\n        });\n        return _this;\n    }\n    PivotItem.prototype.render = function () {\n        return React.createElement(\"div\", __assign({}, getNativeProps(this.props, divProperties)), this.props.children);\n    };\n    return PivotItem;\n}(React.Component));\nexport { PivotItem };\n//# sourceMappingURL=PivotItem.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, getPropsWithDefaults, getWindow, modalize, } from '../../Utilities';\nimport { useMergedRefs, useAsync, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindow } from '@fluentui/react-window-provider';\nfunction useScrollbarAsync(props, root) {\n    var async = useAsync();\n    var _a = React.useState(false), needsVerticalScrollBarState = _a[0], setNeedsVerticalScrollBar = _a[1];\n    React.useEffect(function () {\n        async.requestAnimationFrame(function () {\n            var _a;\n            // If overflowY is overridden, don't waste time calculating whether the scrollbar is necessary.\n            if (props.style && props.style.overflowY) {\n                return;\n            }\n            var needsVerticalScrollBar = false;\n            if (root && root.current && ((_a = root.current) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {\n                // ClientHeight returns the client height of an element rounded to an\n                // integer. On some browsers at different zoom levels this rounding\n                // can generate different results for the root container and child even\n                // though they are the same height. This causes us to show a scroll bar\n                // when not needed. Ideally we would use BoundingClientRect().height\n                // instead however seems that the API is 90% slower than using ClientHeight.\n                // Therefore instead we will calculate the difference between heights and\n                // allow for a 1px difference to still be considered ok and not show the\n                // scroll bar.\n                var rootHeight = root.current.clientHeight;\n                var firstChildHeight = root.current.firstElementChild.clientHeight;\n                if (rootHeight > 0 && firstChildHeight > rootHeight) {\n                    needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n                }\n            }\n            if (needsVerticalScrollBarState !== needsVerticalScrollBar) {\n                setNeedsVerticalScrollBar(needsVerticalScrollBar);\n            }\n        });\n        return function () { return async.dispose(); };\n    });\n    return needsVerticalScrollBarState;\n}\nfunction defaultFocusRestorer(options) {\n    var originalElement = options.originalElement, containsFocus = options.containsFocus;\n    if (originalElement && containsFocus && originalElement !== getWindow()) {\n        // Make sure that the focus method actually exists\n        // In some cases the object might exist but not be a real element.\n        // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n        // This is wrapped in a setTimeout because of a React 16 bug that is resolved in 17.\n        // Once we move to 17, the setTimeout should be removed (ref: https://github.com/facebook/react/issues/17894#issuecomment-656094405)\n        setTimeout(function () {\n            var _a;\n            (_a = originalElement.focus) === null || _a === void 0 ? void 0 : _a.call(originalElement);\n        }, 0);\n    }\n}\nfunction useRestoreFocus(props, root) {\n    var _a = props.onRestoreFocus, onRestoreFocus = _a === void 0 ? defaultFocusRestorer : _a;\n    var originalFocusedElement = React.useRef();\n    var containsFocus = React.useRef(false);\n    React.useEffect(function () {\n        originalFocusedElement.current = getDocument().activeElement;\n        if (doesElementContainFocus(root.current)) {\n            containsFocus.current = true;\n        }\n        return function () {\n            var _a;\n            onRestoreFocus === null || onRestoreFocus === void 0 ? void 0 : onRestoreFocus({\n                originalElement: originalFocusedElement.current,\n                containsFocus: containsFocus.current,\n                documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n            });\n            // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n            originalFocusedElement.current = undefined;\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n    }, []);\n    useOnEvent(root, 'focus', React.useCallback(function () {\n        containsFocus.current = true;\n    }, []), true);\n    useOnEvent(root, 'blur', React.useCallback(function (ev) {\n        /** The popup should update this._containsFocus when:\n         * relatedTarget exists AND\n         * the relatedTarget is not contained within the popup.\n         * If the relatedTarget is within the popup, that means the popup still has focus\n         * and focused moved from one element to another within the popup.\n         * If relatedTarget is undefined or null that usually means that a\n         * keyboard event occurred and focus didn't change\n         */\n        if (root.current && ev.relatedTarget && !root.current.contains(ev.relatedTarget)) {\n            containsFocus.current = false;\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n    }, []), true);\n}\nfunction useHideSiblingNodes(props, root) {\n    // eslint-disable-next-line deprecation/deprecation\n    var shouldHideSiblings = String(props['aria-modal']).toLowerCase() === 'true' && props.enableAriaHiddenSiblings;\n    React.useEffect(function () {\n        if (!(shouldHideSiblings && root.current)) {\n            return;\n        }\n        var unmodalize = modalize(root.current);\n        return unmodalize;\n    }, [root, shouldHideSiblings]);\n}\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport var Popup = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults({ shouldRestoreFocus: true, enableAriaHiddenSiblings: true }, propsWithoutDefaults);\n    var root = React.useRef();\n    var mergedRootRef = useMergedRefs(root, forwardedRef);\n    useHideSiblingNodes(props, root);\n    useRestoreFocus(props, root);\n    var role = props.role, className = props.className, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, style = props.style, children = props.children, onDismiss = props.onDismiss;\n    var needsVerticalScrollBar = useScrollbarAsync(props, root);\n    var onKeyDown = React.useCallback(function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.escape:\n                if (onDismiss) {\n                    onDismiss(ev);\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n                break;\n        }\n    }, [onDismiss]);\n    var win = useWindow();\n    useOnEvent(win, 'keydown', onKeyDown);\n    return (React.createElement(\"div\", __assign({ ref: mergedRootRef }, getNativeProps(props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: onKeyDown, style: __assign({ overflowY: needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), children));\n});\nPopup.displayName = 'Popup';\n//# sourceMappingURL=Popup.js.map","/**\n * {@docCategory ResizeGroup}\n */\nexport var ResizeGroupDirection;\n(function (ResizeGroupDirection) {\n    ResizeGroupDirection[ResizeGroupDirection[\"horizontal\"] = 0] = \"horizontal\";\n    ResizeGroupDirection[ResizeGroupDirection[\"vertical\"] = 1] = \"vertical\";\n})(ResizeGroupDirection || (ResizeGroupDirection = {}));\n//# sourceMappingURL=ResizeGroup.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { ResizeGroupDirection } from './ResizeGroup.types';\nimport { useConst, useMergedRefs, useAsync, useOnEvent, useWarnings } from '@fluentui/react-hooks';\nimport { useWindow } from '../../WindowProvider';\nvar RESIZE_DELAY = 16;\n/**\n * Returns a simple object is able to store measurements with a given key.\n */\nexport var getMeasurementCache = function () {\n    var measurementsCache = {};\n    return {\n        /**\n         * Checks if the provided data has a cacheKey. If it has a cacheKey and there is a\n         * corresponding entry in the measurementsCache, then it will return that value.\n         * Returns undefined otherwise.\n         */\n        getCachedMeasurement: function (data) {\n            if (data && data.cacheKey && measurementsCache.hasOwnProperty(data.cacheKey)) {\n                return measurementsCache[data.cacheKey];\n            }\n            return undefined;\n        },\n        /**\n         * Should be called whenever there is a new measurement associated with a given data object.\n         * If the data has a cacheKey, store that measurement in the measurementsCache.\n         */\n        addMeasurementToCache: function (data, measurement) {\n            if (data.cacheKey) {\n                measurementsCache[data.cacheKey] = measurement;\n            }\n        },\n    };\n};\n/**\n * Returns a function that is able to compute the next state for the ResizeGroup given the current\n * state and any measurement updates.\n */\nexport var getNextResizeGroupStateProvider = function (measurementCache) {\n    if (measurementCache === void 0) { measurementCache = getMeasurementCache(); }\n    var _measurementCache = measurementCache;\n    var _containerDimension;\n    /**\n     * Gets the width/height of the data rendered in a hidden div.\n     * @param measuredData - The data corresponding to the measurement we wish to take.\n     * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n     * Only called when the measurement is not in the cache.\n     */\n    function _getMeasuredDimension(measuredData, getElementToMeasureDimension) {\n        var cachedDimension = _measurementCache.getCachedMeasurement(measuredData);\n        if (cachedDimension !== undefined) {\n            return cachedDimension;\n        }\n        var measuredDimension = getElementToMeasureDimension();\n        _measurementCache.addMeasurementToCache(measuredData, measuredDimension);\n        return measuredDimension;\n    }\n    /**\n     * Will get the next IResizeGroupState based on the current data while trying to shrink contents\n     * to fit in the container.\n     * @param data - The initial data point to start measuring.\n     * @param onReduceData - Function that transforms the data into something that should render with less width/height.\n     * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n     * Only called when the measurement is not in the cache.\n     */\n    function _shrinkContentsUntilTheyFit(data, onReduceData, getElementToMeasureDimension) {\n        var dataToMeasure = data;\n        var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n        while (measuredDimension > _containerDimension) {\n            var nextMeasuredData = onReduceData(dataToMeasure);\n            // We don't want to get stuck in an infinite render loop when there are no more\n            // scaling steps, so implementations of onReduceData should return undefined when\n            // there are no more scaling states to apply.\n            if (nextMeasuredData === undefined) {\n                return {\n                    renderedData: dataToMeasure,\n                    resizeDirection: undefined,\n                    dataToMeasure: undefined,\n                };\n            }\n            measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n            // If the measurement isn't in the cache, we need to re-render with some data in a hidden div\n            if (measuredDimension === undefined) {\n                return {\n                    dataToMeasure: nextMeasuredData,\n                    resizeDirection: 'shrink',\n                };\n            }\n            dataToMeasure = nextMeasuredData;\n        }\n        return {\n            renderedData: dataToMeasure,\n            resizeDirection: undefined,\n            dataToMeasure: undefined,\n        };\n    }\n    /**\n     * This function should be called when the state changes in a manner that might allow for more content to fit\n     * on the screen, such as the window width/height growing.\n     * @param data - The initial data point to start measuring.\n     * @param onGrowData - Function that transforms the data into something that may take up more space when rendering.\n     * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n     * Only called when the measurement is not in the cache.\n     */\n    function _growDataUntilItDoesNotFit(data, onGrowData, getElementToMeasureDimension, onReduceData) {\n        var dataToMeasure = data;\n        var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n        while (measuredDimension < _containerDimension) {\n            var nextMeasuredData = onGrowData(dataToMeasure);\n            // We don't want to get stuck in an infinite render loop when there are no more\n            // scaling steps, so implementations of onGrowData should return undefined when\n            // there are no more scaling states to apply.\n            if (nextMeasuredData === undefined) {\n                return {\n                    renderedData: dataToMeasure,\n                    resizeDirection: undefined,\n                    dataToMeasure: undefined,\n                };\n            }\n            measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n            // If the measurement isn't in the cache, we need to re-render with some data in a hidden div\n            if (measuredDimension === undefined) {\n                return {\n                    dataToMeasure: nextMeasuredData,\n                };\n            }\n            dataToMeasure = nextMeasuredData;\n        }\n        // Once the loop is done, we should now shrink until the contents fit.\n        return __assign({ resizeDirection: 'shrink' }, _shrinkContentsUntilTheyFit(dataToMeasure, onReduceData, getElementToMeasureDimension));\n    }\n    /**\n     * Handles an update to the container width/height.\n     * Should only be called when we knew the previous container width/height.\n     * @param newDimension - The new width/height of the container.\n     * @param fullDimensionData - The initial data passed in as a prop to resizeGroup.\n     * @param renderedData - The data that was rendered prior to the container size changing.\n     * @param onGrowData - Set to true if the Resize group has an onGrowData function.\n     */\n    function _updateContainerDimension(newDimension, fullDimensionData, renderedData, onGrowData) {\n        var nextState;\n        if (newDimension > _containerDimension) {\n            if (onGrowData) {\n                nextState = {\n                    resizeDirection: 'grow',\n                    dataToMeasure: onGrowData(renderedData),\n                };\n            }\n            else {\n                nextState = {\n                    resizeDirection: 'shrink',\n                    dataToMeasure: fullDimensionData,\n                };\n            }\n        }\n        else {\n            nextState = {\n                resizeDirection: 'shrink',\n                dataToMeasure: renderedData,\n            };\n        }\n        _containerDimension = newDimension;\n        return __assign(__assign({}, nextState), { measureContainer: false });\n    }\n    function getNextState(props, currentState, getElementToMeasureDimension, newContainerDimension) {\n        // If there is no new container width/height or data to measure, there is no need for a new state update\n        if (newContainerDimension === undefined && currentState.dataToMeasure === undefined) {\n            return undefined;\n        }\n        if (newContainerDimension) {\n            // If we know the last container size and we rendered data at that width/height, we can do an optimized render\n            if (_containerDimension && currentState.renderedData && !currentState.dataToMeasure) {\n                return __assign(__assign({}, currentState), _updateContainerDimension(newContainerDimension, props.data, currentState.renderedData, props.onGrowData));\n            }\n            // If we are just setting the container width/height for the first time, we can't do any optimizations\n            _containerDimension = newContainerDimension;\n        }\n        var nextState = __assign(__assign({}, currentState), { measureContainer: false });\n        if (currentState.dataToMeasure) {\n            if (currentState.resizeDirection === 'grow' && props.onGrowData) {\n                nextState = __assign(__assign({}, nextState), _growDataUntilItDoesNotFit(currentState.dataToMeasure, props.onGrowData, getElementToMeasureDimension, props.onReduceData));\n            }\n            else {\n                nextState = __assign(__assign({}, nextState), _shrinkContentsUntilTheyFit(currentState.dataToMeasure, props.onReduceData, getElementToMeasureDimension));\n            }\n        }\n        return nextState;\n    }\n    /** Function that determines if we need to render content for measurement based on the measurement cache contents. */\n    function shouldRenderDataForMeasurement(dataToMeasure) {\n        if (!dataToMeasure || _measurementCache.getCachedMeasurement(dataToMeasure) !== undefined) {\n            return false;\n        }\n        return true;\n    }\n    function getInitialResizeGroupState(data) {\n        return {\n            dataToMeasure: __assign({}, data),\n            resizeDirection: 'grow',\n            measureContainer: true,\n        };\n    }\n    return {\n        getNextState: getNextState,\n        shouldRenderDataForMeasurement: shouldRenderDataForMeasurement,\n        getInitialResizeGroupState: getInitialResizeGroupState,\n    };\n};\n// Provides a context property that (if true) tells any child components that\n// they are only being used for measurement purposes and will not be visible.\nexport var MeasuredContext = React.createContext({ isMeasured: false });\n// Styles for the hidden div used for measurement\nvar hiddenDivStyles = { position: 'fixed', visibility: 'hidden' };\nvar hiddenParentStyles = { position: 'relative' };\nvar COMPONENT_NAME = 'ResizeGroup';\n/**\n * Use useReducer instead of userState because React is not batching the state updates\n * when state is set in callbacks of setTimeout or requestAnimationFrame.\n * See issue: https://github.com/facebook/react/issues/14259\n */\nfunction resizeDataReducer(state, action) {\n    var _a;\n    switch (action.type) {\n        case 'resizeData':\n            return __assign({}, action.value);\n        case 'dataToMeasure':\n            return __assign(__assign({}, state), { dataToMeasure: action.value, resizeDirection: 'grow', measureContainer: true });\n        default:\n            return __assign(__assign({}, state), (_a = {}, _a[action.type] = action.value, _a));\n    }\n}\nfunction useResizeState(props, nextResizeGroupStateProvider, rootRef) {\n    var initialStateData = useConst(function () { return nextResizeGroupStateProvider.getInitialResizeGroupState(props.data); });\n    var _a = React.useReducer(resizeDataReducer, initialStateData), resizeData = _a[0], dispatchResizeDataAction = _a[1];\n    // Reset state when new data is provided\n    React.useEffect(function () {\n        dispatchResizeDataAction({\n            type: 'dataToMeasure',\n            value: props.data,\n        });\n    }, [props.data]);\n    // Because it's possible that we may force more than one re-render per animation frame, we\n    // want to make sure that the RAF request is using the most recent data.\n    var stateRef = React.useRef(initialStateData);\n    stateRef.current = __assign({}, resizeData);\n    var updateResizeState = React.useCallback(function (nextState) {\n        if (nextState) {\n            dispatchResizeDataAction({\n                type: 'resizeData',\n                value: nextState,\n            });\n        }\n    }, []);\n    var remeasure = React.useCallback(function () {\n        if (rootRef.current) {\n            dispatchResizeDataAction({\n                type: 'measureContainer',\n                value: true,\n            });\n        }\n    }, [rootRef]);\n    return [stateRef, updateResizeState, remeasure];\n}\nfunction useResizingBehavior(props, rootRef) {\n    var nextResizeGroupStateProvider = useConst(getNextResizeGroupStateProvider);\n    // A div that can be used for the initial measurement so that we can avoid mounting a second instance\n    // of the component being measured for the initial render.\n    var initialHiddenDiv = React.useRef(null);\n    // A hidden div that is used for mounting a new instance of the component for measurement in a hidden\n    // div without unmounting the currently visible content.\n    var updateHiddenDiv = React.useRef(null);\n    // Tracks if any content has been rendered to the user. This enables us to do some performance optimizations\n    // for the initial render.\n    var hasRenderedContent = React.useRef(false);\n    var async = useAsync();\n    var _a = useResizeState(props, nextResizeGroupStateProvider, rootRef), stateRef = _a[0], updateResizeState = _a[1], remeasure = _a[2];\n    React.useEffect(function () {\n        var _a;\n        if (stateRef.current.renderedData) {\n            hasRenderedContent.current = true;\n            (_a = props.dataDidRender) === null || _a === void 0 ? void 0 : _a.call(props, stateRef.current.renderedData);\n        }\n    });\n    React.useEffect(function () {\n        async.requestAnimationFrame(function () {\n            var containerDimension = undefined;\n            if (stateRef.current.measureContainer && rootRef.current) {\n                var boundingRect = rootRef.current.getBoundingClientRect();\n                containerDimension =\n                    props.direction === ResizeGroupDirection.vertical ? boundingRect.height : boundingRect.width;\n            }\n            var nextState = nextResizeGroupStateProvider.getNextState(props, stateRef.current, function () {\n                var refToMeasure = !hasRenderedContent.current ? initialHiddenDiv : updateHiddenDiv;\n                if (!refToMeasure.current) {\n                    return 0;\n                }\n                var measuredBoundingRect = refToMeasure.current.getBoundingClientRect();\n                return props.direction === ResizeGroupDirection.vertical\n                    ? measuredBoundingRect.height\n                    : measuredBoundingRect.width;\n            }, containerDimension);\n            updateResizeState(nextState);\n        }, rootRef.current);\n    });\n    var win = useWindow();\n    useOnEvent(win, 'resize', async.debounce(remeasure, RESIZE_DELAY, { leading: true }));\n    var dataNeedsMeasuring = nextResizeGroupStateProvider.shouldRenderDataForMeasurement(stateRef.current.dataToMeasure);\n    var isInitialMeasure = !hasRenderedContent.current && dataNeedsMeasuring;\n    return [\n        stateRef.current.dataToMeasure,\n        stateRef.current.renderedData,\n        remeasure,\n        initialHiddenDiv,\n        updateHiddenDiv,\n        dataNeedsMeasuring,\n        isInitialMeasure,\n    ];\n}\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            deprecations: { styles: 'className' },\n        });\n    }\n}\nvar measuredContextValue = { isMeasured: true };\nexport var ResizeGroupBase = React.forwardRef(function (props, forwardedRef) {\n    var rootRef = React.useRef(null);\n    // The root div which is the container inside of which we are trying to fit content.\n    var mergedRootRef = useMergedRefs(rootRef, forwardedRef);\n    var _a = useResizingBehavior(props, rootRef), dataToMeasure = _a[0], renderedData = _a[1], remeasure = _a[2], initialHiddenDiv = _a[3], updateHiddenDiv = _a[4], dataNeedsMeasuring = _a[5], isInitialMeasure = _a[6];\n    React.useImperativeHandle(props.componentRef, function () { return ({ remeasure: remeasure }); }, [remeasure]);\n    useDebugWarnings(props);\n    var className = props.className, onRenderData = props.onRenderData;\n    var divProps = getNativeProps(props, divProperties, ['data']);\n    // We only ever render the final content to the user. All measurements are done in a hidden div.\n    // For the initial render, we want this to be as fast as possible, so we need to make sure that we only mount one\n    // version of the component for measurement and the final render. For renders that update what is on screen, we\n    // want to make sure that there are no jarring effects such as the screen flashing as we apply scaling steps for\n    // measurement. In the update case, we mount a second version of the component just for measurement purposes and\n    // leave the rendered content untouched until we know the next state to show to the user.\n    return (React.createElement(\"div\", __assign({}, divProps, { className: className, ref: mergedRootRef }),\n        React.createElement(\"div\", { style: hiddenParentStyles },\n            dataNeedsMeasuring && !isInitialMeasure && (React.createElement(\"div\", { style: hiddenDivStyles, ref: updateHiddenDiv },\n                React.createElement(MeasuredContext.Provider, { value: measuredContextValue }, onRenderData(dataToMeasure)))),\n            React.createElement(\"div\", { ref: initialHiddenDiv, style: isInitialMeasure ? hiddenDivStyles : undefined, \"data-automation-id\": \"visibleContent\" }, isInitialMeasure ? onRenderData(dataToMeasure) : renderedData && onRenderData(renderedData)))));\n});\nResizeGroupBase.displayName = 'ResizeGroupBase';\n//# sourceMappingURL=ResizeGroup.base.js.map","import { ResizeGroupBase } from './ResizeGroup.base';\nexport var ResizeGroup = ResizeGroupBase;\n//# sourceMappingURL=ResizeGroup.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-ScrollablePane',\n    contentContainer: 'ms-ScrollablePane--contentContainer',\n};\nexport var getStyles = function (props) {\n    var _a, _b;\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var AboveAndBelowStyles = {\n        position: 'absolute',\n        pointerEvents: 'none',\n    };\n    var positioningStyle = {\n        position: 'absolute',\n        top: 0,\n        right: 0,\n        bottom: 0,\n        left: 0,\n        WebkitOverflowScrolling: 'touch',\n    };\n    return {\n        root: [classNames.root, theme.fonts.medium, positioningStyle, className],\n        contentContainer: [\n            classNames.contentContainer,\n            {\n                overflowY: props.scrollbarVisibility === 'always' ? 'scroll' : 'auto',\n            },\n            positioningStyle,\n        ],\n        stickyAbove: [\n            {\n                top: 0,\n                zIndex: 1,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderBottom: '1px solid WindowText',\n                    },\n                    _a),\n            },\n            AboveAndBelowStyles,\n        ],\n        stickyBelow: [\n            {\n                bottom: 0,\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = {\n                        borderTop: '1px solid WindowText',\n                    },\n                    _b),\n            },\n            AboveAndBelowStyles,\n        ],\n        stickyBelowItems: [\n            {\n                bottom: 0,\n            },\n            AboveAndBelowStyles,\n            {\n                width: '100%',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ScrollablePane.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, classNamesFunction, divProperties, getNativeProps, getRTL, initializeComponentRef, } from '../../Utilities';\nimport { ScrollablePaneContext } from './ScrollablePane.types';\nvar getClassNames = classNamesFunction();\nvar ScrollablePaneBase = /** @class */ (function (_super) {\n    __extends(ScrollablePaneBase, _super);\n    function ScrollablePaneBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._stickyAboveRef = React.createRef();\n        _this._stickyBelowRef = React.createRef();\n        _this._contentContainer = React.createRef();\n        _this.subscribe = function (handler) {\n            _this._subscribers.add(handler);\n        };\n        _this.unsubscribe = function (handler) {\n            _this._subscribers.delete(handler);\n        };\n        _this.addSticky = function (sticky) {\n            _this._stickies.add(sticky);\n            // If ScrollablePane is mounted, then sort sticky in correct place\n            if (_this.contentContainer) {\n                sticky.setDistanceFromTop(_this.contentContainer);\n                _this.sortSticky(sticky);\n            }\n        };\n        _this.removeSticky = function (sticky) {\n            _this._stickies.delete(sticky);\n            _this._removeStickyFromContainers(sticky);\n            _this.notifySubscribers();\n        };\n        _this.sortSticky = function (sticky, sortAgain) {\n            if (_this.stickyAbove && _this.stickyBelow) {\n                if (sortAgain) {\n                    _this._removeStickyFromContainers(sticky);\n                }\n                if (sticky.canStickyTop && sticky.stickyContentTop) {\n                    _this._addToStickyContainer(sticky, _this.stickyAbove, sticky.stickyContentTop);\n                }\n                if (sticky.canStickyBottom && sticky.stickyContentBottom) {\n                    _this._addToStickyContainer(sticky, _this.stickyBelow, sticky.stickyContentBottom);\n                }\n            }\n        };\n        _this.updateStickyRefHeights = function () {\n            var stickyItems = _this._stickies;\n            var stickyTopHeight = 0;\n            var stickyBottomHeight = 0;\n            stickyItems.forEach(function (sticky) {\n                var _a = sticky.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n                if (sticky.nonStickyContent) {\n                    if (isStickyTop) {\n                        stickyTopHeight += sticky.nonStickyContent.offsetHeight;\n                    }\n                    if (isStickyBottom) {\n                        stickyBottomHeight += sticky.nonStickyContent.offsetHeight;\n                    }\n                    _this._checkStickyStatus(sticky);\n                }\n            });\n            _this.setState({\n                stickyTopHeight: stickyTopHeight,\n                stickyBottomHeight: stickyBottomHeight,\n            });\n        };\n        _this.notifySubscribers = function () {\n            if (_this.contentContainer) {\n                _this._subscribers.forEach(function (handle) {\n                    // this.stickyBelow is passed in for calculating distance to determine Sticky status\n                    handle(_this.contentContainer, _this.stickyBelow);\n                });\n            }\n        };\n        _this.getScrollPosition = function () {\n            if (_this.contentContainer) {\n                return _this.contentContainer.scrollTop;\n            }\n            return 0;\n        };\n        _this.syncScrollSticky = function (sticky) {\n            if (sticky && _this.contentContainer) {\n                sticky.syncScroll(_this.contentContainer);\n            }\n        };\n        _this._getScrollablePaneContext = function () {\n            return {\n                scrollablePane: {\n                    subscribe: _this.subscribe,\n                    unsubscribe: _this.unsubscribe,\n                    addSticky: _this.addSticky,\n                    removeSticky: _this.removeSticky,\n                    updateStickyRefHeights: _this.updateStickyRefHeights,\n                    sortSticky: _this.sortSticky,\n                    notifySubscribers: _this.notifySubscribers,\n                    syncScrollSticky: _this.syncScrollSticky,\n                },\n            };\n        };\n        _this._addToStickyContainer = function (sticky, stickyContainer, stickyContentToAdd) {\n            // If there's no children, append child to list, otherwise, sort though array and append at correct position\n            if (!stickyContainer.children.length) {\n                stickyContainer.appendChild(stickyContentToAdd);\n            }\n            else {\n                // If stickyContentToAdd isn't a child element of target container, then append\n                if (!stickyContainer.contains(stickyContentToAdd)) {\n                    var stickyChildrenElements_1 = [].slice.call(stickyContainer.children);\n                    var stickyList_1 = [];\n                    // Get stickies.  Filter by canStickyTop/Bottom, then sort by distance from top, and then\n                    // filter by elements that are in the stickyContainer already.\n                    _this._stickies.forEach(function (stickyItem) {\n                        if (stickyContainer === _this.stickyAbove && sticky.canStickyTop) {\n                            stickyList_1.push(stickyItem);\n                        }\n                        else if (sticky.canStickyBottom) {\n                            stickyList_1.push(stickyItem);\n                        }\n                    });\n                    var stickyListSorted = stickyList_1\n                        .sort(function (a, b) {\n                        return (a.state.distanceFromTop || 0) - (b.state.distanceFromTop || 0);\n                    })\n                        .filter(function (item) {\n                        var stickyContent = stickyContainer === _this.stickyAbove ? item.stickyContentTop : item.stickyContentBottom;\n                        if (stickyContent) {\n                            return stickyChildrenElements_1.indexOf(stickyContent) > -1;\n                        }\n                        return false;\n                    });\n                    // Get first element that has a distance from top that is further than our sticky that is being added\n                    var targetStickyToAppendBefore = undefined;\n                    for (var _i = 0, stickyListSorted_1 = stickyListSorted; _i < stickyListSorted_1.length; _i++) {\n                        var stickyListItem = stickyListSorted_1[_i];\n                        if ((stickyListItem.state.distanceFromTop || 0) >= (sticky.state.distanceFromTop || 0)) {\n                            targetStickyToAppendBefore = stickyListItem;\n                            break;\n                        }\n                    }\n                    // If target element to append before is known, grab respective stickyContentTop/Bottom element\n                    // and insert before\n                    var targetContainer = null;\n                    if (targetStickyToAppendBefore) {\n                        targetContainer =\n                            stickyContainer === _this.stickyAbove\n                                ? targetStickyToAppendBefore.stickyContentTop\n                                : targetStickyToAppendBefore.stickyContentBottom;\n                    }\n                    stickyContainer.insertBefore(stickyContentToAdd, targetContainer);\n                }\n            }\n        };\n        _this._removeStickyFromContainers = function (sticky) {\n            if (_this.stickyAbove && sticky.stickyContentTop && _this.stickyAbove.contains(sticky.stickyContentTop)) {\n                _this.stickyAbove.removeChild(sticky.stickyContentTop);\n            }\n            if (_this.stickyBelow && sticky.stickyContentBottom && _this.stickyBelow.contains(sticky.stickyContentBottom)) {\n                _this.stickyBelow.removeChild(sticky.stickyContentBottom);\n            }\n        };\n        _this._onWindowResize = function () {\n            var scrollbarWidth = _this._getScrollbarWidth();\n            var scrollbarHeight = _this._getScrollbarHeight();\n            _this.setState({\n                scrollbarWidth: scrollbarWidth,\n                scrollbarHeight: scrollbarHeight,\n            });\n            _this.notifySubscribers();\n        };\n        _this._getStickyContainerStyle = function (height, isTop) {\n            return __assign(__assign({ height: height }, (getRTL(_this.props.theme)\n                ? {\n                    right: '0',\n                    left: \"\".concat(_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0, \"px\"),\n                }\n                : {\n                    left: '0',\n                    right: \"\".concat(_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0, \"px\"),\n                })), (isTop\n                ? {\n                    top: '0',\n                }\n                : {\n                    bottom: \"\".concat(_this.state.scrollbarHeight || _this._getScrollbarHeight() || 0, \"px\"),\n                }));\n        };\n        _this._onScroll = function () {\n            var contentContainer = _this.contentContainer;\n            if (contentContainer) {\n                _this._stickies.forEach(function (sticky) {\n                    sticky.syncScroll(contentContainer);\n                });\n            }\n            _this._notifyThrottled();\n        };\n        _this._subscribers = new Set();\n        _this._stickies = new Set();\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        _this.state = {\n            stickyTopHeight: 0,\n            stickyBottomHeight: 0,\n            scrollbarWidth: 0,\n            scrollbarHeight: 0,\n        };\n        _this._notifyThrottled = _this._async.throttle(_this.notifySubscribers, 50);\n        return _this;\n    }\n    Object.defineProperty(ScrollablePaneBase.prototype, \"root\", {\n        get: function () {\n            return this._root.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(ScrollablePaneBase.prototype, \"stickyAbove\", {\n        get: function () {\n            return this._stickyAboveRef.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(ScrollablePaneBase.prototype, \"stickyBelow\", {\n        get: function () {\n            return this._stickyBelowRef.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(ScrollablePaneBase.prototype, \"contentContainer\", {\n        get: function () {\n            return this._contentContainer.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ScrollablePaneBase.prototype.componentDidMount = function () {\n        var _this = this;\n        var initialScrollPosition = this.props.initialScrollPosition;\n        this._events.on(this.contentContainer, 'scroll', this._onScroll);\n        this._events.on(window, 'resize', this._onWindowResize);\n        if (this.contentContainer && initialScrollPosition) {\n            this.contentContainer.scrollTop = initialScrollPosition;\n        }\n        // Set sticky distances from top property, then sort in correct order and notify subscribers\n        this.setStickiesDistanceFromTop();\n        this._stickies.forEach(function (sticky) {\n            _this.sortSticky(sticky);\n        });\n        this.notifySubscribers();\n        if ('MutationObserver' in window) {\n            this._mutationObserver = new MutationObserver(function (mutation) {\n                // Function to check if mutation is occuring in stickyAbove or stickyBelow\n                function checkIfMutationIsSticky(mutationRecord) {\n                    if (this.stickyAbove !== null && this.stickyBelow !== null) {\n                        return this.stickyAbove.contains(mutationRecord.target) || this.stickyBelow.contains(mutationRecord.target);\n                    }\n                    return false;\n                }\n                // Compute the scrollbar height, which might have changed if the content's width changed and caused overflow\n                var scrollbarHeight = _this._getScrollbarHeight();\n                // If the scrollbar height changed, update state so it's postioned correctly below sticky footer\n                if (scrollbarHeight !== _this.state.scrollbarHeight) {\n                    _this.setState({\n                        scrollbarHeight: scrollbarHeight,\n                    });\n                }\n                // Notify subscribers again to re-check whether Sticky should be Sticky'd or not\n                _this.notifySubscribers();\n                // If mutation occurs in sticky header or footer, then update sticky top/bottom heights\n                if (mutation.some(checkIfMutationIsSticky.bind(_this))) {\n                    _this.updateStickyRefHeights();\n                }\n                else {\n                    // If mutation occurs in scrollable region, then find Sticky it belongs to and force update\n                    var stickyList_2 = [];\n                    _this._stickies.forEach(function (sticky) {\n                        if (sticky.root && sticky.root.contains(mutation[0].target)) {\n                            stickyList_2.push(sticky);\n                        }\n                    });\n                    if (stickyList_2.length) {\n                        stickyList_2.forEach(function (sticky) {\n                            sticky.forceUpdate();\n                        });\n                    }\n                }\n            });\n            if (this.root) {\n                this._mutationObserver.observe(this.root, {\n                    childList: true,\n                    attributes: true,\n                    subtree: true,\n                    characterData: true,\n                });\n            }\n        }\n    };\n    ScrollablePaneBase.prototype.componentWillUnmount = function () {\n        this._events.dispose();\n        this._async.dispose();\n        if (this._mutationObserver) {\n            this._mutationObserver.disconnect();\n        }\n    };\n    // Only updates if props/state change, just to prevent excessive setState with updateStickyRefHeights\n    ScrollablePaneBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n        return (this.props.children !== nextProps.children ||\n            this.props.initialScrollPosition !== nextProps.initialScrollPosition ||\n            this.props.className !== nextProps.className ||\n            this.state.stickyTopHeight !== nextState.stickyTopHeight ||\n            this.state.stickyBottomHeight !== nextState.stickyBottomHeight ||\n            this.state.scrollbarWidth !== nextState.scrollbarWidth ||\n            this.state.scrollbarHeight !== nextState.scrollbarHeight);\n    };\n    ScrollablePaneBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n        var initialScrollPosition = this.props.initialScrollPosition;\n        if (this.contentContainer &&\n            typeof initialScrollPosition === 'number' &&\n            prevProps.initialScrollPosition !== initialScrollPosition) {\n            this.contentContainer.scrollTop = initialScrollPosition;\n        }\n        // Update subscribers when stickyTopHeight/stickyBottomHeight changes\n        if (prevState.stickyTopHeight !== this.state.stickyTopHeight ||\n            prevState.stickyBottomHeight !== this.state.stickyBottomHeight) {\n            this.notifySubscribers();\n        }\n        this._async.setTimeout(this._onWindowResize, 0);\n    };\n    ScrollablePaneBase.prototype.render = function () {\n        var _a = this.props, className = _a.className, scrollContainerFocus = _a.scrollContainerFocus, scrollContainerAriaLabel = _a.scrollContainerAriaLabel, theme = _a.theme, styles = _a.styles, onScroll = _a.onScroll;\n        var _b = this.state, stickyTopHeight = _b.stickyTopHeight, stickyBottomHeight = _b.stickyBottomHeight;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            scrollbarVisibility: this.props.scrollbarVisibility,\n        });\n        var scrollContainerProps = scrollContainerFocus\n            ? {\n                role: 'group',\n                tabIndex: 0,\n                'aria-label': scrollContainerAriaLabel,\n                onScroll: onScroll,\n            }\n            : {\n                onScroll: onScroll,\n            };\n        return (React.createElement(\"div\", __assign({}, getNativeProps(__assign({}, this.props), divProperties, \n        // on React 17 onScroll is not being invoked on root element,\n        // as a fix this method will be provided to the container element\n        ['onScroll']), { ref: this._root, className: classNames.root }),\n            React.createElement(\"div\", { ref: this._stickyAboveRef, className: classNames.stickyAbove, style: this._getStickyContainerStyle(stickyTopHeight, true) }),\n            React.createElement(\"div\", __assign({ ref: this._contentContainer }, scrollContainerProps, { className: classNames.contentContainer, \"data-is-scrollable\": true }),\n                React.createElement(ScrollablePaneContext.Provider, { value: this._getScrollablePaneContext() }, this.props.children)),\n            React.createElement(\"div\", { className: classNames.stickyBelow, style: this._getStickyContainerStyle(stickyBottomHeight, false) },\n                React.createElement(\"div\", { ref: this._stickyBelowRef, className: classNames.stickyBelowItems }))));\n    };\n    ScrollablePaneBase.prototype.setStickiesDistanceFromTop = function () {\n        var _this = this;\n        if (this.contentContainer) {\n            this._stickies.forEach(function (sticky) {\n                sticky.setDistanceFromTop(_this.contentContainer);\n            });\n        }\n    };\n    ScrollablePaneBase.prototype.forceLayoutUpdate = function () {\n        this._onWindowResize();\n    };\n    ScrollablePaneBase.prototype._checkStickyStatus = function (sticky) {\n        if (this.stickyAbove && this.stickyBelow && this.contentContainer && sticky.nonStickyContent) {\n            // If sticky is sticky, then append content to appropriate container\n            if (sticky.state.isStickyTop || sticky.state.isStickyBottom) {\n                if (sticky.state.isStickyTop &&\n                    !this.stickyAbove.contains(sticky.nonStickyContent) &&\n                    sticky.stickyContentTop) {\n                    sticky.addSticky(sticky.stickyContentTop);\n                }\n                if (sticky.state.isStickyBottom &&\n                    !this.stickyBelow.contains(sticky.nonStickyContent) &&\n                    sticky.stickyContentBottom) {\n                    sticky.addSticky(sticky.stickyContentBottom);\n                }\n            }\n            else if (!this.contentContainer.contains(sticky.nonStickyContent)) {\n                // Reset sticky if it's not sticky and not in the contentContainer element\n                sticky.resetSticky();\n            }\n        }\n    };\n    ScrollablePaneBase.prototype._getScrollbarWidth = function () {\n        var contentContainer = this.contentContainer;\n        return contentContainer ? contentContainer.offsetWidth - contentContainer.clientWidth : 0;\n    };\n    ScrollablePaneBase.prototype._getScrollbarHeight = function () {\n        var contentContainer = this.contentContainer;\n        return contentContainer ? contentContainer.offsetHeight - contentContainer.clientHeight : 0;\n    };\n    return ScrollablePaneBase;\n}(React.Component));\nexport { ScrollablePaneBase };\n//# sourceMappingURL=ScrollablePane.base.js.map","import { getStyles } from './ScrollablePane.styles';\nimport { ScrollablePaneBase } from './ScrollablePane.base';\nimport { styled } from '../../Utilities';\nexport var ScrollablePane = styled(ScrollablePaneBase, getStyles, undefined, { scope: 'ScrollablePane' });\n//# sourceMappingURL=ScrollablePane.js.map","import * as React from 'react';\n/**\n * {@docCategory ScrollablePane}\n */\nexport var ScrollbarVisibility = {\n    auto: 'auto',\n    always: 'always',\n};\nexport var ScrollablePaneContext = React.createContext({ scrollablePane: undefined });\n//# sourceMappingURL=ScrollablePane.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, classNamesFunction, getNativeProps, inputProperties } from '../../Utilities';\nimport { useControllableValue, useId, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nvar COMPONENT_NAME = 'SearchBox';\nvar iconButtonStyles = { root: { height: 'auto' }, icon: { fontSize: '12px' } };\nvar iconButtonProps = { iconName: 'Clear' };\nvar defaultClearButtonProps = { ariaLabel: 'Clear text' };\nvar getClassNames = classNamesFunction();\nvar useComponentRef = function (componentRef, inputElementRef, hasFocus) {\n    React.useImperativeHandle(componentRef, function () { return ({\n        focus: function () { var _a; return (_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },\n        blur: function () { var _a; return (_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.blur(); },\n        hasFocus: function () { return hasFocus; },\n    }); }, [inputElementRef, hasFocus]);\n};\nexport var SearchBoxBase = React.forwardRef(function (props, forwardedRef) {\n    var ariaLabel = props.ariaLabel, className = props.className, _a = props.defaultValue, defaultValue = _a === void 0 ? '' : _a, disabled = props.disabled, underlined = props.underlined, styles = props.styles, \n    // eslint-disable-next-line deprecation/deprecation\n    labelText = props.labelText, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.placeholder, \n    // eslint-disable-next-line deprecation/deprecation\n    placeholder = _b === void 0 ? labelText : _b, theme = props.theme, _c = props.clearButtonProps, clearButtonProps = _c === void 0 ? defaultClearButtonProps : _c, _d = props.disableAnimation, disableAnimation = _d === void 0 ? false : _d, _e = props.showIcon, showIcon = _e === void 0 ? false : _e, customOnClear = props.onClear, customOnBlur = props.onBlur, customOnEscape = props.onEscape, customOnSearch = props.onSearch, customOnKeyDown = props.onKeyDown, iconProps = props.iconProps, role = props.role, onChange = props.onChange, \n    // eslint-disable-next-line deprecation/deprecation\n    onChanged = props.onChanged;\n    var _f = React.useState(false), hasFocus = _f[0], setHasFocus = _f[1];\n    var prevChangeTimestamp = React.useRef();\n    var _g = useControllableValue(props.value, defaultValue, function (ev, newValue) {\n        if (ev && ev.timeStamp === prevChangeTimestamp.current) {\n            // For historical reasons, SearchBox handles both onInput and onChange (we can't modify this\n            // outside a major version due to potential to break partners' tests and possibly apps).\n            // Only call props.onChange for one of the events.\n            return;\n        }\n        prevChangeTimestamp.current = ev === null || ev === void 0 ? void 0 : ev.timeStamp;\n        onChange === null || onChange === void 0 ? void 0 : onChange(ev, newValue);\n        onChanged === null || onChanged === void 0 ? void 0 : onChanged(newValue);\n    }), uncastValue = _g[0], setValue = _g[1];\n    var value = String(uncastValue);\n    var rootElementRef = React.useRef(null);\n    var inputElementRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(rootElementRef, forwardedRef);\n    var id = useId(COMPONENT_NAME, props.id);\n    var customOnClearClick = clearButtonProps.onClick;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        underlined: underlined,\n        hasFocus: hasFocus,\n        disabled: disabled,\n        hasInput: value.length > 0,\n        disableAnimation: disableAnimation,\n        showIcon: showIcon,\n    });\n    var nativeProps = getNativeProps(props, inputProperties, [\n        'className',\n        'placeholder',\n        'onFocus',\n        'onBlur',\n        'value',\n        'role',\n    ]);\n    var onClear = React.useCallback(function (ev) {\n        var _a;\n        customOnClear === null || customOnClear === void 0 ? void 0 : customOnClear(ev);\n        if (!ev.defaultPrevented) {\n            setValue('');\n            (_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n            ev.stopPropagation();\n            ev.preventDefault();\n        }\n    }, [customOnClear, setValue]);\n    var onClearClick = React.useCallback(function (ev) {\n        customOnClearClick === null || customOnClearClick === void 0 ? void 0 : customOnClearClick(ev);\n        if (!ev.defaultPrevented) {\n            onClear(ev);\n        }\n    }, [customOnClearClick, onClear]);\n    var onFocusCapture = function (ev) {\n        var _a;\n        setHasFocus(true);\n        (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n    };\n    var onClickFocus = function () {\n        if (inputElementRef.current) {\n            inputElementRef.current.focus();\n            inputElementRef.current.selectionStart = inputElementRef.current.selectionEnd = 0;\n        }\n    };\n    var onBlur = React.useCallback(function (ev) {\n        setHasFocus(false);\n        customOnBlur === null || customOnBlur === void 0 ? void 0 : customOnBlur(ev);\n    }, [customOnBlur]);\n    var onInputChange = function (ev) {\n        setValue(ev.target.value, ev);\n    };\n    var onKeyDown = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.escape:\n                customOnEscape === null || customOnEscape === void 0 ? void 0 : customOnEscape(ev);\n                // Only call onClear if the search box has a value to clear. Otherwise, allow the Esc key\n                // to propagate from the empty search box to a parent element such as a dialog, etc.\n                if (value && !ev.defaultPrevented) {\n                    onClear(ev);\n                }\n                break;\n            case KeyCodes.enter:\n                if (customOnSearch) {\n                    customOnSearch(value);\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n                break;\n            default:\n                // REVIEW: Why aren't we calling customOnKeyDown for Escape or Enter?\n                customOnKeyDown === null || customOnKeyDown === void 0 ? void 0 : customOnKeyDown(ev);\n                // REVIEW: Why are we calling stopPropagation if customOnKeyDown called preventDefault?\n                // customOnKeyDown should call stopPropagation if it needs it.\n                if (ev.defaultPrevented) {\n                    ev.stopPropagation();\n                }\n                break;\n        }\n    };\n    useDebugWarning(props);\n    useComponentRef(props.componentRef, inputElementRef, hasFocus);\n    return (React.createElement(\"div\", { role: role, ref: mergedRootRef, className: classNames.root, onFocusCapture: onFocusCapture },\n        React.createElement(\"div\", { className: classNames.iconContainer, onClick: onClickFocus, \"aria-hidden\": true },\n            React.createElement(Icon, __assign({ iconName: \"Search\" }, iconProps, { className: classNames.icon }))),\n        React.createElement(\"input\", __assign({}, nativeProps, { id: id, className: classNames.field, placeholder: placeholder, onChange: onInputChange, onInput: onInputChange, onBlur: onBlur, onKeyDown: onKeyDown, value: value, disabled: disabled, role: \"searchbox\", \"aria-label\": ariaLabel, ref: inputElementRef })),\n        value.length > 0 && (React.createElement(\"div\", { className: classNames.clearButton },\n            React.createElement(IconButton, __assign({ onBlur: onBlur, styles: iconButtonStyles, iconProps: iconButtonProps }, clearButtonProps, { onClick: onClearClick }))))));\n});\nSearchBoxBase.displayName = COMPONENT_NAME;\nfunction useDebugWarning(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            deprecations: { labelText: 'placeholder' },\n        });\n    }\n}\n//# sourceMappingURL=SearchBox.base.js.map","import { HighContrastSelector, AnimationVariables, normalize, getPlaceholderStyles, getGlobalClassNames, getInputFocusStyle, } from '../../Styling';\nimport { getRTL } from '../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-SearchBox',\n    iconContainer: 'ms-SearchBox-iconContainer',\n    icon: 'ms-SearchBox-icon',\n    clearButton: 'ms-SearchBox-clearButton',\n    field: 'ms-SearchBox-field',\n};\nexport function getStyles(props) {\n    var _a, _b, _c, _d, _e;\n    var theme = props.theme, underlined = props.underlined, disabled = props.disabled, hasFocus = props.hasFocus, className = props.className, hasInput = props.hasInput, disableAnimation = props.disableAnimation, showIcon = props.showIcon;\n    var palette = theme.palette, fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    // placeholder style constants\n    var placeholderStyles = {\n        color: semanticColors.inputPlaceholderText,\n        opacity: 1,\n    };\n    var inputIconAlt = palette.neutralSecondary;\n    var inputIconAltHovered = palette.neutralPrimary;\n    var inputBorderDisabled = palette.neutralLighter;\n    var inputBackgroundHovered = palette.neutralLighter;\n    var inputBackgroundDisabled = palette.neutralLighter;\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            normalize,\n            {\n                color: semanticColors.inputText,\n                backgroundColor: semanticColors.inputBackground,\n                display: 'flex',\n                flexDirection: 'row',\n                flexWrap: 'nowrap',\n                alignItems: 'stretch',\n                // The 1px top and bottom padding ensure the input field does not overlap the border\n                padding: '1px 0 1px 4px',\n                borderRadius: effects.roundedCorner2,\n                border: \"1px solid \".concat(semanticColors.inputBorder),\n                height: 32,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderColor: 'WindowText',\n                    },\n                    _a[':hover'] = {\n                        borderColor: semanticColors.inputBorderHovered,\n                        selectors: (_b = {},\n                            _b[HighContrastSelector] = {\n                                borderColor: 'Highlight',\n                            },\n                            _b),\n                    },\n                    _a[\":hover .\".concat(classNames.iconContainer)] = {\n                        color: semanticColors.inputIconHovered,\n                    },\n                    _a),\n            },\n            !hasFocus &&\n                hasInput && {\n                selectors: (_c = {},\n                    _c[\":hover .\".concat(classNames.iconContainer)] = {\n                        width: 4,\n                    },\n                    _c[\":hover .\".concat(classNames.icon)] = {\n                        opacity: 0,\n                        pointerEvents: 'none',\n                    },\n                    _c),\n            },\n            hasFocus && [\n                'is-active',\n                {\n                    position: 'relative',\n                },\n                getInputFocusStyle(semanticColors.inputFocusBorderAlt, underlined ? 0 : effects.roundedCorner2, underlined ? 'borderBottom' : 'border'),\n            ],\n            showIcon && [\n                {\n                    selectors: (_d = {},\n                        _d[\":hover .\".concat(classNames.iconContainer)] = {\n                            width: 32,\n                        },\n                        _d[\":hover .\".concat(classNames.icon)] = {\n                            opacity: 1,\n                        },\n                        _d),\n                },\n            ],\n            disabled && [\n                'is-disabled',\n                {\n                    borderColor: inputBorderDisabled,\n                    backgroundColor: inputBackgroundDisabled,\n                    pointerEvents: 'none',\n                    cursor: 'default',\n                    selectors: (_e = {},\n                        _e[HighContrastSelector] = {\n                            borderColor: 'GrayText',\n                        },\n                        _e),\n                },\n            ],\n            underlined && [\n                'is-underlined',\n                {\n                    borderWidth: '0 0 1px 0',\n                    borderRadius: 0,\n                    // Underlined SearchBox has a larger padding left to vertically align with the waffle in product\n                    padding: '1px 0 1px 8px',\n                },\n            ],\n            underlined &&\n                disabled && {\n                backgroundColor: 'transparent',\n            },\n            hasInput && 'can-clear',\n            className,\n        ],\n        iconContainer: [\n            classNames.iconContainer,\n            {\n                display: 'flex',\n                flexDirection: 'column',\n                justifyContent: 'center',\n                flexShrink: 0,\n                fontSize: 16,\n                width: 32,\n                textAlign: 'center',\n                color: semanticColors.inputIcon,\n                cursor: 'text',\n            },\n            hasFocus && {\n                width: 4,\n            },\n            disabled && {\n                color: semanticColors.inputIconDisabled,\n            },\n            !disableAnimation && {\n                transition: \"width \".concat(AnimationVariables.durationValue1),\n            },\n            showIcon &&\n                hasFocus && {\n                width: 32,\n            },\n        ],\n        icon: [\n            classNames.icon,\n            {\n                opacity: 1,\n            },\n            hasFocus && {\n                opacity: 0,\n                pointerEvents: 'none',\n            },\n            !disableAnimation && {\n                transition: \"opacity \".concat(AnimationVariables.durationValue1, \" 0s\"),\n            },\n            showIcon &&\n                hasFocus && {\n                opacity: 1,\n            },\n        ],\n        clearButton: [\n            classNames.clearButton,\n            {\n                display: 'flex',\n                flexDirection: 'row',\n                alignItems: 'stretch',\n                cursor: 'pointer',\n                flexBasis: '32px',\n                flexShrink: 0,\n                padding: 0,\n                margin: '-1px 0px',\n                selectors: {\n                    '&:hover .ms-Button': {\n                        backgroundColor: inputBackgroundHovered,\n                    },\n                    '&:hover .ms-Button-icon': {\n                        color: inputIconAltHovered,\n                    },\n                    '.ms-Button': {\n                        borderRadius: getRTL(theme) ? '1px 0 0 1px' : '0 1px 1px 0',\n                    },\n                    '.ms-Button-icon': {\n                        color: inputIconAlt,\n                    },\n                },\n            },\n        ],\n        field: [\n            classNames.field,\n            normalize,\n            getPlaceholderStyles(placeholderStyles),\n            {\n                backgroundColor: 'transparent',\n                border: 'none',\n                outline: 'none',\n                fontWeight: 'inherit',\n                fontFamily: 'inherit',\n                fontSize: 'inherit',\n                color: semanticColors.inputText,\n                flex: '1 1 0px',\n                // The default implicit value of 'auto' prevents the input from shrinking. Setting min-width to\n                // 0px allows the input element to shrink to fit the container.\n                minWidth: '0px',\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                // This padding forces the text placement to round up.\n                paddingBottom: 0.5,\n                // This removes the IE specific clear button in the input since we implemented our own\n                selectors: {\n                    '::-ms-clear': {\n                        display: 'none',\n                    },\n                },\n            },\n            disabled && {\n                color: semanticColors.disabledText,\n            },\n        ],\n    };\n}\n//# sourceMappingURL=SearchBox.styles.js.map","import { styled } from '../../Utilities';\nimport { SearchBoxBase } from './SearchBox.base';\nimport { getStyles } from './SearchBox.styles';\nexport var SearchBox = styled(SearchBoxBase, getStyles, undefined, { scope: 'SearchBox' });\n//# sourceMappingURL=SearchBox.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var SeparatorBase = React.forwardRef(function (props, ref) {\n    var styles = props.styles, theme = props.theme, className = props.className, vertical = props.vertical, alignContent = props.alignContent, children = props.children;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        alignContent: alignContent,\n        vertical: vertical,\n    });\n    return (React.createElement(\"div\", { className: classNames.root, ref: ref },\n        React.createElement(\"div\", { className: classNames.content, role: \"separator\", \"aria-orientation\": vertical ? 'vertical' : 'horizontal' }, children)));\n});\n//# sourceMappingURL=Separator.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Separator.styles';\nimport { SeparatorBase } from './Separator.base';\nexport var Separator = styled(SeparatorBase, getStyles, undefined, {\n    scope: 'Separator',\n});\nSeparator.displayName = 'Separator';\n//# sourceMappingURL=Separator.js.map","import { HighContrastSelector } from '../../Styling';\nexport var getStyles = function (props) {\n    var _a, _b;\n    var theme = props.theme, alignContent = props.alignContent, vertical = props.vertical, className = props.className;\n    var alignStart = alignContent === 'start';\n    var alignCenter = alignContent === 'center';\n    var alignEnd = alignContent === 'end';\n    return {\n        root: [\n            theme.fonts.medium,\n            {\n                position: 'relative',\n            },\n            alignContent && {\n                textAlign: alignContent,\n            },\n            !alignContent && {\n                textAlign: 'center',\n            },\n            vertical &&\n                (alignCenter || !alignContent) && {\n                verticalAlign: 'middle',\n            },\n            vertical &&\n                alignStart && {\n                verticalAlign: 'top',\n            },\n            vertical &&\n                alignEnd && {\n                verticalAlign: 'bottom',\n            },\n            vertical && {\n                padding: '0 4px',\n                height: 'inherit',\n                display: 'table-cell',\n                zIndex: 1,\n                selectors: {\n                    ':after': (_a = {\n                            backgroundColor: theme.palette.neutralLighter,\n                            width: '1px',\n                            content: '\"\"',\n                            position: 'absolute',\n                            top: '0',\n                            bottom: '0',\n                            left: '50%',\n                            right: '0',\n                            zIndex: -1\n                        },\n                        _a[HighContrastSelector] = {\n                            backgroundColor: 'WindowText',\n                        },\n                        _a),\n                },\n            },\n            !vertical && {\n                padding: '4px 0',\n                selectors: {\n                    ':before': (_b = {\n                            backgroundColor: theme.palette.neutralLighter,\n                            height: '1px',\n                            content: '\"\"',\n                            display: 'block',\n                            position: 'absolute',\n                            top: '50%',\n                            bottom: '0',\n                            left: '0',\n                            right: '0'\n                        },\n                        _b[HighContrastSelector] = {\n                            backgroundColor: 'WindowText',\n                        },\n                        _b),\n                },\n            },\n            className,\n        ],\n        content: [\n            {\n                position: 'relative',\n                display: 'inline-block',\n                padding: '0 12px',\n                color: theme.semanticColors.bodyText,\n                background: theme.semanticColors.bodyBackground,\n            },\n            vertical && {\n                padding: '12px 0',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Separator.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useId, useControllableValue, useConst, useSetTimeout } from '@fluentui/react-hooks';\nimport { KeyCodes, css, getRTL, getRTLSafeKeyCode, on, classNamesFunction, getNativeProps, divProperties, } from '@fluentui/utilities';\nexport var ONKEYDOWN_TIMEOUT_DURATION = 1000;\nvar getClassNames = classNamesFunction();\nvar getSlotStyleFn = function (sty) {\n    return function (value) {\n        var _a;\n        return _a = {},\n            _a[sty] = \"\".concat(value, \"%\"),\n            _a;\n    };\n};\nvar getPercent = function (value, sliderMin, sliderMax) {\n    return sliderMax === sliderMin ? 0 : ((value - sliderMin) / (sliderMax - sliderMin)) * 100;\n};\nvar useComponentRef = function (props, sliderBoxRef, value, range) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        get value() {\n            return value;\n        },\n        get range() {\n            return range;\n        },\n        focus: function () {\n            var _a;\n            (_a = sliderBoxRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n        },\n    }); }, [range, sliderBoxRef, value]);\n};\nexport var useSlider = function (props, ref) {\n    var _a = props.step, step = _a === void 0 ? 1 : _a, className = props.className, _b = props.disabled, disabled = _b === void 0 ? false : _b, label = props.label, _c = props.max, max = _c === void 0 ? 10 : _c, _d = props.min, min = _d === void 0 ? 0 : _d, _e = props.showValue, showValue = _e === void 0 ? true : _e, _f = props.buttonProps, buttonProps = _f === void 0 ? {} : _f, _g = props.vertical, vertical = _g === void 0 ? false : _g, snapToStep = props.snapToStep, valueFormat = props.valueFormat, styles = props.styles, theme = props.theme, originFromZero = props.originFromZero, ariaLabelledBy = props[\"aria-labelledby\"], _h = props.ariaLabel, ariaLabel = _h === void 0 ? props['aria-label'] : _h, ranged = props.ranged, onChange = props.onChange, onChanged = props.onChanged;\n    var disposables = React.useRef([]);\n    var _j = useSetTimeout(), setTimeout = _j.setTimeout, clearTimeout = _j.clearTimeout;\n    var sliderLine = React.useRef(null);\n    // Casting here is necessary because useControllableValue expects the event for the change callback\n    // to extend React.SyntheticEvent, when in fact for Slider, the event could be either a React event\n    // or a native browser event depending on the context.\n    var _k = useControllableValue(props.value, props.defaultValue, function (ev, v) {\n        return onChange === null || onChange === void 0 ? void 0 : onChange(v, ranged ? [internalState.latestLowerValue, v] : undefined, ev);\n    }), unclampedValue = _k[0], setValue = _k[1];\n    var _l = useControllableValue(props.lowerValue, props.defaultLowerValue, function (ev, lv) { return onChange === null || onChange === void 0 ? void 0 : onChange(internalState.latestValue, [lv, internalState.latestValue], ev); }), unclampedLowerValue = _l[0], setLowerValue = _l[1];\n    // Ensure that value is always a number and is clamped by min/max.\n    var value = Math.max(min, Math.min(max, unclampedValue || 0));\n    var lowerValue = Math.max(min, Math.min(value, unclampedLowerValue || 0));\n    var internalState = useConst({\n        onKeyDownTimer: -1,\n        isAdjustingLowerValue: false,\n        latestValue: value,\n        latestLowerValue: lowerValue,\n    });\n    // On each render, update this saved value used by callbacks. (This should be safe even if render\n    // is called multiple times, because an event handler or timeout callback will only run once.)\n    internalState.latestValue = value;\n    internalState.latestLowerValue = lowerValue;\n    var id = useId('Slider', props.id || (buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.id));\n    var classNames = getClassNames(styles, {\n        className: className,\n        disabled: disabled,\n        vertical: vertical,\n        showTransitions: !snapToStep && !internalState.isBetweenSteps,\n        showValue: showValue,\n        ranged: ranged,\n        theme: theme,\n    });\n    var steps = (max - min) / step;\n    var clearOnKeyDownTimer = function () {\n        clearTimeout(internalState.onKeyDownTimer);\n        internalState.onKeyDownTimer = -1;\n    };\n    var setOnKeyDownTimer = function (event) {\n        clearOnKeyDownTimer();\n        if (onChanged) {\n            internalState.onKeyDownTimer = setTimeout(function () {\n                onChanged(event, internalState.latestValue, ranged ? [internalState.latestLowerValue, internalState.latestValue] : undefined);\n            }, ONKEYDOWN_TIMEOUT_DURATION);\n        }\n    };\n    var getAriaValueText = function (valueProps) {\n        var ariaValueText = props.ariaValueText;\n        if (valueProps !== undefined) {\n            return ariaValueText ? ariaValueText(valueProps) : valueProps.toString();\n        }\n        return undefined;\n    };\n    /**\n     * Update `value` or `lowerValue`, including clamping between min/max and rounding to\n     * appropriate precision.\n     * @param newValue - New current value of the slider, possibly rounded to a whole step.\n     * @param newUnroundedValue - Like `newValue` but without the rounding to a step. If this is\n     * provided and not equal to `newValue`, `internalState.isBetweenSteps` will be set, which\n     * may cause thumb movement animations to be disabled.\n     */\n    var updateValue = function (ev, newValue, newUnroundedValue) {\n        newValue = Math.min(max, Math.max(min, newValue));\n        newUnroundedValue = newUnroundedValue !== undefined ? Math.min(max, Math.max(min, newUnroundedValue)) : undefined;\n        var numDec = 0;\n        if (isFinite(step)) {\n            while (Math.round(step * Math.pow(10, numDec)) / Math.pow(10, numDec) !== step) {\n                numDec++;\n            }\n        }\n        // Make sure value has correct number of decimal places based on number of decimals in step\n        var roundedValue = parseFloat(newValue.toFixed(numDec));\n        internalState.isBetweenSteps = newUnroundedValue !== undefined && newUnroundedValue !== roundedValue;\n        if (ranged) {\n            // decided which thumb value to change\n            if (internalState.isAdjustingLowerValue &&\n                (originFromZero ? roundedValue <= 0 : roundedValue <= internalState.latestValue)) {\n                setLowerValue(roundedValue, ev);\n            }\n            else if (!internalState.isAdjustingLowerValue &&\n                (originFromZero ? roundedValue >= 0 : roundedValue >= internalState.latestLowerValue)) {\n                setValue(roundedValue, ev);\n            }\n        }\n        else {\n            setValue(roundedValue, ev);\n        }\n    };\n    var onKeyDown = function (event) {\n        var newCurrentValue = internalState.isAdjustingLowerValue\n            ? internalState.latestLowerValue\n            : internalState.latestValue;\n        var diff = 0;\n        // eslint-disable-next-line deprecation/deprecation\n        switch (event.which) {\n            case getRTLSafeKeyCode(KeyCodes.left, props.theme):\n            case KeyCodes.down:\n                diff = -step;\n                clearOnKeyDownTimer();\n                setOnKeyDownTimer(event);\n                break;\n            case getRTLSafeKeyCode(KeyCodes.right, props.theme):\n            case KeyCodes.up:\n                diff = step;\n                clearOnKeyDownTimer();\n                setOnKeyDownTimer(event);\n                break;\n            case KeyCodes.home:\n                newCurrentValue = min;\n                clearOnKeyDownTimer();\n                setOnKeyDownTimer(event);\n                break;\n            case KeyCodes.end:\n                newCurrentValue = max;\n                clearOnKeyDownTimer();\n                setOnKeyDownTimer(event);\n                break;\n            default:\n                return;\n        }\n        updateValue(event, newCurrentValue + diff);\n        event.preventDefault();\n        event.stopPropagation();\n    };\n    var getPosition = function (event, verticalProp) {\n        var currentPosition = 0;\n        switch (event.type) {\n            case 'mousedown':\n            case 'mousemove':\n                currentPosition = !verticalProp ? event.clientX : event.clientY;\n                break;\n            case 'touchstart':\n            case 'touchmove':\n                currentPosition = !verticalProp\n                    ? event.touches[0].clientX\n                    : event.touches[0].clientY;\n                break;\n        }\n        return currentPosition;\n    };\n    var calculateCurrentSteps = function (event) {\n        // eslint-disable-next-line deprecation/deprecation\n        var sliderPositionRect = sliderLine.current.getBoundingClientRect();\n        var sliderLength = !props.vertical ? sliderPositionRect.width : sliderPositionRect.height;\n        var stepLength = sliderLength / steps;\n        var currentSteps;\n        var distance;\n        if (!props.vertical) {\n            var left = getPosition(event, props.vertical);\n            distance = getRTL(props.theme) ? sliderPositionRect.right - left : left - sliderPositionRect.left;\n            currentSteps = distance / stepLength;\n        }\n        else {\n            var bottom = getPosition(event, props.vertical);\n            distance = sliderPositionRect.bottom - bottom;\n            currentSteps = distance / stepLength;\n        }\n        return currentSteps;\n    };\n    var onMouseMoveOrTouchMove = function (event, suppressEventCancelation) {\n        var currentSteps = calculateCurrentSteps(event);\n        var newUnroundedValue = min + step * currentSteps;\n        var newCurrentValue = min + step * Math.round(currentSteps);\n        updateValue(event, newCurrentValue, newUnroundedValue);\n        if (!suppressEventCancelation) {\n            event.preventDefault();\n            event.stopPropagation();\n        }\n    };\n    var onMouseDownOrTouchStart = function (event) {\n        if (ranged) {\n            var currentSteps = calculateCurrentSteps(event);\n            var newValue = min + step * currentSteps;\n            internalState.isAdjustingLowerValue =\n                newValue <= internalState.latestLowerValue ||\n                    newValue - internalState.latestLowerValue <= internalState.latestValue - newValue;\n        }\n        if (event.type === 'mousedown') {\n            disposables.current.push(on(window, 'mousemove', onMouseMoveOrTouchMove, true), on(window, 'mouseup', onMouseUpOrTouchEnd, true));\n        }\n        else if (event.type === 'touchstart') {\n            disposables.current.push(on(window, 'touchmove', onMouseMoveOrTouchMove, true), on(window, 'touchend', onMouseUpOrTouchEnd, true));\n        }\n        onMouseMoveOrTouchMove(event, true);\n    };\n    var onMouseUpOrTouchEnd = function (event) {\n        // Done adjusting, so clear this value\n        internalState.isBetweenSteps = undefined;\n        onChanged === null || onChanged === void 0 ? void 0 : onChanged(event, internalState.latestValue, ranged ? [internalState.latestLowerValue, internalState.latestValue] : undefined);\n        disposeListeners();\n    };\n    var onThumbFocus = function (event) {\n        internalState.isAdjustingLowerValue = event.target === lowerValueThumbRef.current;\n    };\n    var disposeListeners = React.useCallback(function () {\n        disposables.current.forEach(function (dispose) { return dispose(); });\n        disposables.current = [];\n    }, []);\n    React.useEffect(function () { return disposeListeners; }, [disposeListeners]);\n    var lowerValueThumbRef = React.useRef(null);\n    var thumbRef = React.useRef(null);\n    var sliderBoxRef = React.useRef(null);\n    useComponentRef(props, sliderBoxRef, value, ranged ? [lowerValue, value] : undefined);\n    var getPositionStyles = getSlotStyleFn(vertical ? 'bottom' : getRTL(props.theme) ? 'right' : 'left');\n    var getTrackStyles = getSlotStyleFn(vertical ? 'height' : 'width');\n    var originValue = originFromZero ? 0 : min;\n    var valuePercent = getPercent(value, min, max);\n    var lowerValuePercent = getPercent(lowerValue, min, max);\n    var originPercentOfLine = getPercent(originValue, min, max);\n    var activeSectionWidth = ranged ? valuePercent - lowerValuePercent : Math.abs(originPercentOfLine - valuePercent);\n    var topSectionWidth = Math.min(100 - valuePercent, 100 - originPercentOfLine);\n    var bottomSectionWidth = ranged ? lowerValuePercent : Math.min(valuePercent, originPercentOfLine);\n    var rootProps = {\n        className: classNames.root,\n        ref: ref,\n    };\n    var labelProps = {\n        className: classNames.titleLabel,\n        children: label,\n        disabled: disabled,\n        htmlFor: ariaLabel ? undefined : id,\n    };\n    var valueLabelProps = showValue\n        ? {\n            className: classNames.valueLabel,\n            children: valueFormat ? valueFormat(value) : value,\n            disabled: disabled,\n            htmlFor: disabled ? id : undefined,\n        }\n        : undefined;\n    var lowerValueLabelProps = ranged && showValue\n        ? {\n            className: classNames.valueLabel,\n            children: valueFormat ? valueFormat(lowerValue) : lowerValue,\n            disabled: disabled,\n        }\n        : undefined;\n    var zeroTickProps = originFromZero\n        ? {\n            className: classNames.zeroTick,\n            style: getPositionStyles(originPercentOfLine),\n        }\n        : undefined;\n    var trackActiveProps = {\n        className: css(classNames.lineContainer, classNames.activeSection),\n        style: getTrackStyles(activeSectionWidth),\n    };\n    var trackTopInactiveProps = {\n        className: css(classNames.lineContainer, classNames.inactiveSection),\n        style: getTrackStyles(topSectionWidth),\n    };\n    var trackBottomInactiveProps = {\n        className: css(classNames.lineContainer, classNames.inactiveSection),\n        style: getTrackStyles(bottomSectionWidth),\n    };\n    var sliderProps = __assign({ 'aria-disabled': disabled, role: 'slider', tabIndex: disabled ? undefined : 0 }, { 'data-is-focusable': !disabled });\n    var sliderBoxProps = __assign(__assign(__assign({ id: id, className: css(classNames.slideBox, buttonProps.className), ref: sliderBoxRef }, (!disabled && {\n        onMouseDown: onMouseDownOrTouchStart,\n        onTouchStart: onMouseDownOrTouchStart,\n        onKeyDown: onKeyDown,\n    })), (buttonProps &&\n        getNativeProps(buttonProps, divProperties, ['id', 'className']))), (!ranged && __assign(__assign({}, sliderProps), { 'aria-valuemin': min, 'aria-valuemax': max, 'aria-valuenow': value, 'aria-valuetext': getAriaValueText(value), 'aria-label': ariaLabel || label, 'aria-labelledby': ariaLabelledBy })));\n    var onFocusProp = disabled ? {} : { onFocus: onThumbFocus };\n    var thumbProps = __assign({ ref: thumbRef, className: classNames.thumb, style: getPositionStyles(valuePercent) }, (ranged && __assign(__assign(__assign({}, sliderProps), onFocusProp), { id: \"max-\".concat(id), 'aria-valuemin': lowerValue, 'aria-valuemax': max, 'aria-valuenow': value, 'aria-valuetext': getAriaValueText(value), 'aria-label': \"max \".concat(ariaLabel || label) })));\n    var lowerValueThumbProps = ranged\n        ? __assign(__assign(__assign({ ref: lowerValueThumbRef, className: classNames.thumb, style: getPositionStyles(lowerValuePercent) }, sliderProps), onFocusProp), { id: \"min-\".concat(id), 'aria-valuemin': min, 'aria-valuemax': value, 'aria-valuenow': lowerValue, 'aria-valuetext': getAriaValueText(lowerValue), 'aria-label': \"min \".concat(ariaLabel || label) }) : undefined;\n    var containerProps = {\n        className: classNames.container,\n    };\n    var sliderLineProps = {\n        ref: sliderLine,\n        className: classNames.line,\n    };\n    return {\n        root: rootProps,\n        label: labelProps,\n        sliderBox: sliderBoxProps,\n        container: containerProps,\n        valueLabel: valueLabelProps,\n        lowerValueLabel: lowerValueLabelProps,\n        thumb: thumbProps,\n        lowerValueThumb: lowerValueThumbProps,\n        zeroTick: zeroTickProps,\n        activeTrack: trackActiveProps,\n        topInactiveTrack: trackTopInactiveProps,\n        bottomInactiveTrack: trackBottomInactiveProps,\n        sliderLine: sliderLineProps,\n    };\n};\n//# sourceMappingURL=useSlider.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useWarnings } from '@fluentui/react-hooks';\nimport { FocusRects } from '@fluentui/utilities';\nimport { Label } from '../Label/Label';\nimport { useSlider } from './useSlider';\nvar COMPONENT_NAME = 'SliderBase';\nexport var SliderBase = React.forwardRef(function (props, ref) {\n    var slotProps = useSlider(props, ref);\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            mutuallyExclusive: { value: 'defaultValue' },\n        });\n    }\n    return (React.createElement(\"div\", __assign({}, slotProps.root),\n        slotProps && React.createElement(Label, __assign({}, slotProps.label)),\n        React.createElement(\"div\", __assign({}, slotProps.container),\n            props.ranged &&\n                (props.vertical\n                    ? slotProps.valueLabel && React.createElement(Label, __assign({}, slotProps.valueLabel))\n                    : slotProps.lowerValueLabel && React.createElement(Label, __assign({}, slotProps.lowerValueLabel))),\n            React.createElement(\"div\", __assign({}, slotProps.sliderBox),\n                React.createElement(\"div\", __assign({}, slotProps.sliderLine),\n                    props.ranged && React.createElement(\"span\", __assign({}, slotProps.lowerValueThumb)),\n                    React.createElement(\"span\", __assign({}, slotProps.thumb)),\n                    slotProps.zeroTick && React.createElement(\"span\", __assign({}, slotProps.zeroTick)),\n                    React.createElement(\"span\", __assign({}, slotProps.bottomInactiveTrack)),\n                    React.createElement(\"span\", __assign({}, slotProps.activeTrack)),\n                    React.createElement(\"span\", __assign({}, slotProps.topInactiveTrack)))),\n            props.ranged && props.vertical\n                ? slotProps.lowerValueLabel && React.createElement(Label, __assign({}, slotProps.lowerValueLabel))\n                : slotProps.valueLabel && React.createElement(Label, __assign({}, slotProps.valueLabel))),\n        React.createElement(FocusRects, null)));\n});\nSliderBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=Slider.base.js.map","import { __spreadArray } from \"tslib\";\nimport { getGlobalClassNames, HighContrastSelector, AnimationVariables, getFocusStyle, } from '@fluentui/style-utilities';\nimport { getRTL } from '@fluentui/utilities';\nvar GlobalClassNames = {\n    root: 'ms-Slider',\n    enabled: 'ms-Slider-enabled',\n    disabled: 'ms-Slider-disabled',\n    row: 'ms-Slider-row',\n    column: 'ms-Slider-column',\n    container: 'ms-Slider-container',\n    slideBox: 'ms-Slider-slideBox',\n    line: 'ms-Slider-line',\n    thumb: 'ms-Slider-thumb',\n    activeSection: 'ms-Slider-active',\n    inactiveSection: 'ms-Slider-inactive',\n    valueLabel: 'ms-Slider-value',\n    showValue: 'ms-Slider-showValue',\n    showTransitions: 'ms-Slider-showTransitions',\n    zeroTick: 'ms-Slider-zeroTick',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n    var className = props.className, titleLabelClassName = props.titleLabelClassName, theme = props.theme, vertical = props.vertical, disabled = props.disabled, showTransitions = props.showTransitions, showValue = props.showValue, ranged = props.ranged;\n    var semanticColors = theme.semanticColors, palette = theme.palette;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    /** Tokens:\n     *   The word \"active\" in the token refers to the selected section of the slider\n     *   The word \"inactive\" in the token refers to the unselected section of the slider */\n    var pressedActiveSectionColor = semanticColors.inputBackgroundCheckedHovered;\n    var hoveredActiveSectionColor = semanticColors.inputBackgroundChecked;\n    var hoveredPressedinactiveSectionColor = palette.neutralSecondaryAlt;\n    var restActiveSectionColor = palette.neutralPrimary;\n    var restInactiveSectionColor = palette.neutralSecondaryAlt;\n    var disabledActiveSectionColor = semanticColors.disabledText;\n    var disabledInactiveSectionColor = semanticColors.disabledBackground;\n    var thumbBackgroundColor = semanticColors.inputBackground;\n    var thumbBorderColor = semanticColors.smallInputBorder;\n    var thumbDisabledBorderColor = semanticColors.disabledBorder;\n    var slideBoxActiveSectionStyles = !disabled && {\n        backgroundColor: pressedActiveSectionColor,\n        selectors: (_a = {},\n            _a[HighContrastSelector] = {\n                backgroundColor: 'Highlight',\n            },\n            _a),\n    };\n    var slideBoxInactiveSectionStyles = !disabled && {\n        backgroundColor: hoveredPressedinactiveSectionColor,\n        selectors: (_b = {},\n            _b[HighContrastSelector] = {\n                borderColor: 'Highlight',\n            },\n            _b),\n    };\n    var slideHoverSectionStyles = !disabled && {\n        backgroundColor: hoveredActiveSectionColor,\n        selectors: (_c = {},\n            _c[HighContrastSelector] = {\n                backgroundColor: 'Highlight',\n            },\n            _c),\n    };\n    var slideBoxActiveThumbStyles = !disabled && {\n        border: \"2px solid \".concat(pressedActiveSectionColor),\n        selectors: (_d = {},\n            _d[HighContrastSelector] = {\n                borderColor: 'Highlight',\n            },\n            _d),\n    };\n    var slideBoxActiveZeroTickStyles = !props.disabled && {\n        backgroundColor: semanticColors.inputPlaceholderBackgroundChecked,\n        selectors: (_e = {},\n            _e[HighContrastSelector] = {\n                backgroundColor: 'Highlight',\n            },\n            _e),\n    };\n    return {\n        root: __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([\n            classNames.root,\n            theme.fonts.medium,\n            {\n                userSelect: 'none',\n            },\n            vertical && {\n                marginRight: 8,\n            }\n        ], [!disabled ? classNames.enabled : undefined], false), [disabled ? classNames.disabled : undefined], false), [!vertical ? classNames.row : undefined], false), [vertical ? classNames.column : undefined], false), [\n            className,\n        ], false),\n        titleLabel: [\n            {\n                padding: 0,\n            },\n            titleLabelClassName,\n        ],\n        container: [\n            classNames.container,\n            {\n                display: 'flex',\n                flexWrap: 'nowrap',\n                alignItems: 'center',\n            },\n            vertical && {\n                flexDirection: 'column',\n                height: '100%',\n                textAlign: 'center',\n                margin: '8px 0',\n            },\n        ],\n        slideBox: __spreadArray(__spreadArray([\n            classNames.slideBox,\n            !ranged && getFocusStyle(theme),\n            {\n                background: 'transparent',\n                border: 'none',\n                flexGrow: 1,\n                lineHeight: 28,\n                display: 'flex',\n                alignItems: 'center',\n                selectors: (_f = {},\n                    _f[\":active .\".concat(classNames.activeSection)] = slideBoxActiveSectionStyles,\n                    _f[\":hover .\".concat(classNames.activeSection)] = slideHoverSectionStyles,\n                    _f[\":active .\".concat(classNames.inactiveSection)] = slideBoxInactiveSectionStyles,\n                    _f[\":hover .\".concat(classNames.inactiveSection)] = slideBoxInactiveSectionStyles,\n                    _f[\":active .\".concat(classNames.thumb)] = slideBoxActiveThumbStyles,\n                    _f[\":hover .\".concat(classNames.thumb)] = slideBoxActiveThumbStyles,\n                    _f[\":active .\".concat(classNames.zeroTick)] = slideBoxActiveZeroTickStyles,\n                    _f[\":hover .\".concat(classNames.zeroTick)] = slideBoxActiveZeroTickStyles,\n                    _f[HighContrastSelector] = {\n                        forcedColorAdjust: 'none',\n                    },\n                    _f),\n            },\n            vertical\n                ? {\n                    height: '100%',\n                    width: 28,\n                    padding: '8px 0', // Make room for thumb at bottom of line\n                }\n                : {\n                    height: 28,\n                    width: 'auto',\n                    padding: '0 8px', // Make room for thumb at ends of line\n                }\n        ], [showValue ? classNames.showValue : undefined], false), [showTransitions ? classNames.showTransitions : undefined], false),\n        thumb: [\n            classNames.thumb,\n            ranged && getFocusStyle(theme, { inset: -4 }),\n            {\n                borderWidth: 2,\n                borderStyle: 'solid',\n                borderColor: thumbBorderColor,\n                borderRadius: 10,\n                boxSizing: 'border-box',\n                background: thumbBackgroundColor,\n                display: 'block',\n                width: 16,\n                height: 16,\n                position: 'absolute',\n            },\n            vertical\n                ? {\n                    left: -6,\n                    margin: '0 auto',\n                    transform: 'translateY(8px)',\n                }\n                : {\n                    top: -6,\n                    transform: getRTL(theme) ? 'translateX(50%)' : 'translateX(-50%)',\n                },\n            showTransitions && {\n                transition: \"left \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction1),\n            },\n            disabled && {\n                borderColor: thumbDisabledBorderColor,\n                selectors: (_g = {},\n                    _g[HighContrastSelector] = {\n                        borderColor: 'GrayText',\n                    },\n                    _g),\n            },\n        ],\n        line: [\n            classNames.line,\n            {\n                display: 'flex',\n                position: 'relative',\n            },\n            vertical\n                ? {\n                    height: '100%',\n                    width: 4,\n                    margin: '0 auto',\n                    flexDirection: 'column-reverse',\n                }\n                : {\n                    width: '100%',\n                },\n        ],\n        lineContainer: [\n            {\n                borderRadius: 4,\n                boxSizing: 'border-box',\n            },\n            vertical\n                ? {\n                    width: 4,\n                    height: '100%',\n                }\n                : {\n                    height: 4,\n                    width: '100%',\n                },\n        ],\n        activeSection: [\n            classNames.activeSection,\n            {\n                background: restActiveSectionColor,\n                selectors: (_h = {},\n                    _h[HighContrastSelector] = {\n                        backgroundColor: 'WindowText',\n                    },\n                    _h),\n            },\n            showTransitions && {\n                transition: \"width \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction1),\n            },\n            disabled && {\n                background: disabledActiveSectionColor,\n                selectors: (_j = {},\n                    _j[HighContrastSelector] = {\n                        backgroundColor: 'GrayText',\n                        borderColor: 'GrayText',\n                    },\n                    _j),\n            },\n        ],\n        inactiveSection: [\n            classNames.inactiveSection,\n            {\n                background: restInactiveSectionColor,\n                selectors: (_k = {},\n                    _k[HighContrastSelector] = {\n                        border: '1px solid WindowText',\n                    },\n                    _k),\n            },\n            showTransitions && {\n                transition: \"width \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction1),\n            },\n            disabled && {\n                background: disabledInactiveSectionColor,\n                selectors: (_l = {},\n                    _l[HighContrastSelector] = {\n                        borderColor: 'GrayText',\n                    },\n                    _l),\n            },\n        ],\n        zeroTick: [\n            classNames.zeroTick,\n            {\n                position: 'absolute',\n                background: semanticColors.disabledBorder,\n                selectors: (_m = {},\n                    _m[HighContrastSelector] = {\n                        backgroundColor: 'WindowText',\n                    },\n                    _m),\n            },\n            props.disabled && {\n                background: semanticColors.disabledBackground,\n                selectors: (_o = {},\n                    _o[HighContrastSelector] = {\n                        backgroundColor: 'GrayText',\n                    },\n                    _o),\n            },\n            props.vertical\n                ? {\n                    width: '16px',\n                    height: '1px',\n                    transform: getRTL(theme) ? 'translateX(6px)' : 'translateX(-6px)',\n                }\n                : {\n                    width: '1px',\n                    height: '16px',\n                    transform: 'translateY(-6px)',\n                },\n        ],\n        valueLabel: [\n            classNames.valueLabel,\n            {\n                flexShrink: 1,\n                width: 30,\n                lineHeight: '1', // using a string here meaning it's relative to the size of the font\n            },\n            vertical\n                ? {\n                    margin: '0 auto',\n                    whiteSpace: 'nowrap',\n                    width: 40,\n                }\n                : {\n                    margin: '0 8px',\n                    whiteSpace: 'nowrap',\n                    width: 40,\n                },\n        ],\n    };\n};\n//# sourceMappingURL=Slider.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { SliderBase } from './Slider.base';\nimport { getStyles } from './Slider.styles';\nexport var Slider = styled(SliderBase, getStyles, undefined, {\n    scope: 'Slider',\n});\n//# sourceMappingURL=Slider.js.map","/**\n * {@docCategory SpinButton}\n */\nexport var KeyboardSpinDirection;\n(function (KeyboardSpinDirection) {\n    KeyboardSpinDirection[KeyboardSpinDirection[\"down\"] = -1] = \"down\";\n    KeyboardSpinDirection[KeyboardSpinDirection[\"notSpinning\"] = 0] = \"notSpinning\";\n    KeyboardSpinDirection[KeyboardSpinDirection[\"up\"] = 1] = \"up\";\n})(KeyboardSpinDirection || (KeyboardSpinDirection = {}));\n//# sourceMappingURL=SpinButton.types.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, HighContrastSelector, IconFontSizes, getInputFocusStyle } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nimport { Position } from '../../Positioning';\nvar ARROW_BUTTON_WIDTH = 23;\nvar ARROW_BUTTON_ICON_SIZE = 8;\nvar DEFAULT_HEIGHT = 32;\nvar DEFAULT_MIN_WIDTH = 86;\nvar LABEL_MARGIN = 10;\nvar getDisabledStyles = memoizeFunction(function (theme) {\n    var _a;\n    var semanticColors = theme.semanticColors;\n    var SpinButtonTextColorDisabled = semanticColors.disabledText;\n    var SpinButtonBackgroundColorDisabled = semanticColors.disabledBackground;\n    return {\n        backgroundColor: SpinButtonBackgroundColorDisabled,\n        pointerEvents: 'none',\n        cursor: 'default',\n        color: SpinButtonTextColorDisabled,\n        selectors: (_a = {\n                ':after': {\n                    borderColor: SpinButtonBackgroundColorDisabled,\n                }\n            },\n            _a[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _a),\n    };\n});\nexport var getArrowButtonStyles = memoizeFunction(function (theme, isUpArrow, customSpecificArrowStyles) {\n    var _a, _b, _c;\n    var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects;\n    // TODO: after updating the semanticColor slots all this need to be reevaluated.\n    var ArrowButtonTextColor = palette.neutralSecondary;\n    var ArrowButtonTextColorHovered = semanticColors.buttonText;\n    var ArrowButtonTextColorPressed = semanticColors.buttonText;\n    var ArrowButtonBackgroundHovered = semanticColors.buttonBackgroundHovered;\n    var ArrowButtonBackgroundPressed = semanticColors.buttonBackgroundPressed;\n    var defaultArrowButtonStyles = {\n        root: {\n            outline: 'none',\n            display: 'block',\n            height: '50%',\n            width: ARROW_BUTTON_WIDTH,\n            padding: 0,\n            backgroundColor: 'transparent',\n            textAlign: 'center',\n            cursor: 'default',\n            color: ArrowButtonTextColor,\n            selectors: {\n                '&.ms-DownButton': {\n                    borderRadius: \"0 0 \".concat(effects.roundedCorner2, \" 0\"),\n                },\n                '&.ms-UpButton': {\n                    borderRadius: \"0 \".concat(effects.roundedCorner2, \" 0 0\"),\n                },\n            },\n        },\n        rootHovered: {\n            backgroundColor: ArrowButtonBackgroundHovered,\n            color: ArrowButtonTextColorHovered,\n        },\n        rootChecked: {\n            backgroundColor: ArrowButtonBackgroundPressed,\n            color: ArrowButtonTextColorPressed,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    backgroundColor: 'Highlight',\n                    color: 'HighlightText',\n                },\n                _a),\n        },\n        rootPressed: {\n            backgroundColor: ArrowButtonBackgroundPressed,\n            color: ArrowButtonTextColorPressed,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    backgroundColor: 'Highlight',\n                    color: 'HighlightText',\n                },\n                _b),\n        },\n        rootDisabled: {\n            opacity: 0.5,\n            selectors: (_c = {},\n                _c[HighContrastSelector] = {\n                    color: 'GrayText',\n                    opacity: 1,\n                },\n                _c),\n        },\n        icon: {\n            fontSize: ARROW_BUTTON_ICON_SIZE,\n            marginTop: 0,\n            marginRight: 0,\n            marginBottom: 0,\n            marginLeft: 0,\n        },\n    };\n    // No specific styles needed as of now.\n    var defaultUpArrowButtonStyles = {};\n    var defaultDownArrowButtonStyles = {};\n    return concatStyleSets(defaultArrowButtonStyles, isUpArrow ? defaultUpArrowButtonStyles : defaultDownArrowButtonStyles, customSpecificArrowStyles);\n});\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d;\n    var theme = props.theme, className = props.className, labelPosition = props.labelPosition, disabled = props.disabled, isFocused = props.isFocused;\n    var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n    var SpinButtonRootBorderColor = semanticColors.inputBorder;\n    var SpinButtonRootBackgroundColor = semanticColors.inputBackground;\n    var SpinButtonRootBorderColorHovered = semanticColors.inputBorderHovered;\n    var SpinButtonRootBorderColorFocused = semanticColors.inputFocusBorderAlt;\n    var SpinButtonInputTextColor = semanticColors.inputText;\n    var SpinButtonInputTextColorSelected = palette.white;\n    var SpinButtonInputBackgroundColorSelected = semanticColors.inputBackgroundChecked;\n    var SpinButtonIconDisabledColor = semanticColors.disabledText;\n    return {\n        root: [\n            fonts.medium,\n            {\n                outline: 'none',\n                width: '100%',\n                minWidth: DEFAULT_MIN_WIDTH,\n            },\n            className,\n        ],\n        labelWrapper: [\n            {\n                display: 'inline-flex',\n                alignItems: 'center',\n            },\n            labelPosition === Position.start && {\n                height: DEFAULT_HEIGHT,\n                float: 'left',\n                marginRight: LABEL_MARGIN,\n            },\n            labelPosition === Position.end && {\n                height: DEFAULT_HEIGHT,\n                float: 'right',\n                marginLeft: LABEL_MARGIN,\n            },\n            labelPosition === Position.top && {\n                // Due to the lineHeight set on the label (below), the height of the wrapper (contains icon+label)\n                // ends up 1px taller than a standard label height, causing the vertical alignment to be off when\n                // the SpinButton is displayed with the label on top next to other form fields.\n                // Decrease the wrapper's effective height slightly to compensate.\n                marginBottom: -1,\n            },\n        ],\n        icon: [\n            {\n                padding: '0 5px',\n                fontSize: IconFontSizes.large,\n            },\n            disabled && {\n                color: SpinButtonIconDisabledColor,\n            },\n        ],\n        label: {\n            pointerEvents: 'none',\n            // centering the label with the icon by forcing the exact same height as the icon.\n            lineHeight: IconFontSizes.large,\n        },\n        spinButtonWrapper: [\n            __assign(__assign({ display: 'flex', position: 'relative', boxSizing: 'border-box', height: DEFAULT_HEIGHT, minWidth: DEFAULT_MIN_WIDTH }, getInputFocusStyle(SpinButtonRootBorderColor, effects.roundedCorner2, 'border', 0)), { ':after': (_a = {\n                        borderWidth: '1px'\n                    },\n                    _a[HighContrastSelector] = {\n                        borderColor: 'GrayText',\n                    },\n                    _a) }),\n            (labelPosition === Position.top || labelPosition === Position.bottom) && {\n                width: '100%',\n            },\n            !disabled && [\n                {\n                    ':hover:after': (_b = {\n                            borderColor: SpinButtonRootBorderColorHovered\n                        },\n                        _b[HighContrastSelector] = {\n                            borderColor: 'Highlight',\n                        },\n                        _b),\n                },\n                isFocused && {\n                    ':hover:after, :after': (_c = {\n                            borderColor: SpinButtonRootBorderColorFocused,\n                            borderWidth: '2px'\n                        },\n                        _c[HighContrastSelector] = {\n                            borderColor: 'Highlight',\n                        },\n                        _c),\n                },\n            ],\n            disabled && getDisabledStyles(theme),\n        ],\n        input: [\n            'ms-spinButton-input',\n            {\n                boxSizing: 'border-box',\n                boxShadow: 'none',\n                borderStyle: 'none',\n                flex: 1,\n                margin: 0,\n                fontSize: fonts.medium.fontSize,\n                fontFamily: 'inherit',\n                color: SpinButtonInputTextColor,\n                backgroundColor: SpinButtonRootBackgroundColor,\n                height: '100%',\n                padding: '0 8px 0 9px',\n                outline: 0,\n                display: 'block',\n                minWidth: DEFAULT_MIN_WIDTH - ARROW_BUTTON_WIDTH - 2,\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n                overflow: 'hidden',\n                cursor: 'text',\n                userSelect: 'text',\n                borderRadius: \"\".concat(effects.roundedCorner2, \" 0 0 \").concat(effects.roundedCorner2),\n            },\n            !disabled && {\n                selectors: {\n                    '::selection': {\n                        backgroundColor: SpinButtonInputBackgroundColorSelected,\n                        color: SpinButtonInputTextColorSelected,\n                        selectors: (_d = {},\n                            _d[HighContrastSelector] = {\n                                backgroundColor: 'Highlight',\n                                borderColor: 'Highlight',\n                                color: 'HighlightText',\n                            },\n                            _d),\n                    },\n                },\n            },\n            disabled && getDisabledStyles(theme),\n        ],\n        arrowButtonsContainer: [\n            {\n                display: 'block',\n                height: '100%',\n                cursor: 'default',\n            },\n            disabled && getDisabledStyles(theme),\n        ],\n    };\n};\n//# sourceMappingURL=SpinButton.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { KeyCodes, calculatePrecision, classNamesFunction, precisionRound, getNativeProps, getPropsWithDefaults, divProperties, } from '../../Utilities';\nimport { getArrowButtonStyles } from './SpinButton.styles';\nimport { KeyboardSpinDirection } from './SpinButton.types';\nimport { Position } from '../../Positioning';\nimport { useAsync, useControllableValue, useWarnings, useId, usePrevious } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'SpinButton';\nvar DEFAULT_PROPS = {\n    disabled: false,\n    label: '',\n    step: 1,\n    labelPosition: Position.start,\n    incrementButtonIcon: { iconName: 'ChevronUpSmall' },\n    decrementButtonIcon: { iconName: 'ChevronDownSmall' },\n};\nvar INITIAL_STEP_DELAY = 400;\nvar STEP_DELAY = 75;\nvar useComponentRef = function (props, input, value) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        get value() {\n            return value;\n        },\n        focus: function () {\n            if (input.current) {\n                input.current.focus();\n            }\n        },\n    }); }, [input, value]);\n};\nvar noOp = function () {\n    /**\n     * A noop input change handler. Using onInput instead of onChange was meant to address an issue\n     * which apparently has been resolved in React 16 (https://github.com/facebook/react/issues/7027).\n     * The no-op onChange handler was still needed because React gives console errors if an input\n     * doesn't have onChange.\n     *\n     * TODO (Fabric 8?) - switch to just calling onChange (this is a breaking change for any tests,\n     * ours or 3rd-party, which simulate entering text in a SpinButton)\n     */\n};\n/** Clamp the value to the provided min and/or max */\nvar clampValue = function (value, _a) {\n    var min = _a.min, max = _a.max;\n    if (typeof max === 'number') {\n        value = Math.min(value, max);\n    }\n    if (typeof min === 'number') {\n        value = Math.max(value, min);\n    }\n    return value;\n};\nexport var SpinButtonBase = React.forwardRef(function (propsWithoutDefaults, ref) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var disabled = props.disabled, label = props.label, min = props.min, max = props.max, step = props.step, defaultValue = props.defaultValue, valueFromProps = props.value, precisionFromProps = props.precision, labelPosition = props.labelPosition, iconProps = props.iconProps, incrementButtonIcon = props.incrementButtonIcon, incrementButtonAriaLabel = props.incrementButtonAriaLabel, decrementButtonIcon = props.decrementButtonIcon, decrementButtonAriaLabel = props.decrementButtonAriaLabel, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, customUpArrowButtonStyles = props.upArrowButtonStyles, customDownArrowButtonStyles = props.downArrowButtonStyles, theme = props.theme, ariaPositionInSet = props.ariaPositionInSet, ariaSetSize = props.ariaSetSize, ariaValueNow = props.ariaValueNow, ariaValueText = props.ariaValueText, className = props.className, inputProps = props.inputProps, onDecrement = props.onDecrement, onIncrement = props.onIncrement, iconButtonProps = props.iconButtonProps, onValidate = props.onValidate, onChange = props.onChange, styles = props.styles;\n    var input = React.useRef(null);\n    var inputId = useId('input');\n    var labelId = useId('Label');\n    var _a = React.useState(false), isFocused = _a[0], setIsFocused = _a[1];\n    var _b = React.useState(KeyboardSpinDirection.notSpinning), keyboardSpinDirection = _b[0], setKeyboardSpinDirection = _b[1];\n    var async = useAsync();\n    var precision = React.useMemo(function () {\n        return precisionFromProps !== null && precisionFromProps !== void 0 ? precisionFromProps : Math.max(calculatePrecision(step), 0);\n    }, [precisionFromProps, step]);\n    /**\n     * Actual current value. If `props.value` is provided (controlled), it will always be used.\n     * If not (uncontrolled), this tracks the current value based on user modifications.\n     * Note that while the user is editing text in the field, this will not be updated until \"commit\"\n     * (blur or press enter).\n     */\n    var _c = useControllableValue(valueFromProps, defaultValue !== null && defaultValue !== void 0 ? defaultValue : String(min || 0), onChange), value = _c[0], setValue = _c[1];\n    /**\n     * \"Uncommitted\" internal value while the user is editing text in the field. This lets us wait to\n     * call `onChange` (and possibly update the real value) until the user \"commits\" the value by\n     * pressing enter or blurring the field.\n     */\n    var _d = React.useState(), intermediateValue = _d[0], setIntermediateValue = _d[1];\n    var internalState = React.useRef({\n        stepTimeoutHandle: -1,\n        latestValue: undefined,\n        latestIntermediateValue: undefined,\n    }).current;\n    // On each render, update this saved value used by callbacks. (This should be safe even if render\n    // is called multiple times, because an event handler or timeout callback will only run once.)\n    internalState.latestValue = value;\n    internalState.latestIntermediateValue = intermediateValue;\n    var previousValueFromProps = usePrevious(valueFromProps);\n    React.useEffect(function () {\n        // If props.value changes while editing, clear the intermediate value\n        if (valueFromProps !== previousValueFromProps && intermediateValue !== undefined) {\n            setIntermediateValue(undefined);\n        }\n    }, [valueFromProps, previousValueFromProps, intermediateValue]);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        disabled: disabled,\n        isFocused: isFocused,\n        keyboardSpinDirection: keyboardSpinDirection,\n        labelPosition: labelPosition,\n        className: className,\n    });\n    var nativeProps = getNativeProps(props, divProperties, [\n        'onBlur',\n        'onFocus',\n        'className',\n        'onChange',\n    ]);\n    /** Validate (commit) function called on blur or enter keypress. */\n    var validate = React.useCallback(function (ev) {\n        // Only run validation if the value changed\n        var enteredValue = internalState.latestIntermediateValue;\n        if (enteredValue !== undefined && enteredValue !== internalState.latestValue) {\n            var newValue = void 0;\n            if (onValidate) {\n                newValue = onValidate(enteredValue, ev);\n            }\n            else if (enteredValue && enteredValue.trim().length && !isNaN(Number(enteredValue))) {\n                // default validation handling\n                newValue = String(clampValue(Number(enteredValue), { min: min, max: max }));\n            }\n            if (newValue !== undefined && newValue !== internalState.latestValue) {\n                // Commit the value if it changed\n                setValue(newValue, ev);\n            }\n        }\n        // Done validating, so clear the intermediate typed value (if any)\n        setIntermediateValue(undefined);\n    }, [internalState, max, min, onValidate, setValue]);\n    /**\n     * Stop spinning (clear any currently pending update and set spinning to false)\n     */\n    var stop = React.useCallback(function () {\n        if (internalState.stepTimeoutHandle >= 0) {\n            async.clearTimeout(internalState.stepTimeoutHandle);\n            internalState.stepTimeoutHandle = -1;\n        }\n        if (internalState.spinningByMouse || keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {\n            internalState.spinningByMouse = false;\n            setKeyboardSpinDirection(KeyboardSpinDirection.notSpinning);\n        }\n    }, [internalState, keyboardSpinDirection, async]);\n    /**\n     * Update the value with the given stepFunction.\n     * Also starts spinning for mousedown events by scheduling another update with setTimeout.\n     * @param stepFunction - function to use to step by\n     * @param event - The event that triggered the updateValue\n     */\n    var updateValue = React.useCallback(function (stepFunction, ev) {\n        ev.persist();\n        if (internalState.latestIntermediateValue !== undefined) {\n            // Edge case: if intermediateValue is set, this means that the user was editing the input\n            // text and then started spinning (either with mouse or keyboard). We need to validate and\n            // call onChange before starting to spin.\n            if (ev.type === 'keydown' || ev.type === 'mousedown') {\n                // For the arrow keys, we have to manually trigger validation.\n                // (For the buttons, validation will happen automatically since the input's onBlur will\n                // be triggered after mousedown on the button completes.)\n                validate(ev);\n            }\n            async.requestAnimationFrame(function () {\n                // After handling any value updates, do the spinning update\n                updateValue(stepFunction, ev);\n            });\n            return;\n        }\n        // Call the step function and update the value.\n        // (Note: we access the latest value via internalState (not directly) to ensure we don't use\n        // a stale captured value. This is mainly important for spinning by mouse, where we trigger\n        // additional calls to the original updateValue function via setTimeout. It also lets us\n        // avoid useCallback deps on frequently changing values.)\n        var newValue = stepFunction(internalState.latestValue || '', ev);\n        if (newValue !== undefined && newValue !== internalState.latestValue) {\n            setValue(newValue, ev);\n        }\n        // Schedule the next spin if applicable\n        // (will be canceled if there's a mouseup before the timeout runs)\n        var wasSpinning = internalState.spinningByMouse;\n        internalState.spinningByMouse = ev.type === 'mousedown';\n        if (internalState.spinningByMouse) {\n            internalState.stepTimeoutHandle = async.setTimeout(function () {\n                updateValue(stepFunction, ev);\n            }, wasSpinning ? STEP_DELAY : INITIAL_STEP_DELAY);\n        }\n    }, [internalState, async, validate, setValue]);\n    /** Composed increment handler (uses `props.onIncrement` or default) */\n    var handleIncrement = React.useCallback(function (newValue) {\n        if (onIncrement) {\n            return onIncrement(newValue);\n        }\n        else {\n            var numericValue = clampValue(Number(newValue) + Number(step), { max: max });\n            numericValue = precisionRound(numericValue, precision);\n            return String(numericValue);\n        }\n    }, [precision, max, onIncrement, step]);\n    /** Composed decrement handler (uses `props.onDecrement` or default) */\n    var handleDecrement = React.useCallback(function (newValue) {\n        if (onDecrement) {\n            return onDecrement(newValue);\n        }\n        else {\n            var numericValue = clampValue(Number(newValue) - Number(step), { min: min });\n            numericValue = precisionRound(numericValue, precision);\n            return String(numericValue);\n        }\n    }, [precision, min, onDecrement, step]);\n    /** Handles when the user types in the input */\n    var handleInputChange = function (ev) {\n        setIntermediateValue(ev.target.value);\n    };\n    /** Composed focus handler (does internal stuff and calls `props.onFocus`) */\n    var handleFocus = function (ev) {\n        var _a;\n        // We can't set focus on a non-existing element\n        if (!input.current) {\n            return;\n        }\n        if (internalState.spinningByMouse || keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {\n            stop();\n        }\n        input.current.select();\n        setIsFocused(true);\n        (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n    };\n    /** Composed blur handler (does internal stuff and calls `props.onBlur`) */\n    var handleBlur = function (ev) {\n        var _a;\n        validate(ev);\n        setIsFocused(false);\n        (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n    };\n    /** Update value when arrow keys are pressed, commit on enter, or revert on escape */\n    var handleKeyDown = function (ev) {\n        // eat the up and down arrow keys to keep focus in the spinButton\n        // (especially when a spinButton is inside of a FocusZone)\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which === KeyCodes.up || ev.which === KeyCodes.down || ev.which === KeyCodes.enter) {\n            ev.preventDefault();\n            ev.stopPropagation();\n        }\n        if (disabled) {\n            stop();\n            return;\n        }\n        var spinDirection = KeyboardSpinDirection.notSpinning;\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.up:\n                spinDirection = KeyboardSpinDirection.up;\n                updateValue(handleIncrement, ev);\n                break;\n            case KeyCodes.down:\n                spinDirection = KeyboardSpinDirection.down;\n                updateValue(handleDecrement, ev);\n                break;\n            case KeyCodes.enter:\n                // Commit the edited value\n                validate(ev);\n                break;\n            case KeyCodes.escape:\n                // Revert to previous value\n                setIntermediateValue(undefined);\n                break;\n        }\n        // style the increment/decrement button to look active\n        // when the corresponding up/down arrow keys trigger a step\n        if (keyboardSpinDirection !== spinDirection) {\n            setKeyboardSpinDirection(spinDirection);\n        }\n    };\n    /** Stop spinning on keyUp if the up or down arrow key fired this event */\n    var handleKeyUp = React.useCallback(function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        if (disabled || ev.which === KeyCodes.up || ev.which === KeyCodes.down) {\n            stop();\n            return;\n        }\n    }, [disabled, stop]);\n    var handleIncrementMouseDown = React.useCallback(function (ev) {\n        updateValue(handleIncrement, ev);\n    }, [handleIncrement, updateValue]);\n    var handleDecrementMouseDown = React.useCallback(function (ev) {\n        updateValue(handleDecrement, ev);\n    }, [handleDecrement, updateValue]);\n    useComponentRef(props, input, value);\n    useDebugWarnings(props);\n    var valueIsNumber = !!value && !isNaN(Number(value)); // Number('') is 0 which may not be desirable\n    var labelContent = (iconProps || label) && (React.createElement(\"div\", { className: classNames.labelWrapper },\n        iconProps && React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon, \"aria-hidden\": \"true\" })),\n        label && (React.createElement(Label, { id: labelId, htmlFor: inputId, className: classNames.label, disabled: disabled }, label))));\n    return (React.createElement(\"div\", { className: classNames.root, ref: ref },\n        labelPosition !== Position.bottom && labelContent,\n        React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.spinButtonWrapper, \"aria-label\": ariaLabel && ariaLabel, \"aria-posinset\": ariaPositionInSet, \"aria-setsize\": ariaSetSize, \"data-ktp-target\": true }),\n            React.createElement(\"input\", __assign({ \n                // Display intermediateValue while editing the text (before commit)\n                value: intermediateValue !== null && intermediateValue !== void 0 ? intermediateValue : value, id: inputId, onChange: noOp, onInput: handleInputChange, className: classNames.input, type: \"text\", autoComplete: \"off\", role: \"spinbutton\", \"aria-labelledby\": label && labelId, \"aria-valuenow\": ariaValueNow !== null && ariaValueNow !== void 0 ? ariaValueNow : (valueIsNumber ? Number(value) : undefined), \"aria-valuetext\": ariaValueText !== null && ariaValueText !== void 0 ? ariaValueText : (valueIsNumber ? undefined : value), \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-describedby\": ariaDescribedBy, onBlur: handleBlur, ref: input, onFocus: handleFocus, onKeyDown: handleKeyDown, onKeyUp: handleKeyUp, disabled: disabled, \"aria-disabled\": disabled, \"data-lpignore\": true, \"data-ktp-execute-target\": true }, inputProps)),\n            React.createElement(\"span\", { className: classNames.arrowButtonsContainer },\n                React.createElement(IconButton, __assign({ styles: getArrowButtonStyles(theme, true, customUpArrowButtonStyles), className: 'ms-UpButton', checked: keyboardSpinDirection === KeyboardSpinDirection.up, disabled: disabled, iconProps: incrementButtonIcon, onMouseDown: handleIncrementMouseDown, onMouseLeave: stop, onMouseUp: stop, tabIndex: -1, ariaLabel: incrementButtonAriaLabel, \"data-is-focusable\": false }, iconButtonProps)),\n                React.createElement(IconButton, __assign({ styles: getArrowButtonStyles(theme, false, customDownArrowButtonStyles), className: 'ms-DownButton', checked: keyboardSpinDirection === KeyboardSpinDirection.down, disabled: disabled, iconProps: decrementButtonIcon, onMouseDown: handleDecrementMouseDown, onMouseLeave: stop, onMouseUp: stop, tabIndex: -1, ariaLabel: decrementButtonAriaLabel, \"data-is-focusable\": false }, iconButtonProps)))),\n        labelPosition === Position.bottom && labelContent));\n});\nSpinButtonBase.displayName = COMPONENT_NAME;\nvar useDebugWarnings = function (props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            mutuallyExclusive: { value: 'defaultValue' },\n        });\n    }\n};\n//# sourceMappingURL=SpinButton.base.js.map","import { styled } from '../../Utilities';\nimport { SpinButtonBase } from './SpinButton.base';\nimport { getStyles } from './SpinButton.styles';\n/**\n * The SpinButton control and related tabs pattern are used for navigating frequently accessed,\n * distinct content categories. SpinButtons allow for navigation between two or more content\n * views and relies on text headers to articulate the different sections of content.\n */\nexport var SpinButton = styled(SpinButtonBase, getStyles, undefined, {\n    scope: 'SpinButton',\n});\n//# sourceMappingURL=SpinButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { SpinnerType, SpinnerSize } from './Spinner.types';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar SpinnerBase = /** @class */ (function (_super) {\n    __extends(SpinnerBase, _super);\n    function SpinnerBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SpinnerBase.prototype.render = function () {\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, styles = _a.styles, label = _a.label, theme = _a.theme, className = _a.className, labelPosition = _a.labelPosition;\n        var statusMessage = ariaLabel;\n        var nativeProps = getNativeProps(this.props, divProperties, ['size']);\n        // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the\n        // ISpinnerStyleProps, we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType\n        // finally goes away we should delete this.\n        var styleSize = size;\n        if (styleSize === undefined && type !== undefined) {\n            // eslint-disable-next-line deprecation/deprecation\n            styleSize = type === SpinnerType.large ? SpinnerSize.large : SpinnerSize.medium;\n        }\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            size: styleSize,\n            className: className,\n            labelPosition: labelPosition,\n        });\n        return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root }),\n            React.createElement(\"div\", { className: classNames.circle }),\n            label && React.createElement(\"div\", { className: classNames.label }, label),\n            statusMessage && (React.createElement(\"div\", { role: \"status\", \"aria-live\": ariaLive },\n                React.createElement(DelayedRender, null,\n                    React.createElement(\"div\", { className: classNames.screenReaderText }, statusMessage))))));\n    };\n    SpinnerBase.defaultProps = {\n        size: SpinnerSize.medium,\n        ariaLive: 'polite',\n        labelPosition: 'bottom',\n    };\n    return SpinnerBase;\n}(React.Component));\nexport { SpinnerBase };\n//# sourceMappingURL=Spinner.base.js.map","import { __assign } from \"tslib\";\nimport { SpinnerSize } from './Spinner.types';\nimport { hiddenContentStyle, keyframes, HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-Spinner',\n    circle: 'ms-Spinner-circle',\n    label: 'ms-Spinner-label',\n};\nvar spinAnimation = memoizeFunction(function () {\n    return keyframes({\n        '0%': {\n            transform: 'rotate(0deg)',\n        },\n        '100%': {\n            transform: 'rotate(360deg)',\n        },\n    });\n});\nexport var getStyles = function (props) {\n    var _a;\n    var theme = props.theme, size = props.size, className = props.className, labelPosition = props.labelPosition;\n    var palette = theme.palette;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            {\n                display: 'flex',\n                flexDirection: 'column',\n                alignItems: 'center',\n                justifyContent: 'center',\n            },\n            labelPosition === 'top' && {\n                flexDirection: 'column-reverse',\n            },\n            labelPosition === 'right' && {\n                flexDirection: 'row',\n            },\n            labelPosition === 'left' && {\n                flexDirection: 'row-reverse',\n            },\n            className,\n        ],\n        circle: [\n            classNames.circle,\n            {\n                boxSizing: 'border-box',\n                borderRadius: '50%',\n                border: '1.5px solid ' + palette.themeLight,\n                borderTopColor: palette.themePrimary,\n                animationName: spinAnimation(),\n                animationDuration: '1.3s',\n                animationIterationCount: 'infinite',\n                animationTimingFunction: 'cubic-bezier(.53,.21,.29,.67)',\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign({ borderTopColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                    _a),\n            },\n            size === SpinnerSize.xSmall && [\n                'ms-Spinner--xSmall',\n                {\n                    width: 12,\n                    height: 12,\n                },\n            ],\n            size === SpinnerSize.small && [\n                'ms-Spinner--small',\n                {\n                    width: 16,\n                    height: 16,\n                },\n            ],\n            size === SpinnerSize.medium && [\n                'ms-Spinner--medium',\n                {\n                    width: 20,\n                    height: 20,\n                },\n            ],\n            size === SpinnerSize.large && [\n                'ms-Spinner--large',\n                {\n                    width: 28,\n                    height: 28,\n                },\n            ],\n        ],\n        label: [\n            classNames.label,\n            theme.fonts.small,\n            {\n                color: palette.themePrimary,\n                margin: '8px 0 0',\n                textAlign: 'center',\n            },\n            labelPosition === 'top' && {\n                margin: '0 0 8px',\n            },\n            labelPosition === 'right' && {\n                margin: '0 0 0 8px',\n            },\n            labelPosition === 'left' && {\n                margin: '0 8px 0 0',\n            },\n        ],\n        screenReaderText: hiddenContentStyle,\n    };\n};\n//# sourceMappingURL=Spinner.styles.js.map","import { styled } from '../../Utilities';\nimport { SpinnerBase } from './Spinner.base';\nimport { getStyles } from './Spinner.styles';\nexport var Spinner = styled(SpinnerBase, getStyles, undefined, { scope: 'Spinner' });\n//# sourceMappingURL=Spinner.js.map","/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport var SpinnerSize;\n(function (SpinnerSize) {\n    /**\n     * 12px Spinner diameter\n     */\n    SpinnerSize[SpinnerSize[\"xSmall\"] = 0] = \"xSmall\";\n    /**\n     * 16px Spinner diameter\n     */\n    SpinnerSize[SpinnerSize[\"small\"] = 1] = \"small\";\n    /**\n     * 20px Spinner diameter\n     */\n    SpinnerSize[SpinnerSize[\"medium\"] = 2] = \"medium\";\n    /**\n     * 28px Spinner diameter\n     */\n    SpinnerSize[SpinnerSize[\"large\"] = 3] = \"large\";\n})(SpinnerSize || (SpinnerSize = {}));\n/**\n * @deprecated Use `SpinnerSize` instead. Will be removed at \\>= 2.0.0.\n * {@docCategory Spinner}\n */\nexport var SpinnerType;\n(function (SpinnerType) {\n    /**\n     * @deprecated Use `SpinnerSize.medium` instead. Will be removed at \\>= 2.0.0.\n     */\n    SpinnerType[SpinnerType[\"normal\"] = 0] = \"normal\";\n    /**\n     * @deprecated Use `SpinnerSize.large` instead. Will be removed at \\>= 2.0.0.\n     */\n    SpinnerType[SpinnerType[\"large\"] = 1] = \"large\";\n})(SpinnerType || (SpinnerType = {}));\n//# sourceMappingURL=Spinner.types.js.map","// Helper function that converts a themed spacing key (if given) to the corresponding themed spacing value.\nvar _getThemedSpacing = function (space, theme) {\n    if (theme.spacing.hasOwnProperty(space)) {\n        return theme.spacing[space];\n    }\n    return space;\n};\n// Helper function that takes a gap as a string and converts it into a { value, unit } representation.\nvar _getValueUnitGap = function (gap) {\n    var numericalPart = parseFloat(gap);\n    var numericalValue = isNaN(numericalPart) ? 0 : numericalPart;\n    var numericalString = isNaN(numericalPart) ? '' : numericalPart.toString();\n    var unitPart = gap.substring(numericalString.toString().length);\n    return {\n        value: numericalValue,\n        unit: unitPart || 'px',\n    };\n};\n/**\n * Takes in a gap size in either a CSS-style format (e.g. 10 or \"10px\")\n *  or a key of a themed spacing value (e.g. \"s1\").\n * Returns the separate numerical value of the padding (e.g. 10)\n *  and the CSS unit (e.g. \"px\").\n */\nexport var parseGap = function (gap, theme) {\n    if (gap === undefined || gap === '') {\n        return {\n            rowGap: {\n                value: 0,\n                unit: 'px',\n            },\n            columnGap: {\n                value: 0,\n                unit: 'px',\n            },\n        };\n    }\n    if (typeof gap === 'number') {\n        return {\n            rowGap: {\n                value: gap,\n                unit: 'px',\n            },\n            columnGap: {\n                value: gap,\n                unit: 'px',\n            },\n        };\n    }\n    var splitGap = gap.split(' ');\n    // If the array has more than two values, then return 0px.\n    if (splitGap.length > 2) {\n        return {\n            rowGap: {\n                value: 0,\n                unit: 'px',\n            },\n            columnGap: {\n                value: 0,\n                unit: 'px',\n            },\n        };\n    }\n    // If the array has two values, then parse each one.\n    if (splitGap.length === 2) {\n        return {\n            rowGap: _getValueUnitGap(_getThemedSpacing(splitGap[0], theme)),\n            columnGap: _getValueUnitGap(_getThemedSpacing(splitGap[1], theme)),\n        };\n    }\n    // Else, parse the numerical value and pass it as both the vertical and horizontal gap.\n    var calculatedGap = _getValueUnitGap(_getThemedSpacing(gap, theme));\n    return {\n        rowGap: calculatedGap,\n        columnGap: calculatedGap,\n    };\n};\n/**\n * Takes in a padding in a CSS-style format (e.g. 10, \"10px\", \"10px 10px\", etc.)\n *  where the separate padding values can also be the key of a themed spacing value\n *  (e.g. \"s1 m\", \"10px l1 20px l2\", etc.).\n * Returns a CSS-style padding.\n */\nexport var parsePadding = function (padding, theme) {\n    if (padding === undefined || typeof padding === 'number' || padding === '') {\n        return padding;\n    }\n    var paddingValues = padding.split(' ');\n    if (paddingValues.length < 2) {\n        return _getThemedSpacing(padding, theme);\n    }\n    return paddingValues.reduce(function (padding1, padding2) {\n        return _getThemedSpacing(padding1, theme) + ' ' + _getThemedSpacing(padding2, theme);\n    });\n};\n//# sourceMappingURL=StackUtils.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames } from '../../Styling';\nimport { GlobalClassNames as StackItemGlobalClassNames } from './StackItem/StackItem.styles';\nimport { parseGap, parsePadding } from './StackUtils';\nvar nameMap = {\n    start: 'flex-start',\n    end: 'flex-end',\n};\nexport var GlobalClassNames = {\n    root: 'ms-Stack',\n    inner: 'ms-Stack-inner',\n    child: 'ms-Stack-child',\n};\nexport var styles = function (props, theme, tokens) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n    var className = props.className, disableShrink = props.disableShrink, enableScopedSelectors = props.enableScopedSelectors, grow = props.grow, horizontal = props.horizontal, horizontalAlign = props.horizontalAlign, reversed = props.reversed, verticalAlign = props.verticalAlign, verticalFill = props.verticalFill, wrap = props.wrap;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    /* eslint-disable deprecation/deprecation */\n    var childrenGap = tokens && tokens.childrenGap ? tokens.childrenGap : props.gap;\n    var maxHeight = tokens && tokens.maxHeight ? tokens.maxHeight : props.maxHeight;\n    var maxWidth = tokens && tokens.maxWidth ? tokens.maxWidth : props.maxWidth;\n    var padding = tokens && tokens.padding ? tokens.padding : props.padding;\n    /* eslint-enable deprecation/deprecation */\n    var _p = parseGap(childrenGap, theme), rowGap = _p.rowGap, columnGap = _p.columnGap;\n    var horizontalMargin = \"\".concat(-0.5 * columnGap.value).concat(columnGap.unit);\n    var verticalMargin = \"\".concat(-0.5 * rowGap.value).concat(rowGap.unit);\n    // styles to be applied to all direct children regardless of wrap or direction\n    var childStyles = {\n        textOverflow: 'ellipsis',\n    };\n    var childSelector = '> ' + (enableScopedSelectors ? '.' + GlobalClassNames.child : '*');\n    var disableShrinkStyles = (_a = {},\n        // flexShrink styles are applied by the StackItem\n        _a[\"\".concat(childSelector, \":not(.\").concat(StackItemGlobalClassNames.root, \")\")] = {\n            flexShrink: 0,\n        },\n        _a);\n    if (wrap) {\n        return {\n            root: [\n                classNames.root,\n                {\n                    flexWrap: 'wrap',\n                    maxWidth: maxWidth,\n                    maxHeight: maxHeight,\n                    width: 'auto',\n                    overflow: 'visible',\n                    height: '100%',\n                },\n                horizontalAlign && (_b = {},\n                    _b[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n                    _b),\n                verticalAlign && (_c = {},\n                    _c[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n                    _c),\n                className,\n                {\n                    // not allowed to be overridden by className\n                    // since this is necessary in order to prevent collapsing margins\n                    display: 'flex',\n                },\n                horizontal && {\n                    height: verticalFill ? '100%' : 'auto',\n                },\n            ],\n            inner: [\n                classNames.inner,\n                (_d = {\n                        display: 'flex',\n                        flexWrap: 'wrap',\n                        marginLeft: horizontalMargin,\n                        marginRight: horizontalMargin,\n                        marginTop: verticalMargin,\n                        marginBottom: verticalMargin,\n                        overflow: 'visible',\n                        boxSizing: 'border-box',\n                        padding: parsePadding(padding, theme),\n                        // avoid unnecessary calc() calls if horizontal gap is 0\n                        width: columnGap.value === 0 ? '100%' : \"calc(100% + \".concat(columnGap.value).concat(columnGap.unit, \")\"),\n                        maxWidth: '100vw'\n                    },\n                    _d[childSelector] = __assign({ margin: \"\".concat(0.5 * rowGap.value).concat(rowGap.unit, \" \").concat(0.5 * columnGap.value).concat(columnGap.unit) }, childStyles),\n                    _d),\n                disableShrink && disableShrinkStyles,\n                horizontalAlign && (_e = {},\n                    _e[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n                    _e),\n                verticalAlign && (_f = {},\n                    _f[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n                    _f),\n                horizontal && (_g = {\n                        flexDirection: reversed ? 'row-reverse' : 'row',\n                        // avoid unnecessary calc() calls if vertical gap is 0\n                        height: rowGap.value === 0 ? '100%' : \"calc(100% + \".concat(rowGap.value).concat(rowGap.unit, \")\")\n                    },\n                    _g[childSelector] = {\n                        maxWidth: columnGap.value === 0 ? '100%' : \"calc(100% - \".concat(columnGap.value).concat(columnGap.unit, \")\"),\n                    },\n                    _g),\n                !horizontal && (_h = {\n                        flexDirection: reversed ? 'column-reverse' : 'column',\n                        height: \"calc(100% + \".concat(rowGap.value).concat(rowGap.unit, \")\")\n                    },\n                    _h[childSelector] = {\n                        maxHeight: rowGap.value === 0 ? '100%' : \"calc(100% - \".concat(rowGap.value).concat(rowGap.unit, \")\"),\n                    },\n                    _h),\n            ],\n        };\n    }\n    return {\n        root: [\n            classNames.root,\n            (_j = {\n                    display: 'flex',\n                    flexDirection: horizontal ? (reversed ? 'row-reverse' : 'row') : reversed ? 'column-reverse' : 'column',\n                    flexWrap: 'nowrap',\n                    width: 'auto',\n                    height: verticalFill ? '100%' : 'auto',\n                    maxWidth: maxWidth,\n                    maxHeight: maxHeight,\n                    padding: parsePadding(padding, theme),\n                    boxSizing: 'border-box'\n                },\n                _j[childSelector] = childStyles,\n                _j),\n            disableShrink && disableShrinkStyles,\n            grow && {\n                flexGrow: grow === true ? 1 : grow,\n            },\n            horizontalAlign && (_k = {},\n                _k[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n                _k),\n            verticalAlign && (_l = {},\n                _l[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n                _l),\n            horizontal &&\n                columnGap.value > 0 && (_m = {},\n                // apply gap margin to every direct child except the first direct child if the direction is not reversed,\n                // and the last direct one if it is\n                _m[reversed ? \"\".concat(childSelector, \":not(:last-child)\") : \"\".concat(childSelector, \":not(:first-child)\")] = {\n                    marginLeft: \"\".concat(columnGap.value).concat(columnGap.unit),\n                },\n                _m),\n            !horizontal &&\n                rowGap.value > 0 && (_o = {},\n                // apply gap margin to every direct child except the first direct child if the direction is not reversed,\n                // and the last direct one if it is\n                _o[reversed ? \"\".concat(childSelector, \":not(:last-child)\") : \"\".concat(childSelector, \":not(:first-child)\")] = {\n                    marginTop: \"\".concat(rowGap.value).concat(rowGap.unit),\n                },\n                _o),\n            className,\n        ],\n        // TODO: this cast may be hiding some potential issues with styling and name\n        //        lookups and should be removed\n    };\n};\n//# sourceMappingURL=Stack.styles.js.map","import { __assign, __rest } from \"tslib\";\n/** @jsxRuntime classic */\n/** @jsx withSlots */\nimport * as React from 'react';\nimport { withSlots, createComponent, getSlots } from '@fluentui/foundation-legacy';\nimport { css, getNativeProps, htmlElementProperties, warnDeprecations } from '../../Utilities';\nimport { styles, GlobalClassNames as StackGlobalClassNames } from './Stack.styles';\nimport { StackItem } from './StackItem/StackItem';\nvar StackView = function (props) {\n    var _a = props.as, RootType = _a === void 0 ? 'div' : _a, _b = props.disableShrink, disableShrink = _b === void 0 ? false : _b, \n    // eslint-disable-next-line deprecation/deprecation\n    _c = props.doNotRenderFalsyValues, \n    // eslint-disable-next-line deprecation/deprecation\n    doNotRenderFalsyValues = _c === void 0 ? false : _c, _d = props.enableScopedSelectors, enableScopedSelectors = _d === void 0 ? false : _d, wrap = props.wrap, rest = __rest(props, [\"as\", \"disableShrink\", \"doNotRenderFalsyValues\", \"enableScopedSelectors\", \"wrap\"]);\n    warnDeprecations('Stack', props, {\n        gap: 'tokens.childrenGap',\n        maxHeight: 'tokens.maxHeight',\n        maxWidth: 'tokens.maxWidth',\n        padding: 'tokens.padding',\n    });\n    var stackChildren = _processStackChildren(props.children, {\n        disableShrink: disableShrink,\n        enableScopedSelectors: enableScopedSelectors,\n        doNotRenderFalsyValues: doNotRenderFalsyValues,\n    });\n    var nativeProps = getNativeProps(rest, htmlElementProperties);\n    var Slots = getSlots(props, {\n        root: RootType,\n        inner: 'div',\n    });\n    if (wrap) {\n        return (withSlots(Slots.root, __assign({}, nativeProps),\n            withSlots(Slots.inner, null, stackChildren)));\n    }\n    return withSlots(Slots.root, __assign({}, nativeProps), stackChildren);\n};\nfunction _processStackChildren(children, _a) {\n    var disableShrink = _a.disableShrink, enableScopedSelectors = _a.enableScopedSelectors, doNotRenderFalsyValues = _a.doNotRenderFalsyValues;\n    var childrenArray = React.Children.toArray(children);\n    childrenArray = React.Children.map(childrenArray, function (child) {\n        if (!child) {\n            return doNotRenderFalsyValues ? null : child;\n        }\n        // We need to allow children that aren't falsy values, but not valid elements since they could be\n        // a string like <Stack>{'sample string'}</Stack>\n        if (!React.isValidElement(child)) {\n            return child;\n        }\n        if (child.type === React.Fragment) {\n            return child.props.children\n                ? _processStackChildren(child.props.children, { disableShrink: disableShrink, enableScopedSelectors: enableScopedSelectors, doNotRenderFalsyValues: doNotRenderFalsyValues })\n                : null;\n        }\n        var childAsReactElement = child;\n        var defaultItemProps = {};\n        if (_isStackItem(child)) {\n            defaultItemProps = { shrink: !disableShrink };\n        }\n        var childClassName = childAsReactElement.props.className;\n        return React.cloneElement(childAsReactElement, __assign(__assign(__assign(__assign({}, defaultItemProps), childAsReactElement.props), (childClassName && { className: childClassName })), (enableScopedSelectors && { className: css(StackGlobalClassNames.child, childClassName) })));\n    });\n    return childrenArray;\n}\nfunction _isStackItem(item) {\n    // In theory, we should be able to just check item.type === StackItem.\n    // However, under certain unclear circumstances (see https://github.com/microsoft/fluentui/issues/10785),\n    // the object identity is different despite the function implementation being the same.\n    return (!!item &&\n        typeof item === 'object' &&\n        !!item.type &&\n        // StackItem is generated by createComponent, so we need to check its displayName instead of name\n        item.type.displayName === StackItem.displayName);\n}\nvar StackStatics = {\n    Item: StackItem,\n};\nexport var Stack = createComponent(StackView, {\n    displayName: 'Stack',\n    styles: styles,\n    statics: StackStatics,\n});\nexport default Stack;\n//# sourceMappingURL=Stack.js.map","import { __assign } from \"tslib\";\nimport { withSlots, createComponent, getSlots } from '@fluentui/foundation-legacy';\nimport { getNativeProps, htmlElementProperties } from '../../../Utilities';\nimport { StackItemStyles as styles } from './StackItem.styles';\nvar StackItemView = function (props) {\n    var children = props.children;\n    var nativeProps = getNativeProps(props, htmlElementProperties);\n    // eslint-disable-next-line eqeqeq\n    if (children == null) {\n        return null;\n    }\n    var Slots = getSlots(props, {\n        root: 'div',\n    });\n    return withSlots(Slots.root, __assign({}, nativeProps), children);\n};\nexport var StackItem = createComponent(StackItemView, {\n    displayName: 'StackItem',\n    styles: styles,\n});\nexport default StackItem;\n//# sourceMappingURL=StackItem.js.map","import { getGlobalClassNames } from '../../../Styling';\nexport var GlobalClassNames = {\n    root: 'ms-StackItem',\n};\nvar alignMap = {\n    start: 'flex-start',\n    end: 'flex-end',\n};\nexport var StackItemStyles = function (props, theme, tokens) {\n    var grow = props.grow, shrink = props.shrink, disableShrink = props.disableShrink, align = props.align, verticalFill = props.verticalFill, order = props.order, className = props.className, _a = props.basis, basis = _a === void 0 ? 'auto' : _a;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            theme.fonts.medium,\n            classNames.root,\n            {\n                flexBasis: basis,\n                margin: tokens.margin,\n                padding: tokens.padding,\n                height: verticalFill ? '100%' : 'auto',\n                width: 'auto',\n            },\n            grow && {\n                flexGrow: grow === true ? 1 : grow,\n            },\n            (disableShrink || (!grow && !shrink)) && {\n                flexShrink: 0,\n            },\n            shrink &&\n                !disableShrink && {\n                flexShrink: 1,\n            },\n            align && {\n                alignSelf: alignMap[align] || align,\n            },\n            order && {\n                order: order,\n            },\n            className,\n        ],\n        // TODO: this cast may be hiding some potential issues with styling and name\n        //        lookups and should be removed\n    };\n};\n//# sourceMappingURL=StackItem.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef } from '../../Utilities';\nimport { hiddenContentStyle } from '../../Styling';\nimport { ScrollablePaneContext } from '../ScrollablePane/ScrollablePane.types';\nimport { StickyPositionType } from './Sticky.types';\nvar Sticky = /** @class */ (function (_super) {\n    __extends(Sticky, _super);\n    function Sticky(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._stickyContentTop = React.createRef();\n        _this._stickyContentBottom = React.createRef();\n        _this._nonStickyContent = React.createRef();\n        _this._placeHolder = React.createRef();\n        _this.syncScroll = function (container) {\n            var nonStickyContent = _this.nonStickyContent;\n            if (nonStickyContent && _this.props.isScrollSynced) {\n                nonStickyContent.scrollLeft = container.scrollLeft;\n            }\n        };\n        _this._getContext = function () { return _this.context; };\n        _this._onScrollEvent = function (container, footerStickyContainer) {\n            if (_this.root && _this.nonStickyContent) {\n                var distanceFromTop = _this._getNonStickyDistanceFromTop(container);\n                var isStickyTop = false;\n                var isStickyBottom = false;\n                if (_this.canStickyTop) {\n                    var distanceToStickTop = distanceFromTop - _this._getStickyDistanceFromTop();\n                    isStickyTop = distanceToStickTop < container.scrollTop;\n                }\n                // Can sticky bottom if the scrollablePane - total sticky footer height is smaller than the sticky's distance\n                // from the top of the pane\n                if (_this.canStickyBottom && container.clientHeight - footerStickyContainer.offsetHeight <= distanceFromTop) {\n                    isStickyBottom =\n                        distanceFromTop - Math.floor(container.scrollTop) >=\n                            _this._getStickyDistanceFromTopForFooter(container, footerStickyContainer);\n                }\n                if (document.activeElement &&\n                    _this.nonStickyContent.contains(document.activeElement) &&\n                    (_this.state.isStickyTop !== isStickyTop || _this.state.isStickyBottom !== isStickyBottom)) {\n                    _this._activeElement = document.activeElement;\n                }\n                else {\n                    _this._activeElement = undefined;\n                }\n                _this.setState({\n                    isStickyTop: _this.canStickyTop && isStickyTop,\n                    isStickyBottom: isStickyBottom,\n                    distanceFromTop: distanceFromTop,\n                });\n            }\n        };\n        _this._getStickyDistanceFromTop = function () {\n            var distance = 0;\n            if (_this.stickyContentTop) {\n                distance = _this.stickyContentTop.offsetTop;\n            }\n            return distance;\n        };\n        _this._getStickyDistanceFromTopForFooter = function (container, footerStickyVisibleContainer) {\n            var distance = 0;\n            if (_this.stickyContentBottom) {\n                distance =\n                    container.clientHeight - footerStickyVisibleContainer.offsetHeight + _this.stickyContentBottom.offsetTop;\n            }\n            return distance;\n        };\n        _this._getNonStickyDistanceFromTop = function (container) {\n            var distance = 0;\n            var currElem = _this.root;\n            if (currElem) {\n                while (currElem && currElem.offsetParent !== container) {\n                    distance += currElem.offsetTop;\n                    currElem = currElem.offsetParent;\n                }\n                if (currElem && currElem.offsetParent === container) {\n                    distance += currElem.offsetTop;\n                }\n            }\n            return distance;\n        };\n        initializeComponentRef(_this);\n        _this.state = {\n            isStickyTop: false,\n            isStickyBottom: false,\n            distanceFromTop: undefined,\n        };\n        _this._activeElement = undefined;\n        return _this;\n    }\n    Object.defineProperty(Sticky.prototype, \"root\", {\n        get: function () {\n            return this._root.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Sticky.prototype, \"placeholder\", {\n        get: function () {\n            return this._placeHolder.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Sticky.prototype, \"stickyContentTop\", {\n        get: function () {\n            return this._stickyContentTop.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Sticky.prototype, \"stickyContentBottom\", {\n        get: function () {\n            return this._stickyContentBottom.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Sticky.prototype, \"nonStickyContent\", {\n        get: function () {\n            return this._nonStickyContent.current;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Sticky.prototype, \"canStickyTop\", {\n        get: function () {\n            return (this.props.stickyPosition === StickyPositionType.Both || this.props.stickyPosition === StickyPositionType.Header);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Sticky.prototype, \"canStickyBottom\", {\n        get: function () {\n            return (this.props.stickyPosition === StickyPositionType.Both || this.props.stickyPosition === StickyPositionType.Footer);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Sticky.prototype.componentDidMount = function () {\n        var scrollablePane = this._getContext().scrollablePane;\n        if (!scrollablePane) {\n            return;\n        }\n        scrollablePane.subscribe(this._onScrollEvent);\n        scrollablePane.addSticky(this);\n    };\n    Sticky.prototype.componentWillUnmount = function () {\n        var scrollablePane = this._getContext().scrollablePane;\n        if (!scrollablePane) {\n            return;\n        }\n        scrollablePane.unsubscribe(this._onScrollEvent);\n        scrollablePane.removeSticky(this);\n    };\n    Sticky.prototype.componentDidUpdate = function (prevProps, prevState) {\n        var scrollablePane = this._getContext().scrollablePane;\n        if (!scrollablePane) {\n            return;\n        }\n        var _a = this.state, isStickyBottom = _a.isStickyBottom, isStickyTop = _a.isStickyTop, distanceFromTop = _a.distanceFromTop;\n        var syncScroll = false;\n        if (prevState.distanceFromTop !== distanceFromTop) {\n            scrollablePane.sortSticky(this, true /*sortAgain*/);\n            syncScroll = true;\n        }\n        if (prevState.isStickyTop !== isStickyTop || prevState.isStickyBottom !== isStickyBottom) {\n            if (this._activeElement) {\n                this._activeElement.focus();\n            }\n            scrollablePane.updateStickyRefHeights();\n            syncScroll = true;\n        }\n        if (syncScroll) {\n            // Sync Sticky scroll position with content container on each update\n            scrollablePane.syncScrollSticky(this);\n        }\n    };\n    Sticky.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n        if (!this.context.scrollablePane) {\n            return true;\n        }\n        var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom, distanceFromTop = _a.distanceFromTop;\n        return (isStickyTop !== nextState.isStickyTop ||\n            isStickyBottom !== nextState.isStickyBottom ||\n            this.props.stickyPosition !== nextProps.stickyPosition ||\n            this.props.children !== nextProps.children ||\n            distanceFromTop !== nextState.distanceFromTop ||\n            _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentTop) ||\n            _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentBottom) ||\n            _isOffsetHeightDifferent(this._nonStickyContent, this._placeHolder));\n    };\n    Sticky.prototype.render = function () {\n        var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n        var _b = this.props, stickyClassName = _b.stickyClassName, children = _b.children;\n        if (!this.context.scrollablePane) {\n            return React.createElement(\"div\", null, this.props.children);\n        }\n        return (React.createElement(\"div\", { ref: this._root },\n            this.canStickyTop && (React.createElement(\"div\", { ref: this._stickyContentTop, style: { pointerEvents: isStickyTop ? 'auto' : 'none' } },\n                React.createElement(\"div\", { style: this._getStickyPlaceholderHeight(isStickyTop) }))),\n            this.canStickyBottom && (React.createElement(\"div\", { ref: this._stickyContentBottom, style: { pointerEvents: isStickyBottom ? 'auto' : 'none' } },\n                React.createElement(\"div\", { style: this._getStickyPlaceholderHeight(isStickyBottom) }))),\n            React.createElement(\"div\", { style: this._getNonStickyPlaceholderHeightAndWidth(), ref: this._placeHolder },\n                (isStickyTop || isStickyBottom) && React.createElement(\"span\", { style: hiddenContentStyle }, children),\n                React.createElement(\"div\", { ref: this._nonStickyContent, className: isStickyTop || isStickyBottom ? stickyClassName : undefined, style: this._getContentStyles(isStickyTop || isStickyBottom) }, children))));\n    };\n    Sticky.prototype.addSticky = function (stickyContent) {\n        if (this.nonStickyContent) {\n            stickyContent.appendChild(this.nonStickyContent);\n        }\n    };\n    Sticky.prototype.resetSticky = function () {\n        if (this.nonStickyContent && this.placeholder) {\n            this.placeholder.appendChild(this.nonStickyContent);\n        }\n    };\n    Sticky.prototype.setDistanceFromTop = function (container) {\n        var distanceFromTop = this._getNonStickyDistanceFromTop(container);\n        this.setState({ distanceFromTop: distanceFromTop });\n    };\n    Sticky.prototype._getContentStyles = function (isSticky) {\n        return {\n            backgroundColor: this.props.stickyBackgroundColor || this._getBackground(),\n            overflow: isSticky ? 'hidden' : '',\n        };\n    };\n    Sticky.prototype._getStickyPlaceholderHeight = function (isSticky) {\n        var height = this.nonStickyContent ? this.nonStickyContent.offsetHeight : 0;\n        return {\n            visibility: isSticky ? 'hidden' : 'visible',\n            height: isSticky ? 0 : height,\n        };\n    };\n    Sticky.prototype._getNonStickyPlaceholderHeightAndWidth = function () {\n        var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n        if (isStickyTop || isStickyBottom) {\n            var height = 0;\n            var width = 0;\n            // Why is placeholder width needed?\n            // ScrollablePane's content container is reponsible for providing scrollbars depending on content overflow.\n            // - If the overflow is caused by content of sticky component when it is in non-sticky state, the container will\n            //   provide horizontal scrollbar.\n            // - If the component becomes sticky, i.e., when state.isStickyTop || state.isStickyBottom becomes true,\n            //   its actual content is no longer inside the container, so the container will see no need for horizontal\n            //   scrollbar (assuming no other content is causing overflow). The complete content of sticky component will\n            //   not be viewable. So it is necessary to provide a placeholder of a certain width (height is already being set)\n            //   in the container, to get a horizontal scrollbar & be able to view the complete content of sticky component.\n            if (this.nonStickyContent && this.nonStickyContent.firstElementChild) {\n                height = this.nonStickyContent.offsetHeight;\n                // What value should be substituted for placeholder width?\n                // Assumptions:\n                //    1. Content inside <Sticky> should always be wrapped in a single div.\n                //        <Sticky><div id={'firstElementChild'}>{intended_content}</div><Sticky/>\n                //    2. -ve padding, margin, etc. are not be used.\n                //    3. scrollWidth of a parent is greater than or equal to max of scrollWidths of its children, and same holds\n                //       for children.\n                // placeholder width should be computed in the best possible way to prevent overscroll/underscroll.\n                width =\n                    this.nonStickyContent.firstElementChild.scrollWidth +\n                        (this.nonStickyContent.firstElementChild.offsetWidth -\n                            this.nonStickyContent.firstElementChild.clientWidth);\n            }\n            return {\n                height: height,\n                width: width,\n            };\n        }\n        else {\n            return {};\n        }\n    };\n    // Gets background of nearest parent element that has a declared background-color attribute\n    Sticky.prototype._getBackground = function () {\n        if (!this.root) {\n            return undefined;\n        }\n        var curr = this.root;\n        while (window.getComputedStyle(curr).getPropertyValue('background-color') === 'rgba(0, 0, 0, 0)' ||\n            window.getComputedStyle(curr).getPropertyValue('background-color') === 'transparent') {\n            if (curr.tagName === 'HTML') {\n                // Fallback color if no element has a declared background-color attribute\n                return undefined;\n            }\n            if (curr.parentElement) {\n                curr = curr.parentElement;\n            }\n        }\n        return window.getComputedStyle(curr).getPropertyValue('background-color');\n    };\n    Sticky.defaultProps = {\n        stickyPosition: StickyPositionType.Both,\n        isScrollSynced: true,\n    };\n    Sticky.contextType = ScrollablePaneContext;\n    return Sticky;\n}(React.Component));\nexport { Sticky };\nfunction _isOffsetHeightDifferent(a, b) {\n    return (a && b && a.current && b.current && a.current.offsetHeight !== b.current.offsetHeight);\n}\n//# sourceMappingURL=Sticky.js.map","export var StickyPositionType;\n(function (StickyPositionType) {\n    StickyPositionType[StickyPositionType[\"Both\"] = 0] = \"Both\";\n    StickyPositionType[StickyPositionType[\"Header\"] = 1] = \"Header\";\n    StickyPositionType[StickyPositionType[\"Footer\"] = 2] = \"Footer\";\n})(StickyPositionType || (StickyPositionType = {}));\n//# sourceMappingURL=Sticky.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { toMatrix, classNamesFunction, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { FocusZone } from '../../FocusZone';\nimport { useId } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nexport var ButtonGridBase = React.forwardRef(function (props, forwardedRef) {\n    var id = useId(undefined, props.id);\n    var items = props.items, columnCount = props.columnCount, onRenderItem = props.onRenderItem, isSemanticRadio = props.isSemanticRadio, \n    // eslint-disable-next-line deprecation/deprecation\n    _a = props.ariaPosInSet, \n    // eslint-disable-next-line deprecation/deprecation\n    ariaPosInSet = _a === void 0 ? props.positionInSet : _a, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.ariaSetSize, \n    // eslint-disable-next-line deprecation/deprecation\n    ariaSetSize = _b === void 0 ? props.setSize : _b, styles = props.styles, doNotContainWithinFocusZone = props.doNotContainWithinFocusZone;\n    var htmlProps = getNativeProps(props, htmlElementProperties, \n    // avoid applying onBlur on the table if it's being used in the FocusZone\n    doNotContainWithinFocusZone ? [] : ['onBlur']);\n    var classNames = getClassNames(styles, { theme: props.theme });\n    // Array to store the cells in the correct row index\n    var rowsOfItems = toMatrix(items, columnCount);\n    var content = (React.createElement(\"table\", __assign({ \"aria-posinset\": ariaPosInSet, \"aria-setsize\": ariaSetSize, id: id, role: isSemanticRadio ? 'radiogroup' : 'grid' }, htmlProps, { className: classNames.root }),\n        React.createElement(\"tbody\", { role: isSemanticRadio ? 'presentation' : 'rowgroup' }, rowsOfItems.map(function (rows, rowIndex) {\n            return (React.createElement(\"tr\", { role: isSemanticRadio ? 'presentation' : 'row', key: rowIndex }, rows.map(function (cell, cellIndex) {\n                return (React.createElement(\"td\", { role: \"presentation\", key: cellIndex + '-cell', className: classNames.tableCell }, onRenderItem(cell, cellIndex)));\n            })));\n        }))));\n    return doNotContainWithinFocusZone ? (content) : (React.createElement(FocusZone, { elementRef: forwardedRef, isCircularNavigation: props.shouldFocusCircularNavigate, className: classNames.focusedContainer, onBlur: props.onBlur }, content));\n});\n//# sourceMappingURL=ButtonGrid.base.js.map","import { styled } from '../../Utilities';\nimport { ButtonGridBase } from './ButtonGrid.base';\nimport { getStyles } from './ButtonGrid.styles';\nexport var ButtonGrid = styled(ButtonGridBase, getStyles);\nButtonGrid.displayName = 'ButtonGrid';\n//# sourceMappingURL=ButtonGrid.js.map","export var getStyles = function (props) {\n    return {\n        root: {\n            padding: 2,\n            outline: 'none',\n        },\n        tableCell: {\n            padding: 0,\n        },\n    };\n};\n//# sourceMappingURL=ButtonGrid.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { css, getNativeProps, buttonProperties } from '../../Utilities';\nimport { CommandButton } from '../../Button';\nimport { useId } from '@fluentui/react-hooks';\nexport var ButtonGridCell = function (props) {\n    var _a;\n    var defaultId = useId('gridCell');\n    var item = props.item, _b = props.id, id = _b === void 0 ? defaultId : _b, className = props.className, selected = props.selected, _c = props.disabled, disabled = _c === void 0 ? false : _c, onRenderItem = props.onRenderItem, cellDisabledStyle = props.cellDisabledStyle, cellIsSelectedStyle = props.cellIsSelectedStyle, index = props.index, label = props.label, getClassNames = props.getClassNames, onClick = props.onClick, onHover = props.onHover, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onMouseEnter = props.onMouseEnter, onFocus = props.onFocus;\n    var buttonProps = getNativeProps(props, buttonProperties);\n    var handleClick = React.useCallback(function (event) {\n        if (onClick && !disabled) {\n            onClick(item, event);\n        }\n    }, [disabled, item, onClick]);\n    var handleMouseEnter = React.useCallback(function (ev) {\n        var didUpdateOnEnter = onMouseEnter && onMouseEnter(ev);\n        if (!didUpdateOnEnter && onHover && !disabled) {\n            onHover(item, ev);\n        }\n    }, [disabled, item, onHover, onMouseEnter]);\n    var handleMouseMove = React.useCallback(function (ev) {\n        var didUpdateOnMove = onMouseMove && onMouseMove(ev);\n        if (!didUpdateOnMove && onHover && !disabled) {\n            onHover(item, ev);\n        }\n    }, [disabled, item, onHover, onMouseMove]);\n    var handleMouseLeave = React.useCallback(function (ev) {\n        var didUpdateOnLeave = onMouseLeave && onMouseLeave(ev);\n        if (!didUpdateOnLeave && onHover && !disabled) {\n            onHover(undefined, ev);\n        }\n    }, [disabled, onHover, onMouseLeave]);\n    var handleFocus = React.useCallback(function (event) {\n        if (onFocus && !disabled) {\n            onFocus(item, event);\n        }\n    }, [disabled, item, onFocus]);\n    return (React.createElement(CommandButton, __assign({ id: id, \"data-index\": index, \"data-is-focusable\": true, \"aria-selected\": selected, ariaLabel: label, title: label }, buttonProps, { className: css(className, (_a = {},\n            _a['' + cellIsSelectedStyle] = selected,\n            _a['' + cellDisabledStyle] = disabled,\n            _a)), onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, onFocus: handleFocus, getClassNames: getClassNames }), onRenderItem(item)));\n};\n//# sourceMappingURL=ButtonGridCell.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { mergeStyleSets } from '../../Styling';\nimport { classNamesFunction, memoizeFunction } from '../../Utilities';\nimport { getColorFromString } from '../../Color';\nimport { ButtonGridCell } from '../../utilities/ButtonGrid/ButtonGridCell';\nimport { getStyles as getActionButtonStyles } from '../Button/ActionButton/ActionButton.styles';\nvar getClassNames = classNamesFunction();\n/** Validate if the cell's color is white or not to apply whiteCell style */\nvar isWhiteCell = function (inputColor) {\n    var currentColor = getColorFromString(inputColor);\n    return (currentColor === null || currentColor === void 0 ? void 0 : currentColor.hex) === 'ffffff';\n};\nvar getColorPickerGridCellButtonClassNames = memoizeFunction(function (theme, className, variantClassName, iconClassName, menuIconClassName, disabled, checked, expanded, isSplit) {\n    var styles = getActionButtonStyles(theme);\n    return mergeStyleSets({\n        root: [\n            'ms-Button',\n            styles.root,\n            variantClassName,\n            className,\n            checked && ['is-checked', styles.rootChecked],\n            disabled && ['is-disabled', styles.rootDisabled],\n            !disabled &&\n                !checked && {\n                selectors: {\n                    ':hover': styles.rootHovered,\n                    ':focus': styles.rootFocused,\n                    ':active': styles.rootPressed,\n                },\n            },\n            disabled && checked && [styles.rootCheckedDisabled],\n            !disabled &&\n                checked && {\n                selectors: {\n                    ':hover': styles.rootCheckedHovered,\n                    ':active': styles.rootCheckedPressed,\n                },\n            },\n        ],\n        flexContainer: ['ms-Button-flexContainer', styles.flexContainer],\n    });\n});\nexport var ColorPickerGridCellBase = function (props) {\n    var item = props.item, \n    // eslint-disable-next-line deprecation/deprecation\n    _a = props.idPrefix, \n    // eslint-disable-next-line deprecation/deprecation\n    idPrefix = _a === void 0 ? props.id : _a, isRadio = props.isRadio, _b = props.selected, selected = _b === void 0 ? false : _b, _c = props.disabled, disabled = _c === void 0 ? false : _c, styles = props.styles, _d = props.circle, circle = _d === void 0 ? true : _d, color = props.color, onClick = props.onClick, onHover = props.onHover, onFocus = props.onFocus, onMouseEnter = props.onMouseEnter, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onWheel = props.onWheel, onKeyDown = props.onKeyDown, height = props.height, width = props.width, borderWidth = props.borderWidth;\n    var classNames = getClassNames(styles, {\n        theme: props.theme,\n        disabled: disabled,\n        selected: selected,\n        circle: circle,\n        isWhite: isWhiteCell(color),\n        height: height,\n        width: width,\n        borderWidth: borderWidth,\n    });\n    // Render the core of a color cell\n    var renderColorOption = function (colorOption) {\n        var _a;\n        var svgClassName = classNames.svg;\n        // Build an SVG for the cell with the given shape and color properties\n        // Include role=\"img\" and aria-label here for better virtual cursor accessibility,\n        // and for a VoiceOver bug where it skips grid cells that lack inner content\n        return (React.createElement(\"svg\", { className: svgClassName, role: \"img\", \"aria-label\": colorOption.label, viewBox: \"0 0 20 20\", fill: (_a = getColorFromString(colorOption.color)) === null || _a === void 0 ? void 0 : _a.str }, circle ? React.createElement(\"circle\", { cx: \"50%\", cy: \"50%\", r: \"50%\" }) : React.createElement(\"rect\", { width: \"100%\", height: \"100%\" })));\n    };\n    var onRenderItem = function (option) {\n        var _a = props.onRenderColorCellContent, onRenderColorCellContent = _a === void 0 ? renderColorOption : _a;\n        return onRenderColorCellContent(option, renderColorOption);\n    };\n    var cellSemantics = isRadio\n        ? {\n            role: 'radio',\n            'aria-checked': selected,\n            selected: undefined,\n        }\n        : {\n            role: 'gridcell',\n            selected: selected,\n        };\n    return (React.createElement(ButtonGridCell, __assign({ item: item, id: \"\".concat(idPrefix, \"-\").concat(item.id, \"-\").concat(item.index), key: item.id, disabled: disabled }, cellSemantics, { \n        // eslint-disable-next-line react/jsx-no-bind\n        onRenderItem: onRenderItem, onClick: onClick, onHover: onHover, onFocus: onFocus, label: item.label, className: classNames.colorCell, getClassNames: getColorPickerGridCellButtonClassNames, index: item.index, onMouseEnter: onMouseEnter, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onWheel: onWheel, onKeyDown: onKeyDown })));\n};\n//# sourceMappingURL=ColorPickerGridCell.base.js.map","import { IsFocusVisibleClassName } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle } from '../../Styling';\n// Size breakpoint when the default border width changes from 2px to 4px.\nvar CELL_BORDER_BREAKPOINT = 24;\nvar LARGE_BORDER = 4;\nvar SMALL_BORDER = 2;\nvar DIVIDING_PADDING = 2;\nvar DEFAULT_CELL_SIZE = 20;\nvar cellHighContrastFocus = {\n    left: -2,\n    top: -2,\n    bottom: -2,\n    right: -2,\n    border: 'none',\n    outlineColor: 'ButtonText',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e;\n    var theme = props.theme, disabled = props.disabled, selected = props.selected, circle = props.circle, isWhite = props.isWhite, _f = props.height, height = _f === void 0 ? DEFAULT_CELL_SIZE : _f, _g = props.width, width = _g === void 0 ? DEFAULT_CELL_SIZE : _g, borderWidth = props.borderWidth;\n    var semanticColors = theme.semanticColors, palette = theme.palette;\n    var buttonBorderHovered = palette.neutralLighter;\n    var buttonBorderChecked = palette.neutralLight;\n    var buttonBorderCheckedHovered = palette.neutralSecondary;\n    var buttonBorderIsWhite = palette.neutralTertiary;\n    // If user provided a value, use it. If not, then we decide depending on the 24px size breakpoint.\n    var calculatedBorderWidth = borderWidth\n        ? borderWidth\n        : width < CELL_BORDER_BREAKPOINT\n            ? SMALL_BORDER\n            : LARGE_BORDER;\n    return {\n        // this is a button that wraps the color\n        colorCell: [\n            getFocusStyle(theme, { inset: -1, position: 'relative', highContrastStyle: cellHighContrastFocus }),\n            {\n                backgroundColor: semanticColors.bodyBackground,\n                padding: 0,\n                position: 'relative',\n                boxSizing: 'border-box',\n                display: 'inline-block',\n                cursor: 'pointer',\n                userSelect: 'none',\n                borderRadius: 0,\n                border: 'none',\n                height: height,\n                width: width,\n                verticalAlign: 'top',\n            },\n            !circle && {\n                selectors: (_a = {},\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &:focus::after\")] = {\n                        // -1px so that we don't increase visually the size of the cell.\n                        outlineOffset: \"\".concat(calculatedBorderWidth - 1, \"px\"),\n                    },\n                    _a),\n            },\n            // In focus state for circle we want a round border which is not possible with outline.\n            circle && {\n                borderRadius: '50%',\n                selectors: (_b = {},\n                    _b[\".\".concat(IsFocusVisibleClassName, \" &:focus::after\")] = {\n                        outline: 'none',\n                        borderColor: semanticColors.focusBorder,\n                        borderRadius: '50%',\n                        left: -calculatedBorderWidth,\n                        right: -calculatedBorderWidth,\n                        top: -calculatedBorderWidth,\n                        bottom: -calculatedBorderWidth,\n                        selectors: (_c = {},\n                            _c[HighContrastSelector] = {\n                                outline: \"1px solid ButtonText\",\n                            },\n                            _c),\n                    },\n                    _b),\n            },\n            selected && {\n                padding: DIVIDING_PADDING,\n                border: \"\".concat(calculatedBorderWidth, \"px solid \").concat(buttonBorderChecked),\n                selectors: (_d = {},\n                    _d['&:hover::before'] = {\n                        content: '\"\"',\n                        height: height,\n                        width: width,\n                        position: 'absolute',\n                        top: -calculatedBorderWidth,\n                        left: -calculatedBorderWidth,\n                        borderRadius: circle ? '50%' : 'default',\n                        boxShadow: \"inset 0 0 0 1px \".concat(buttonBorderCheckedHovered),\n                    },\n                    _d),\n            },\n            !selected && {\n                selectors: (_e = {},\n                    _e['&:hover, &:active, &:focus'] = {\n                        backgroundColor: semanticColors.bodyBackground,\n                        padding: DIVIDING_PADDING,\n                        border: \"\".concat(calculatedBorderWidth, \"px solid \").concat(buttonBorderHovered),\n                    },\n                    _e['&:focus'] = {\n                        borderColor: semanticColors.bodyBackground,\n                        padding: 0,\n                        selectors: {\n                            ':hover': {\n                                borderColor: theme.palette.neutralLight,\n                                padding: DIVIDING_PADDING,\n                            },\n                        },\n                    },\n                    _e),\n            },\n            disabled && {\n                color: semanticColors.disabledBodyText,\n                pointerEvents: 'none',\n                opacity: 0.3,\n            },\n            isWhite &&\n                !selected && {\n                // fake a border for white\n                backgroundColor: buttonBorderIsWhite,\n                padding: 1,\n            },\n        ],\n        // the <svg> that holds the color\n        svg: [\n            {\n                width: '100%',\n                height: '100%',\n            },\n            circle && {\n                borderRadius: '50%',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ColorPickerGridCell.styles.js.map","import { styled } from '../../Utilities';\nimport { ColorPickerGridCellBase } from './ColorPickerGridCell.base';\nimport { getStyles } from './ColorPickerGridCell.styles';\nexport var ColorPickerGridCell = styled(ColorPickerGridCellBase, getStyles, undefined, { scope: 'ColorPickerGridCell' }, true);\n//# sourceMappingURL=ColorPickerGridCell.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes } from '../../Utilities';\nimport { ButtonGrid } from '../../utilities/ButtonGrid/ButtonGrid';\nimport { ColorPickerGridCell } from './ColorPickerGridCell';\nimport { useId, useConst, useSetTimeout, useControllableValue, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'SwatchColorPicker';\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            mutuallyExclusive: { focusOnHover: 'onHover', selectedId: 'defaultSelectedId' },\n            deprecations: { isControlled: \"selectedId' or 'defaultSelectedId\", onColorChanged: 'onChange' },\n        });\n    }\n}\nexport var SwatchColorPickerBase = React.forwardRef(function (props, ref) {\n    var defaultId = useId('swatchColorPicker');\n    var id = props.id || defaultId;\n    var internalState = useConst({\n        isNavigationIdle: true,\n        cellFocused: false,\n        navigationIdleTimeoutId: undefined,\n        navigationIdleDelay: 250,\n    });\n    var _a = useSetTimeout(), setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout;\n    useDebugWarnings(props);\n    var colorCells = props.colorCells, _b = props.cellShape, cellShape = _b === void 0 ? 'circle' : _b, columnCount = props.columnCount, _c = props.shouldFocusCircularNavigate, shouldFocusCircularNavigate = _c === void 0 ? true : _c, className = props.className, _d = props.disabled, disabled = _d === void 0 ? false : _d, doNotContainWithinFocusZone = props.doNotContainWithinFocusZone, styles = props.styles, _e = props.cellMargin, cellMargin = _e === void 0 ? 10 : _e, defaultSelectedId = props.defaultSelectedId, focusOnHover = props.focusOnHover, mouseLeaveParentSelector = props.mouseLeaveParentSelector, onChange = props.onChange, \n    // eslint-disable-next-line deprecation/deprecation\n    onColorChanged = props.onColorChanged, onCellHovered = props.onCellHovered, onCellFocused = props.onCellFocused, getColorGridCellStyles = props.getColorGridCellStyles, cellHeight = props.cellHeight, cellWidth = props.cellWidth, cellBorderWidth = props.cellBorderWidth, onRenderColorCellContent = props.onRenderColorCellContent;\n    /**\n     *  Add an index to each color cells. Memoizes this so that color cells do not re-render on every update.\n     */\n    var itemsWithIndex = React.useMemo(function () {\n        return colorCells.map(function (item, index) {\n            return __assign(__assign({}, item), { index: index });\n        });\n    }, [colorCells]);\n    var mergedOnChange = React.useCallback(function (ev, newSelectedId) {\n        var _a;\n        // Call both new and old change handlers, and add the extra `color` parameter\n        var newColor = (_a = colorCells.filter(function (c) { return c.id === newSelectedId; })[0]) === null || _a === void 0 ? void 0 : _a.color;\n        onChange === null || onChange === void 0 ? void 0 : onChange(ev, newSelectedId, newColor);\n        onColorChanged === null || onColorChanged === void 0 ? void 0 : onColorChanged(newSelectedId, newColor);\n    }, [onChange, onColorChanged, colorCells]);\n    var _f = useControllableValue(props.selectedId, defaultSelectedId, mergedOnChange), selectedId = _f[0], setSelectedId = _f[1];\n    var classNames = getClassNames(styles, {\n        theme: props.theme,\n        className: className,\n        cellMargin: cellMargin,\n    });\n    var gridStyles = {\n        root: classNames.root,\n        tableCell: classNames.tableCell,\n        focusedContainer: classNames.focusedContainer,\n    };\n    /**\n     * If there is only one row of cells, they should use radio semantics,\n     * multi-row swatch cells should use grid semantics.\n     * There are two reasons for this:\n     *   1. Radios are a more simple and understandable control, and a better fit for a single-dimensional picker.\n     *   2. Multiple browsers use heuristics to strip table and grid roles from single-row tables with no column headers.\n     */\n    var isSemanticRadio = colorCells.length <= columnCount;\n    /**\n     * When the whole swatchColorPicker is blurred,\n     * make sure to clear the pending focused stated\n     */\n    var onSwatchColorPickerBlur = React.useCallback(function (event) {\n        if (onCellFocused) {\n            internalState.cellFocused = false;\n            onCellFocused(undefined, undefined, event);\n        }\n    }, [internalState, onCellFocused]);\n    /**\n     * Callback passed to the GridCell that will manage triggering the onCellHovered callback for mouseEnter\n     */\n    var onMouseEnter = React.useCallback(function (ev) {\n        if (!focusOnHover) {\n            return !internalState.isNavigationIdle || !!disabled;\n        }\n        if (internalState.isNavigationIdle && !disabled) {\n            ev.currentTarget.focus();\n        }\n        return true;\n    }, [focusOnHover, internalState, disabled]);\n    /**\n     * Callback passed to the GridCell that will manage Hover/Focus updates\n     */\n    var onMouseMove = React.useCallback(function (ev) {\n        if (!focusOnHover) {\n            return !internalState.isNavigationIdle || !!disabled;\n        }\n        var targetElement = ev.currentTarget;\n        // If navigation is idle and the targetElement is the focused element bail out\n        if (internalState.isNavigationIdle && !(document && targetElement === document.activeElement)) {\n            targetElement.focus();\n        }\n        return true;\n    }, [focusOnHover, internalState, disabled]);\n    /**\n     * Callback passed to the GridCell that will manage Hover/Focus updates\n     */\n    var onMouseLeave = React.useCallback(function (ev) {\n        var parentSelector = mouseLeaveParentSelector;\n        if (!focusOnHover || !parentSelector || !internalState.isNavigationIdle || disabled) {\n            return;\n        }\n        // Get the elements that math the given selector\n        var elements = document.querySelectorAll(parentSelector);\n        // iterate over the elements return to make sure it is a parent of the target and focus it\n        for (var index = 0; index < elements.length; index += 1) {\n            if (elements[index].contains(ev.currentTarget)) {\n                /**\n                 * IE11 focus() method forces parents to scroll to top of element.\n                 * Edge and IE expose a setActive() function for focusable divs that\n                 * sets the page focus but does not scroll the parent element.\n                 */\n                if (elements[index].setActive) {\n                    try {\n                        elements[index].setActive();\n                    }\n                    catch (e) {\n                        /* no-op */\n                    }\n                }\n                else {\n                    elements[index].focus();\n                }\n                break;\n            }\n        }\n    }, [disabled, focusOnHover, internalState, mouseLeaveParentSelector]);\n    /**\n     * Callback passed to the GridCell class that will trigger the onCellHovered callback of the SwatchColorPicker\n     * NOTE: This will not be triggered if shouldFocusOnHover === true\n     */\n    var onGridCellHovered = React.useCallback(function (item, event) {\n        if (onCellHovered) {\n            item ? onCellHovered(item.id, item.color, event) : onCellHovered(undefined, undefined, event);\n        }\n    }, [onCellHovered]);\n    /**\n     * Callback passed to the GridCell class that will trigger the onCellFocus callback of the SwatchColorPicker\n     */\n    var onGridCellFocused = React.useCallback(function (item, event) {\n        if (onCellFocused) {\n            if (item) {\n                internalState.cellFocused = true;\n                return onCellFocused(item.id, item.color, event);\n            }\n            else {\n                internalState.cellFocused = false;\n                return onCellFocused(undefined, undefined, event);\n            }\n        }\n    }, [internalState, onCellFocused]);\n    /**\n     * Handle the click on a cell\n     */\n    var onCellClick = React.useCallback(function (item, event) {\n        if (disabled || item.disabled) {\n            return;\n        }\n        if (item.id !== selectedId) {\n            if (onCellFocused && internalState.cellFocused) {\n                internalState.cellFocused = false;\n                onCellFocused(undefined, undefined, event);\n            }\n            setSelectedId(item.id, event);\n        }\n    }, [disabled, internalState, onCellFocused, selectedId, setSelectedId]);\n    /**\n     * Sets a timeout so we won't process any mouse \"hover\" events\n     * while navigating (via mouseWheel or arrowKeys)\n     */\n    var setNavigationTimeout = React.useCallback(function () {\n        if (!internalState.isNavigationIdle && internalState.navigationIdleTimeoutId !== undefined) {\n            clearTimeout(internalState.navigationIdleTimeoutId);\n            internalState.navigationIdleTimeoutId = undefined;\n        }\n        else {\n            internalState.isNavigationIdle = false;\n        }\n        internalState.navigationIdleTimeoutId = setTimeout(function () {\n            internalState.isNavigationIdle = true;\n        }, internalState.navigationIdleDelay);\n    }, [clearTimeout, internalState, setTimeout]);\n    /**\n     * Callback used to handle KeyCode events\n     */\n    var onKeyDown = React.useCallback(function (ev) {\n        if (\n        // eslint-disable-next-line deprecation/deprecation\n        ev.which === KeyCodes.up ||\n            // eslint-disable-next-line deprecation/deprecation\n            ev.which === KeyCodes.down ||\n            // eslint-disable-next-line deprecation/deprecation\n            ev.which === KeyCodes.left ||\n            // eslint-disable-next-line deprecation/deprecation\n            ev.which === KeyCodes.right) {\n            setNavigationTimeout();\n        }\n    }, [setNavigationTimeout]);\n    /**\n     * Render a color cell\n     * @param item - The item to render\n     * @returns - Element representing the item\n     */\n    var renderOption = function (item) {\n        return (React.createElement(ColorPickerGridCell, { item: item, idPrefix: id, color: item.color, styles: getColorGridCellStyles, disabled: disabled || item.disabled, onClick: onCellClick, onHover: onGridCellHovered, onFocus: onGridCellFocused, selected: selectedId === item.id, circle: cellShape === 'circle', label: item.label, onMouseEnter: onMouseEnter, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onWheel: setNavigationTimeout, onKeyDown: onKeyDown, onRenderColorCellContent: onRenderColorCellContent, height: cellHeight, width: cellWidth, borderWidth: cellBorderWidth, isRadio: isSemanticRadio }));\n    };\n    if (colorCells.length < 1 || columnCount < 1) {\n        return null;\n    }\n    var onRenderItem = function (item, index) {\n        var _a = props.onRenderColorCell, onRenderColorCell = _a === void 0 ? renderOption : _a;\n        return onRenderColorCell(item, renderOption);\n    };\n    return (React.createElement(ButtonGrid, __assign({}, props, { ref: ref, id: id, items: itemsWithIndex, columnCount: columnCount, isSemanticRadio: isSemanticRadio, \n        // eslint-disable-next-line react/jsx-no-bind\n        onRenderItem: onRenderItem, shouldFocusCircularNavigate: shouldFocusCircularNavigate, doNotContainWithinFocusZone: doNotContainWithinFocusZone, onBlur: onSwatchColorPickerBlur, theme: props.theme, styles: gridStyles })));\n});\nSwatchColorPickerBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=SwatchColorPicker.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    focusedContainer: 'ms-swatchColorPickerBodyContainer',\n};\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme, cellMargin = props.cellMargin;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: {\n            margin: '8px 0',\n            borderCollapse: 'collapse',\n        },\n        tableCell: {\n            padding: cellMargin / 2,\n        },\n        focusedContainer: [\n            classNames.focusedContainer,\n            {\n                clear: 'both',\n                display: 'block',\n                minWidth: '180px',\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=SwatchColorPicker.styles.js.map","import { styled } from '../../Utilities';\nimport { SwatchColorPickerBase } from './SwatchColorPicker.base';\nimport { getStyles } from './SwatchColorPicker.styles';\nexport var SwatchColorPicker = styled(SwatchColorPickerBase, getStyles, undefined, { scope: 'SwatchColorPicker' });\n//# sourceMappingURL=SwatchColorPicker.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes } from '../../Utilities';\nimport { PrimaryButton, DefaultButton, IconButton } from '../../Button';\nimport { Stack } from '../../Stack';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { Image } from '../../Image';\nimport { useOnEvent, useMergedRefs, useId } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nvar getClassNames = classNamesFunction();\nvar useComponentRef = function (componentRef, rootElementRef) {\n    React.useImperativeHandle(componentRef, function () { return ({\n        focus: function () { var _a; return (_a = rootElementRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },\n    }); }, [rootElementRef]);\n};\nexport var TeachingBubbleContentBase = React.forwardRef(function (props, forwardedRef) {\n    var _a, _b;\n    var rootElementRef = React.useRef(null);\n    var documentRef = useDocument();\n    var mergedRootRef = useMergedRefs(rootElementRef, forwardedRef);\n    var ariaDescribedById = useId('teaching-bubble-content-');\n    var ariaLabelledById = useId('teaching-bubble-title-');\n    var ariaDescribedBy = (_a = props.ariaDescribedBy) !== null && _a !== void 0 ? _a : ariaDescribedById;\n    var ariaLabelledBy = (_b = props.ariaLabelledBy) !== null && _b !== void 0 ? _b : ariaLabelledById;\n    var illustrationImage = props.illustrationImage, primaryButtonProps = props.primaryButtonProps, secondaryButtonProps = props.secondaryButtonProps, headline = props.headline, hasCondensedHeadline = props.hasCondensedHeadline, \n    // eslint-disable-next-line deprecation/deprecation\n    _c = props.hasCloseButton, \n    // eslint-disable-next-line deprecation/deprecation\n    hasCloseButton = _c === void 0 ? props.hasCloseIcon : _c, onDismiss = props.onDismiss, closeButtonAriaLabel = props.closeButtonAriaLabel, hasSmallHeadline = props.hasSmallHeadline, isWide = props.isWide, styles = props.styles, theme = props.theme, customFooterContent = props.footerContent, focusTrapZoneProps = props.focusTrapZoneProps;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        hasCondensedHeadline: hasCondensedHeadline,\n        hasSmallHeadline: hasSmallHeadline,\n        hasCloseButton: hasCloseButton,\n        hasHeadline: !!headline,\n        isWide: isWide,\n        primaryButtonClassName: primaryButtonProps ? primaryButtonProps.className : undefined,\n        secondaryButtonClassName: secondaryButtonProps ? secondaryButtonProps.className : undefined,\n    });\n    var onKeyDown = React.useCallback(function (ev) {\n        if (onDismiss) {\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.escape) {\n                onDismiss(ev);\n            }\n        }\n    }, [onDismiss]);\n    useOnEvent(documentRef, 'keydown', onKeyDown);\n    var imageContent;\n    var headerContent;\n    var bodyContent;\n    var footerContent;\n    var closeButton;\n    if (illustrationImage && illustrationImage.src) {\n        imageContent = (React.createElement(\"div\", { className: classNames.imageContent },\n            React.createElement(Image, __assign({}, illustrationImage))));\n    }\n    if (headline) {\n        var HeaderWrapperAs = typeof headline === 'string' ? 'p' : 'div';\n        headerContent = (React.createElement(\"div\", { className: classNames.header },\n            React.createElement(HeaderWrapperAs, { role: \"heading\", \"aria-level\": 3, className: classNames.headline, id: ariaLabelledBy }, headline)));\n    }\n    if (props.children) {\n        var BodyContentWrapperAs = typeof props.children === 'string' ? 'p' : 'div';\n        bodyContent = (React.createElement(\"div\", { className: classNames.body },\n            React.createElement(BodyContentWrapperAs, { className: classNames.subText, id: ariaDescribedBy }, props.children)));\n    }\n    if (primaryButtonProps || secondaryButtonProps || customFooterContent) {\n        footerContent = (React.createElement(Stack, { className: classNames.footer, horizontal: true, horizontalAlign: customFooterContent ? 'space-between' : 'end' },\n            React.createElement(Stack.Item, { align: \"center\" }, React.createElement(\"span\", null, customFooterContent)),\n            React.createElement(Stack.Item, null,\n                primaryButtonProps && React.createElement(PrimaryButton, __assign({}, primaryButtonProps, { className: classNames.primaryButton })),\n                secondaryButtonProps && React.createElement(DefaultButton, __assign({}, secondaryButtonProps, { className: classNames.secondaryButton })))));\n    }\n    if (hasCloseButton) {\n        closeButton = (React.createElement(IconButton, { className: classNames.closeButton, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss }));\n    }\n    useComponentRef(props.componentRef, rootElementRef);\n    return (React.createElement(\"div\", { className: classNames.content, ref: mergedRootRef, role: 'dialog', tabIndex: -1, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, \"data-is-focusable\": true },\n        imageContent,\n        React.createElement(FocusTrapZone, __assign({ isClickableOutsideFocusTrap: true }, focusTrapZoneProps),\n            React.createElement(\"div\", { className: classNames.bodyContent },\n                headerContent,\n                bodyContent,\n                footerContent,\n                closeButton))));\n});\n//# sourceMappingURL=TeachingBubbleContent.base.js.map","import { __spreadArray } from \"tslib\";\nimport { AnimationVariables, FontWeights, getFocusStyle, getGlobalClassNames, keyframes } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar globalClassNames = {\n    root: 'ms-TeachingBubble',\n    body: 'ms-TeachingBubble-body',\n    bodyContent: 'ms-TeachingBubble-bodycontent',\n    closeButton: 'ms-TeachingBubble-closebutton',\n    content: 'ms-TeachingBubble-content',\n    footer: 'ms-TeachingBubble-footer',\n    header: 'ms-TeachingBubble-header',\n    headerIsCondensed: 'ms-TeachingBubble-header--condensed',\n    headerIsSmall: 'ms-TeachingBubble-header--small',\n    headerIsLarge: 'ms-TeachingBubble-header--large',\n    headline: 'ms-TeachingBubble-headline',\n    image: 'ms-TeachingBubble-image',\n    primaryButton: 'ms-TeachingBubble-primaryButton',\n    secondaryButton: 'ms-TeachingBubble-secondaryButton',\n    subText: 'ms-TeachingBubble-subText',\n    // TODO: Button global class name usage should be converted to a styles function once\n    //        Button supports JS styling, which means these button names can be removed.\n    button: 'ms-Button',\n    buttonLabel: 'ms-Button-label',\n};\nvar opacityFadeIn = memoizeFunction(function () {\n    return keyframes({\n        '0%': {\n            opacity: 0,\n            animationTimingFunction: AnimationVariables.easeFunction1,\n            transform: 'scale3d(.90,.90,.90)',\n        },\n        '100%': {\n            opacity: 1,\n            transform: 'scale3d(1,1,1)',\n        },\n    });\n});\nvar rootStyle = function (isWide, calloutProps) {\n    var _a = calloutProps || {}, calloutWidth = _a.calloutWidth, calloutMaxWidth = _a.calloutMaxWidth;\n    return [\n        {\n            display: 'block',\n            maxWidth: 364,\n            border: 0,\n            outline: 'transparent',\n            width: calloutWidth || 'calc(100% + 1px)',\n            animationName: \"\".concat(opacityFadeIn()),\n            animationDuration: '300ms',\n            animationTimingFunction: 'linear',\n            animationFillMode: 'both',\n        },\n        isWide && {\n            maxWidth: calloutMaxWidth || 456,\n        },\n    ];\n};\nvar headerStyle = function (classNames, hasCondensedHeadline, hasSmallHeadline) {\n    if (hasCondensedHeadline) {\n        return [\n            classNames.headerIsCondensed,\n            {\n                marginBottom: 14,\n            },\n        ];\n    }\n    return [\n        hasSmallHeadline && classNames.headerIsSmall,\n        !hasSmallHeadline && classNames.headerIsLarge,\n        {\n            selectors: {\n                ':not(:last-child)': {\n                    marginBottom: 14,\n                },\n            },\n        },\n    ];\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c;\n    var hasCondensedHeadline = props.hasCondensedHeadline, hasSmallHeadline = props.hasSmallHeadline, hasCloseButton = props.hasCloseButton, hasHeadline = props.hasHeadline, isWide = props.isWide, primaryButtonClassName = props.primaryButtonClassName, secondaryButtonClassName = props.secondaryButtonClassName, theme = props.theme, _d = props.calloutProps, calloutProps = _d === void 0 ? { className: undefined, theme: theme } : _d;\n    var hasLargeHeadline = !hasCondensedHeadline && !hasSmallHeadline;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(globalClassNames, theme);\n    var hideDefaultFocusRing = getFocusStyle(theme, {\n        outlineColor: 'transparent',\n        borderColor: 'transparent',\n    });\n    return {\n        root: [classNames.root, fonts.medium, calloutProps.className],\n        body: [\n            classNames.body,\n            hasCloseButton && !hasHeadline && { marginRight: 24 },\n            {\n                selectors: {\n                    ':not(:last-child)': {\n                        marginBottom: 20,\n                    },\n                },\n            },\n        ],\n        bodyContent: [\n            classNames.bodyContent,\n            {\n                padding: '20px 24px 20px 24px',\n            },\n        ],\n        closeButton: [\n            classNames.closeButton,\n            {\n                position: 'absolute',\n                right: 0,\n                top: 0,\n                margin: '15px 15px 0 0',\n                borderRadius: 0,\n                color: palette.white,\n                fontSize: fonts.small.fontSize,\n                selectors: {\n                    ':hover': {\n                        background: palette.themeDarkAlt,\n                        color: palette.white,\n                    },\n                    ':active': {\n                        background: palette.themeDark,\n                        color: palette.white,\n                    },\n                    ':focus': {\n                        border: \"1px solid \".concat(semanticColors.variantBorder),\n                    },\n                },\n            },\n        ],\n        content: __spreadArray(__spreadArray([\n            classNames.content\n        ], rootStyle(isWide), true), [\n            isWide && {\n                display: 'flex',\n            },\n        ], false),\n        footer: [\n            classNames.footer,\n            {\n                display: 'flex',\n                flex: 'auto',\n                alignItems: 'center',\n                color: palette.white,\n                selectors: (_a = {},\n                    // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n                    _a[\".\".concat(classNames.button, \":not(:first-child)\")] = {\n                        marginLeft: 10,\n                    },\n                    _a),\n            },\n        ],\n        header: __spreadArray(__spreadArray([\n            classNames.header\n        ], headerStyle(classNames, hasCondensedHeadline, hasSmallHeadline), true), [\n            hasCloseButton && { marginRight: 24 },\n            (hasCondensedHeadline || hasSmallHeadline) && [\n                fonts.medium,\n                {\n                    fontWeight: FontWeights.semibold,\n                },\n            ],\n        ], false),\n        headline: [\n            classNames.headline,\n            {\n                margin: 0,\n                color: palette.white,\n                fontWeight: FontWeights.semibold,\n                overflowWrap: 'break-word',\n            },\n            hasLargeHeadline && [\n                {\n                    fontSize: fonts.xLarge.fontSize,\n                },\n            ],\n        ],\n        imageContent: [\n            classNames.header,\n            classNames.image,\n            isWide && {\n                display: 'flex',\n                alignItems: 'center',\n                maxWidth: 154,\n            },\n        ],\n        primaryButton: [\n            classNames.primaryButton,\n            primaryButtonClassName,\n            hideDefaultFocusRing,\n            {\n                backgroundColor: palette.white,\n                borderColor: palette.white,\n                color: palette.themePrimary,\n                whiteSpace: 'nowrap',\n                selectors: (_b = {},\n                    // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n                    _b[\".\".concat(classNames.buttonLabel)] = fonts.medium,\n                    _b[':hover'] = {\n                        backgroundColor: palette.themeLighter,\n                        borderColor: palette.themeLighter,\n                        color: palette.themeDark,\n                    },\n                    _b[':focus'] = {\n                        backgroundColor: palette.themeLighter,\n                        border: \"1px solid \".concat(palette.black),\n                        color: palette.themeDark,\n                        outline: \"1px solid \".concat(palette.white),\n                        outlineOffset: '-2px',\n                    },\n                    _b[':active'] = {\n                        backgroundColor: palette.white,\n                        borderColor: palette.white,\n                        color: palette.themePrimary,\n                    },\n                    _b),\n            },\n        ],\n        secondaryButton: [\n            classNames.secondaryButton,\n            secondaryButtonClassName,\n            hideDefaultFocusRing,\n            {\n                backgroundColor: palette.themePrimary,\n                borderColor: palette.white,\n                whiteSpace: 'nowrap',\n                selectors: (_c = {},\n                    // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n                    _c[\".\".concat(classNames.buttonLabel)] = [\n                        fonts.medium,\n                        {\n                            color: palette.white,\n                        },\n                    ],\n                    _c[':hover'] = {\n                        backgroundColor: palette.themeDarkAlt,\n                        borderColor: palette.white,\n                    },\n                    _c[':focus'] = {\n                        backgroundColor: palette.themeDark,\n                        border: \"1px solid \".concat(palette.black),\n                        outline: \"1px solid \".concat(palette.white),\n                        outlineOffset: '-2px',\n                    },\n                    _c[':active'] = {\n                        backgroundColor: palette.themePrimary,\n                        borderColor: palette.white,\n                    },\n                    _c),\n            },\n        ],\n        subText: [\n            classNames.subText,\n            {\n                margin: 0,\n                fontSize: fonts.medium.fontSize,\n                color: palette.white,\n                fontWeight: FontWeights.regular,\n            },\n        ],\n        subComponentStyles: {\n            callout: {\n                root: __spreadArray(__spreadArray([], rootStyle(isWide, calloutProps), true), [fonts.medium], false),\n                beak: [\n                    {\n                        background: palette.themePrimary,\n                    },\n                ],\n                calloutMain: [\n                    {\n                        background: palette.themePrimary,\n                    },\n                ],\n            },\n        },\n    };\n};\n//# sourceMappingURL=TeachingBubble.styles.js.map","import { styled } from '../../Utilities';\nimport { TeachingBubbleContentBase } from './TeachingBubbleContent.base';\nimport { getStyles } from './TeachingBubble.styles';\nexport var TeachingBubbleContent = styled(TeachingBubbleContentBase, getStyles, undefined, { scope: 'TeachingBubbleContent' });\n//# sourceMappingURL=TeachingBubbleContent.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { TeachingBubbleContent } from './TeachingBubbleContent';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'TeachingBubble';\nvar defaultCalloutProps = {\n    beakWidth: 16,\n    gapSpace: 0,\n    setInitialFocus: true,\n    doNotLayer: false,\n    directionalHint: DirectionalHint.rightCenter,\n};\nvar getClassNames = classNamesFunction();\nvar useComponentRef = function (componentRef, rootElementRef) {\n    React.useImperativeHandle(componentRef, function () { return ({\n        focus: function () { var _a; return (_a = rootElementRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },\n    }); }, [rootElementRef]);\n};\nexport var TeachingBubbleBase = React.forwardRef(function (props, forwardedRef) {\n    var rootElementRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(rootElementRef, forwardedRef);\n    var setCalloutProps = props.calloutProps, \n    // eslint-disable-next-line deprecation/deprecation\n    targetElement = props.targetElement, onDismiss = props.onDismiss, \n    // eslint-disable-next-line deprecation/deprecation\n    _a = props.hasCloseButton, \n    // eslint-disable-next-line deprecation/deprecation\n    hasCloseButton = _a === void 0 ? props.hasCloseIcon : _a, isWide = props.isWide, styles = props.styles, theme = props.theme, target = props.target;\n    var calloutProps = React.useMemo(function () { return (__assign(__assign(__assign({}, defaultCalloutProps), setCalloutProps), { theme: theme })); }, [setCalloutProps, theme]);\n    var stylesProps = {\n        theme: theme,\n        isWide: isWide,\n        calloutProps: calloutProps,\n        hasCloseButton: hasCloseButton,\n    };\n    var classNames = getClassNames(styles, stylesProps);\n    var calloutStyles = classNames.subComponentStyles\n        ? classNames.subComponentStyles.callout\n        : undefined;\n    useComponentRef(props.componentRef, rootElementRef);\n    return (React.createElement(Callout, __assign({ target: target || targetElement, onDismiss: onDismiss }, calloutProps, { className: classNames.root, styles: calloutStyles, hideOverflow: true }),\n        React.createElement(\"div\", { ref: mergedRootRef },\n            React.createElement(TeachingBubbleContent, __assign({}, props)))));\n});\nTeachingBubbleBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=TeachingBubble.base.js.map","import { styled } from '../../Utilities';\nimport { TeachingBubbleBase } from './TeachingBubble.base';\nimport { getStyles } from './TeachingBubble.styles';\nexport var TeachingBubble = styled(TeachingBubbleBase, getStyles, undefined, { scope: 'TeachingBubble' });\n//# sourceMappingURL=TeachingBubble.js.map","export var DEFAULT_MASK_FORMAT_CHARS = {\n    '9': /[0-9]/,\n    a: /[a-zA-Z]/,\n    '*': /[a-zA-Z0-9]/,\n};\n/**\n * Takes in the mask string and the formatCharacters and returns an array of MaskValues\n * Example:\n * mask = 'Phone Number: (999) - 9999'\n * return = [\n *    { value: undefined, displayIndex: 16, format: /[0-9]/ },\n *    { value: undefined, displayIndex: 17, format: /[0-9]/ },\n *    { value: undefined, displayIndex: 18, format: /[0-9]/ },\n *    { value: undefined, displayIndex: 22, format: /[0-9]/ },\n * ]\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param formatChars An object defining how certain characters in the mask should accept input.\n */\nexport function parseMask(mask, formatChars) {\n    if (formatChars === void 0) { formatChars = DEFAULT_MASK_FORMAT_CHARS; }\n    if (!mask) {\n        return [];\n    }\n    var maskCharData = [];\n    // Count the escape characters in the mask string.\n    var escapedChars = 0;\n    for (var i = 0; i + escapedChars < mask.length; i++) {\n        var maskChar = mask.charAt(i + escapedChars);\n        if (maskChar === '\\\\') {\n            escapedChars++;\n        }\n        else {\n            // Check if the maskChar is a format character.\n            var maskFormat = formatChars[maskChar];\n            if (maskFormat) {\n                maskCharData.push({\n                    /**\n                     * Do not add escapedChars to the displayIndex.\n                     * The index refers to a position in the mask's displayValue.\n                     * Since the backslashes don't appear in the displayValue,\n                     * we do not add them to the charData displayIndex.\n                     */\n                    displayIndex: i,\n                    format: maskFormat,\n                });\n            }\n        }\n    }\n    return maskCharData;\n}\n/**\n * Takes in the mask string, an array of MaskValues, and the maskCharacter\n * returns the mask string formatted with the input values and maskCharacter.\n * If the maskChar is undefined, the maskDisplay is truncated to the last filled format character.\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * maskCharData = '12345'\n * maskChar = '_'\n * return = 'Phone Number: (123) 45_ - ___'\n *\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * value = '12345'\n * maskChar = undefined\n * return = 'Phone Number: (123) 45'\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param maskCharData The input values to insert into the mask string for displaying.\n * @param maskChar? A character to display in place of unfilled mask format characters.\n */\nexport function getMaskDisplay(mask, maskCharData, maskChar) {\n    var maskDisplay = mask;\n    if (!maskDisplay) {\n        return '';\n    }\n    // Remove all backslashes\n    maskDisplay = maskDisplay.replace(/\\\\/g, '');\n    // lastDisplayIndex is is used to truncate the string if necessary.\n    var lastDisplayIndex = 0;\n    if (maskCharData.length > 0) {\n        lastDisplayIndex = maskCharData[0].displayIndex - 1;\n    }\n    /**\n     * For each input value, replace the character in the maskDisplay with the value.\n     * If there is no value set for the format character, use the maskChar.\n     */\n    for (var _i = 0, maskCharData_1 = maskCharData; _i < maskCharData_1.length; _i++) {\n        var charData = maskCharData_1[_i];\n        var nextChar = ' ';\n        if (charData.value) {\n            nextChar = charData.value;\n            if (charData.displayIndex > lastDisplayIndex) {\n                lastDisplayIndex = charData.displayIndex;\n            }\n        }\n        else {\n            if (maskChar) {\n                nextChar = maskChar;\n            }\n        }\n        // Insert the character into the maskdisplay at its corresponding index\n        maskDisplay = maskDisplay.slice(0, charData.displayIndex) + nextChar + maskDisplay.slice(charData.displayIndex + 1);\n    }\n    // Cut off all mask characters after the last filled format value\n    if (!maskChar) {\n        maskDisplay = maskDisplay.slice(0, lastDisplayIndex + 1);\n    }\n    return maskDisplay;\n}\n/**\n * Get the next format index right of or at a specified index.\n * If no index exists, returns the rightmost index.\n * @param maskCharData\n * @param index\n */\nexport function getRightFormatIndex(maskCharData, index) {\n    for (var i = 0; i < maskCharData.length; i++) {\n        if (maskCharData[i].displayIndex >= index) {\n            return maskCharData[i].displayIndex;\n        }\n    }\n    return maskCharData[maskCharData.length - 1].displayIndex;\n}\n/**\n * Get the next format index left of a specified index.\n * If no index exists, returns the leftmost index.\n * @param maskCharData\n * @param index\n */\nexport function getLeftFormatIndex(maskCharData, index) {\n    for (var i = maskCharData.length - 1; i >= 0; i--) {\n        if (maskCharData[i].displayIndex < index) {\n            return maskCharData[i].displayIndex;\n        }\n    }\n    return maskCharData[0].displayIndex;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n */\nexport function clearRange(maskCharData, selectionStart, selectionCount) {\n    for (var i = 0; i < maskCharData.length; i++) {\n        if (maskCharData[i].displayIndex >= selectionStart) {\n            if (maskCharData[i].displayIndex >= selectionStart + selectionCount) {\n                break;\n            }\n            maskCharData[i].value = undefined;\n        }\n    }\n    return maskCharData;\n}\n/**\n * Deletes the input character at or after a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearNext(maskCharData, selectionStart) {\n    for (var i = 0; i < maskCharData.length; i++) {\n        if (maskCharData[i].displayIndex >= selectionStart) {\n            maskCharData[i].value = undefined;\n            break;\n        }\n    }\n    return maskCharData;\n}\n/**\n * Deletes the input character before a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearPrev(maskCharData, selectionStart) {\n    for (var i = maskCharData.length - 1; i >= 0; i--) {\n        if (maskCharData[i].displayIndex < selectionStart) {\n            maskCharData[i].value = undefined;\n            break;\n        }\n    }\n    return maskCharData;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * Modifies the maskCharData inplace with the passed string and returns the display index of the\n * next format character after the inserted string.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n * @return The displayIndex of the next format character\n */\nexport function insertString(maskCharData, selectionStart, newString) {\n    var stringIndex = 0;\n    var nextIndex = 0;\n    var isStringInserted = false;\n    // Iterate through _maskCharData finding values with a displayIndex after the specified range start\n    for (var i = 0; i < maskCharData.length && stringIndex < newString.length; i++) {\n        if (maskCharData[i].displayIndex >= selectionStart) {\n            isStringInserted = true;\n            nextIndex = maskCharData[i].displayIndex;\n            // Find the next character in the newString that matches the format\n            while (stringIndex < newString.length) {\n                // If the character matches the format regexp, set the maskCharData to the new character\n                if (maskCharData[i].format.test(newString.charAt(stringIndex))) {\n                    maskCharData[i].value = newString.charAt(stringIndex++);\n                    // Set the nextIndex to the display index of the next mask format character.\n                    if (i + 1 < maskCharData.length) {\n                        nextIndex = maskCharData[i + 1].displayIndex;\n                    }\n                    else {\n                        nextIndex++;\n                    }\n                    break;\n                }\n                stringIndex++;\n            }\n        }\n    }\n    return isStringInserted ? nextIndex : selectionStart;\n}\n//# sourceMappingURL=inputMask.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { TextField } from '../TextField';\nimport { KeyCodes } from '../../../Utilities';\nimport { clearNext, clearPrev, clearRange, DEFAULT_MASK_FORMAT_CHARS, getLeftFormatIndex, getMaskDisplay, getRightFormatIndex, insertString, parseMask, } from './inputMask';\nimport { useConst, useIsomorphicLayoutEffect } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'MaskedTextField';\nvar useComponentRef = function (componentRef, internalState, textField) {\n    React.useImperativeHandle(componentRef, function () { return ({\n        get value() {\n            var value = '';\n            for (var i = 0; i < internalState.maskCharData.length; i++) {\n                if (!internalState.maskCharData[i].value) {\n                    return undefined;\n                }\n                value += internalState.maskCharData[i].value;\n            }\n            return value;\n        },\n        get selectionStart() {\n            return textField.current && textField.current.selectionStart !== null ? textField.current.selectionStart : -1;\n        },\n        get selectionEnd() {\n            return textField.current && textField.current.selectionEnd ? textField.current.selectionEnd : -1;\n        },\n        focus: function () {\n            textField.current && textField.current.focus();\n        },\n        blur: function () {\n            textField.current && textField.current.blur();\n        },\n        select: function () {\n            textField.current && textField.current.select();\n        },\n        setSelectionStart: function (value) {\n            textField.current && textField.current.setSelectionStart(value);\n        },\n        setSelectionEnd: function (value) {\n            textField.current && textField.current.setSelectionEnd(value);\n        },\n        setSelectionRange: function (start, end) {\n            textField.current && textField.current.setSelectionRange(start, end);\n        },\n    }); }, [internalState, textField]);\n};\nexport var DEFAULT_MASK_CHAR = '_';\nexport var MaskedTextField = React.forwardRef(function (props, ref) {\n    var textField = React.useRef(null);\n    var componentRef = props.componentRef, onFocus = props.onFocus, onBlur = props.onBlur, onMouseDown = props.onMouseDown, onMouseUp = props.onMouseUp, onChange = props.onChange, onPaste = props.onPaste, onKeyDown = props.onKeyDown, mask = props.mask, _a = props.maskChar, maskChar = _a === void 0 ? DEFAULT_MASK_CHAR : _a, _b = props.maskFormat, maskFormat = _b === void 0 ? DEFAULT_MASK_FORMAT_CHARS : _b, value = props.value;\n    var internalState = useConst(function () { return ({\n        maskCharData: parseMask(mask, maskFormat),\n        isFocused: false,\n        moveCursorOnMouseUp: false,\n        changeSelectionData: null,\n    }); });\n    /** The index into the rendered value of the first unfilled format character */\n    var _c = React.useState(), maskCursorPosition = _c[0], setMaskCursorPosition = _c[1];\n    /**\n     * The mask string formatted with the input value.\n     * This is what is displayed inside the TextField\n     * @example\n     *  `Phone Number: 12_ - 4___`\n     */\n    var _d = React.useState(function () {\n        return getMaskDisplay(mask, internalState.maskCharData, maskChar);\n    }), displayValue = _d[0], setDisplayValue = _d[1];\n    var setValue = React.useCallback(function (newValue) {\n        var valueIndex = 0;\n        var charDataIndex = 0;\n        while (valueIndex < newValue.length && charDataIndex < internalState.maskCharData.length) {\n            // Test if the next character in the new value fits the next format character\n            var testVal = newValue[valueIndex];\n            if (internalState.maskCharData[charDataIndex].format.test(testVal)) {\n                internalState.maskCharData[charDataIndex].value = testVal;\n                charDataIndex++;\n            }\n            valueIndex++;\n        }\n    }, [internalState]);\n    var handleFocus = React.useCallback(function (ev) {\n        onFocus === null || onFocus === void 0 ? void 0 : onFocus(ev);\n        internalState.isFocused = true;\n        // Move the cursor position to the leftmost unfilled position\n        for (var i = 0; i < internalState.maskCharData.length; i++) {\n            if (!internalState.maskCharData[i].value) {\n                setMaskCursorPosition(internalState.maskCharData[i].displayIndex);\n                break;\n            }\n        }\n    }, [internalState, onFocus]);\n    var handleBlur = React.useCallback(function (ev) {\n        onBlur === null || onBlur === void 0 ? void 0 : onBlur(ev);\n        internalState.isFocused = false;\n        internalState.moveCursorOnMouseUp = true;\n    }, [internalState, onBlur]);\n    var handleMouseDown = React.useCallback(function (ev) {\n        onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(ev);\n        if (!internalState.isFocused) {\n            internalState.moveCursorOnMouseUp = true;\n        }\n    }, [internalState, onMouseDown]);\n    var handleMouseUp = React.useCallback(function (ev) {\n        onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(ev);\n        // Move the cursor on mouseUp after focusing the textField\n        if (internalState.moveCursorOnMouseUp) {\n            internalState.moveCursorOnMouseUp = false;\n            // Move the cursor position to the rightmost unfilled position\n            for (var i = 0; i < internalState.maskCharData.length; i++) {\n                if (!internalState.maskCharData[i].value) {\n                    setMaskCursorPosition(internalState.maskCharData[i].displayIndex);\n                    break;\n                }\n            }\n        }\n    }, [internalState, onMouseUp]);\n    var handleInputChange = React.useCallback(function (ev, inputValue) {\n        if (internalState.changeSelectionData === null && textField.current) {\n            internalState.changeSelectionData = {\n                changeType: 'default',\n                selectionStart: textField.current.selectionStart !== null ? textField.current.selectionStart : -1,\n                selectionEnd: textField.current.selectionEnd !== null ? textField.current.selectionEnd : -1,\n            };\n        }\n        if (!internalState.changeSelectionData) {\n            return;\n        }\n        // The initial value of cursorPos does not matter\n        var cursorPos = 0;\n        var _a = internalState.changeSelectionData, changeType = _a.changeType, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n        if (changeType === 'textPasted') {\n            var charsSelected = selectionEnd - selectionStart;\n            var charCount = inputValue.length + charsSelected - displayValue.length;\n            var startPos = selectionStart;\n            // eslint-disable-next-line deprecation/deprecation\n            var pastedString = inputValue.substr(startPos, charCount);\n            // Clear any selected characters\n            if (charsSelected) {\n                internalState.maskCharData = clearRange(internalState.maskCharData, selectionStart, charsSelected);\n            }\n            cursorPos = insertString(internalState.maskCharData, startPos, pastedString);\n        }\n        else if (changeType === 'delete' || changeType === 'backspace') {\n            // isDel is true If the characters are removed LTR, otherwise RTL\n            var isDel = changeType === 'delete';\n            var charCount = selectionEnd - selectionStart;\n            if (charCount) {\n                // charCount is > 0 if range was deleted\n                internalState.maskCharData = clearRange(internalState.maskCharData, selectionStart, charCount);\n                cursorPos = getRightFormatIndex(internalState.maskCharData, selectionStart);\n            }\n            else {\n                // If charCount === 0, there was no selection and a single character was deleted\n                if (isDel) {\n                    internalState.maskCharData = clearNext(internalState.maskCharData, selectionStart);\n                    cursorPos = getRightFormatIndex(internalState.maskCharData, selectionStart);\n                }\n                else {\n                    internalState.maskCharData = clearPrev(internalState.maskCharData, selectionStart);\n                    cursorPos = getLeftFormatIndex(internalState.maskCharData, selectionStart);\n                }\n            }\n        }\n        else if (inputValue.length > displayValue.length) {\n            // This case is if the user added characters\n            var charCount = inputValue.length - displayValue.length;\n            var startPos = selectionEnd - charCount;\n            // eslint-disable-next-line deprecation/deprecation\n            var enteredString = inputValue.substr(startPos, charCount);\n            cursorPos = insertString(internalState.maskCharData, startPos, enteredString);\n        }\n        else if (inputValue.length <= displayValue.length) {\n            /**\n             * This case is reached only if the user has selected a block of 1 or more\n             * characters and input a character replacing the characters they've selected.\n             */\n            var charCount = 1;\n            var selectCount = displayValue.length + charCount - inputValue.length;\n            var startPos = selectionEnd - charCount;\n            // eslint-disable-next-line deprecation/deprecation\n            var enteredString = inputValue.substr(startPos, charCount);\n            // Clear the selected range\n            internalState.maskCharData = clearRange(internalState.maskCharData, startPos, selectCount);\n            // Insert the printed character\n            cursorPos = insertString(internalState.maskCharData, startPos, enteredString);\n        }\n        internalState.changeSelectionData = null;\n        var newValue = getMaskDisplay(mask, internalState.maskCharData, maskChar);\n        setDisplayValue(newValue);\n        setMaskCursorPosition(cursorPos);\n        // Perform onChange after input has been processed. Return value is expected to be the displayed text\n        onChange === null || onChange === void 0 ? void 0 : onChange(ev, newValue);\n    }, [displayValue.length, internalState, mask, maskChar, onChange]);\n    var handleKeyDown = React.useCallback(function (ev) {\n        onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(ev);\n        internalState.changeSelectionData = null;\n        if (textField.current && textField.current.value) {\n            // eslint-disable-next-line deprecation/deprecation\n            var keyCode = ev.keyCode, ctrlKey = ev.ctrlKey, metaKey = ev.metaKey;\n            // Ignore ctrl and meta keydown\n            if (ctrlKey || metaKey) {\n                return;\n            }\n            // On backspace or delete, store the selection and the keyCode\n            if (keyCode === KeyCodes.backspace || keyCode === KeyCodes.del) {\n                var selectionStart = ev.target.selectionStart;\n                var selectionEnd = ev.target.selectionEnd;\n                // Check if backspace or delete press is valid.\n                if (!(keyCode === KeyCodes.backspace && selectionEnd && selectionEnd > 0) &&\n                    !(keyCode === KeyCodes.del && selectionStart !== null && selectionStart < textField.current.value.length)) {\n                    return;\n                }\n                internalState.changeSelectionData = {\n                    changeType: keyCode === KeyCodes.backspace ? 'backspace' : 'delete',\n                    selectionStart: selectionStart !== null ? selectionStart : -1,\n                    selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n                };\n            }\n        }\n    }, [internalState, onKeyDown]);\n    var handlePaste = React.useCallback(function (ev) {\n        onPaste === null || onPaste === void 0 ? void 0 : onPaste(ev);\n        var selectionStart = ev.target.selectionStart;\n        var selectionEnd = ev.target.selectionEnd;\n        // Store the paste selection range\n        internalState.changeSelectionData = {\n            changeType: 'textPasted',\n            selectionStart: selectionStart !== null ? selectionStart : -1,\n            selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n        };\n    }, [internalState, onPaste]);\n    // Updates the display value if mask or value props change.\n    React.useEffect(function () {\n        internalState.maskCharData = parseMask(mask, maskFormat);\n        value !== undefined && setValue(value);\n        setDisplayValue(getMaskDisplay(mask, internalState.maskCharData, maskChar));\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- Should only update when mask or value changes.\n    }, [mask, value]);\n    // Run before browser paint to avoid flickering from selection reset.\n    useIsomorphicLayoutEffect(function () {\n        // Move the cursor to position before paint.\n        if (maskCursorPosition !== undefined && textField.current) {\n            textField.current.setSelectionRange(maskCursorPosition, maskCursorPosition);\n        }\n    }, [maskCursorPosition]);\n    // Run after browser paint.\n    React.useEffect(function () {\n        // Move the cursor to the start of the mask format after values update.\n        if (internalState.isFocused && maskCursorPosition !== undefined && textField.current) {\n            textField.current.setSelectionRange(maskCursorPosition, maskCursorPosition);\n        }\n    });\n    useComponentRef(componentRef, internalState, textField);\n    return (React.createElement(TextField, __assign({}, props, { elementRef: ref, onFocus: handleFocus, onBlur: handleBlur, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onChange: handleInputChange, onKeyDown: handleKeyDown, onPaste: handlePaste, value: displayValue || '', componentRef: textField })));\n});\nMaskedTextField.displayName = COMPONENT_NAME;\n//# sourceMappingURL=MaskedTextField.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { Async, classNamesFunction, DelayedRender, getId, getNativeProps, getWindow, initializeComponentRef, inputProperties, isControlled, isIE11, textAreaProperties, warn, warnControlledUsage, warnMutuallyExclusive, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_STATE_VALUE = '';\nvar COMPONENT_NAME = 'TextField';\nvar REVEAL_ICON_NAME = 'RedEye';\nvar HIDE_ICON_NAME = 'Hide';\nvar TextFieldBase = /** @class */ (function (_super) {\n    __extends(TextFieldBase, _super);\n    function TextFieldBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._textElement = React.createRef();\n        _this._onFocus = function (ev) {\n            if (_this.props.onFocus) {\n                _this.props.onFocus(ev);\n            }\n            _this.setState({ isFocused: true }, function () {\n                if (_this.props.validateOnFocusIn) {\n                    _this._validate(_this.value);\n                }\n            });\n        };\n        _this._onBlur = function (ev) {\n            if (_this.props.onBlur) {\n                _this.props.onBlur(ev);\n            }\n            _this.setState({ isFocused: false }, function () {\n                if (_this.props.validateOnFocusOut) {\n                    _this._validate(_this.value);\n                }\n            });\n        };\n        _this._onRenderLabel = function (props) {\n            var label = props.label, required = props.required;\n            // IProcessedStyleSet definition requires casting for what Label expects as its styles prop\n            var labelStyles = _this._classNames.subComponentStyles\n                ? _this._classNames.subComponentStyles.label\n                : undefined;\n            if (label) {\n                return (React.createElement(Label, { required: required, htmlFor: _this._id, styles: labelStyles, disabled: props.disabled, id: _this._labelId }, props.label));\n            }\n            return null;\n        };\n        _this._onRenderDescription = function (props) {\n            if (props.description) {\n                return React.createElement(\"span\", { className: _this._classNames.description }, props.description);\n            }\n            return null;\n        };\n        _this._onRevealButtonClick = function (event) {\n            _this.setState(function (prevState) { return ({ isRevealingPassword: !prevState.isRevealingPassword }); });\n        };\n        _this._onInputChange = function (event) {\n            // Previously, we needed to call both onInput and onChange due to some weird IE/React issues,\n            // which have *probably* been fixed now:\n            // - https://github.com/microsoft/fluentui/issues/744 (likely fixed)\n            // - https://github.com/microsoft/fluentui/issues/824 (confirmed fixed)\n            var _a, _b;\n            // TODO (Fabric 8?) - Switch to calling only onChange. This switch is pretty disruptive for\n            // tests (ours and maybe consumers' too), so it seemed best to do the switch in a major bump.\n            var element = event.target;\n            var value = element.value;\n            // Ignore this event if any of the following are true:\n            // - the value is undefined (in case one of the IE bugs comes back)\n            // - it's a duplicate event (important since onInputChange is called twice per actual user event)\n            // - it's the same as the previous value\n            var previousValue = _getValue(_this.props, _this.state) || '';\n            if (value === undefined || value === _this._lastChangeValue || value === previousValue) {\n                _this._lastChangeValue = undefined;\n                return;\n            }\n            _this._lastChangeValue = value;\n            (_b = (_a = _this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, event, value);\n            if (!_this._isControlled) {\n                // ONLY if this is an uncontrolled component, update the displayed value.\n                // (Controlled components must update the `value` prop from `onChange`.)\n                _this.setState({ uncontrolledValue: value });\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        if (process.env.NODE_ENV !== 'production') {\n            warnMutuallyExclusive(COMPONENT_NAME, props, {\n                errorMessage: 'onGetErrorMessage',\n            });\n        }\n        _this._fallbackId = getId(COMPONENT_NAME);\n        _this._descriptionId = getId(COMPONENT_NAME + 'Description');\n        _this._labelId = getId(COMPONENT_NAME + 'Label');\n        _this._prefixId = getId(COMPONENT_NAME + 'Prefix');\n        _this._suffixId = getId(COMPONENT_NAME + 'Suffix');\n        _this._warnControlledUsage();\n        var _a = props.defaultValue, defaultValue = _a === void 0 ? DEFAULT_STATE_VALUE : _a;\n        if (typeof defaultValue === 'number') {\n            // This isn't allowed per the props, but happens anyway.\n            defaultValue = String(defaultValue);\n        }\n        _this.state = {\n            uncontrolledValue: _this._isControlled ? undefined : defaultValue,\n            isFocused: false,\n            errorMessage: '',\n        };\n        _this._delayedValidate = _this._async.debounce(_this._validate, _this.props.deferredValidationTime);\n        _this._lastValidation = 0;\n        return _this;\n    }\n    Object.defineProperty(TextFieldBase.prototype, \"value\", {\n        /**\n         * Gets the current value of the text field.\n         */\n        get: function () {\n            return _getValue(this.props, this.state);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    TextFieldBase.prototype.componentDidMount = function () {\n        this._adjustInputHeight();\n        if (this.props.validateOnLoad) {\n            this._validate(this.value);\n        }\n    };\n    TextFieldBase.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n    };\n    TextFieldBase.prototype.getSnapshotBeforeUpdate = function (prevProps, prevState) {\n        return {\n            selection: [this.selectionStart, this.selectionEnd],\n        };\n    };\n    TextFieldBase.prototype.componentDidUpdate = function (prevProps, prevState, snapshot) {\n        var props = this.props;\n        var _a = (snapshot || {}).selection, selection = _a === void 0 ? [null, null] : _a;\n        var start = selection[0], end = selection[1];\n        if (!!prevProps.multiline !== !!props.multiline && prevState.isFocused) {\n            // The text field has just changed between single- and multi-line, so we need to reset focus\n            // and selection/cursor.\n            this.focus();\n            if (start !== null && end !== null && start >= 0 && end >= 0) {\n                this.setSelectionRange(start, end);\n            }\n        }\n        if (prevProps.value !== props.value) {\n            // Only if the value in props changed, reset the record of the last value seen by a\n            // change/input event (don't do this if the value in state changed, since at least in tests\n            // the state update may happen before the second event in a series)\n            this._lastChangeValue = undefined;\n        }\n        var prevValue = _getValue(prevProps, prevState);\n        var value = this.value;\n        if (prevValue !== value) {\n            // Handle controlled/uncontrolled warnings and status\n            this._warnControlledUsage(prevProps);\n            // Clear error message if needed\n            // TODO: is there any way to do this without an extra render?\n            if (this.state.errorMessage && !props.errorMessage) {\n                this.setState({ errorMessage: '' });\n            }\n            // Adjust height if needed based on new value\n            this._adjustInputHeight();\n            // TODO: #5875 added logic to trigger validation in componentWillReceiveProps and other places.\n            // This seems a bit odd and hard to integrate with the new approach.\n            // (Starting to think we should just put the validation logic in a separate wrapper component...?)\n            if (_shouldValidateAllChanges(props)) {\n                this._delayedValidate(value);\n            }\n        }\n    };\n    TextFieldBase.prototype.render = function () {\n        var _a = this.props, borderless = _a.borderless, className = _a.className, disabled = _a.disabled, invalid = _a.invalid, iconProps = _a.iconProps, inputClassName = _a.inputClassName, label = _a.label, multiline = _a.multiline, required = _a.required, underlined = _a.underlined, prefix = _a.prefix, resizable = _a.resizable, suffix = _a.suffix, theme = _a.theme, styles = _a.styles, autoAdjustHeight = _a.autoAdjustHeight, canRevealPassword = _a.canRevealPassword, revealPasswordAriaLabel = _a.revealPasswordAriaLabel, type = _a.type, _b = _a.onRenderPrefix, onRenderPrefix = _b === void 0 ? this._onRenderPrefix : _b, _c = _a.onRenderSuffix, onRenderSuffix = _c === void 0 ? this._onRenderSuffix : _c, _d = _a.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = _a.onRenderDescription, onRenderDescription = _e === void 0 ? this._onRenderDescription : _e;\n        var _f = this.state, isFocused = _f.isFocused, isRevealingPassword = _f.isRevealingPassword;\n        var errorMessage = this._errorMessage;\n        var isInvalid = typeof invalid === 'boolean' ? invalid : !!errorMessage;\n        var hasRevealButton = !!canRevealPassword && type === 'password' && _browserNeedsRevealButton();\n        var classNames = (this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            disabled: disabled,\n            focused: isFocused,\n            required: required,\n            multiline: multiline,\n            hasLabel: !!label,\n            hasErrorMessage: isInvalid,\n            borderless: borderless,\n            resizable: resizable,\n            hasIcon: !!iconProps,\n            underlined: underlined,\n            inputClassName: inputClassName,\n            autoAdjustHeight: autoAdjustHeight,\n            hasRevealButton: hasRevealButton,\n        }));\n        return (\n        // eslint-disable-next-line deprecation/deprecation\n        React.createElement(\"div\", { ref: this.props.elementRef, className: classNames.root },\n            React.createElement(\"div\", { className: classNames.wrapper },\n                onRenderLabel(this.props, this._onRenderLabel),\n                React.createElement(\"div\", { className: classNames.fieldGroup },\n                    (prefix !== undefined || this.props.onRenderPrefix) && (React.createElement(\"div\", { className: classNames.prefix, id: this._prefixId }, onRenderPrefix(this.props, this._onRenderPrefix))),\n                    multiline ? this._renderTextArea() : this._renderInput(),\n                    iconProps && React.createElement(Icon, __assign({ className: classNames.icon }, iconProps)),\n                    hasRevealButton && (\n                    // Explicitly set type=\"button\" since the default button type within a form is \"submit\"\n                    React.createElement(\"button\", { \"aria-label\": revealPasswordAriaLabel, className: classNames.revealButton, onClick: this._onRevealButtonClick, \"aria-pressed\": !!isRevealingPassword, type: \"button\" },\n                        React.createElement(\"span\", { className: classNames.revealSpan },\n                            React.createElement(Icon, { className: classNames.revealIcon, iconName: isRevealingPassword ? HIDE_ICON_NAME : REVEAL_ICON_NAME })))),\n                    (suffix !== undefined || this.props.onRenderSuffix) && (React.createElement(\"div\", { className: classNames.suffix, id: this._suffixId }, onRenderSuffix(this.props, this._onRenderSuffix))))),\n            this._isDescriptionAvailable && (React.createElement(\"span\", { id: this._descriptionId },\n                onRenderDescription(this.props, this._onRenderDescription),\n                errorMessage && (React.createElement(\"div\", { role: \"alert\" },\n                    React.createElement(DelayedRender, null, this._renderErrorMessage())))))));\n    };\n    /**\n     * Sets focus on the text field\n     */\n    TextFieldBase.prototype.focus = function () {\n        if (this._textElement.current) {\n            this._textElement.current.focus();\n        }\n    };\n    /**\n     * Blurs the text field.\n     */\n    TextFieldBase.prototype.blur = function () {\n        if (this._textElement.current) {\n            this._textElement.current.blur();\n        }\n    };\n    /**\n     * Selects the text field\n     */\n    TextFieldBase.prototype.select = function () {\n        if (this._textElement.current) {\n            this._textElement.current.select();\n        }\n    };\n    /**\n     * Sets the selection start of the text field to a specified value\n     */\n    TextFieldBase.prototype.setSelectionStart = function (value) {\n        if (this._textElement.current) {\n            this._textElement.current.selectionStart = value;\n        }\n    };\n    /**\n     * Sets the selection end of the text field to a specified value\n     */\n    TextFieldBase.prototype.setSelectionEnd = function (value) {\n        if (this._textElement.current) {\n            this._textElement.current.selectionEnd = value;\n        }\n    };\n    Object.defineProperty(TextFieldBase.prototype, \"selectionStart\", {\n        /**\n         * Gets the selection start of the text field\n         */\n        get: function () {\n            return this._textElement.current ? this._textElement.current.selectionStart : -1;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(TextFieldBase.prototype, \"selectionEnd\", {\n        /**\n         * Gets the selection end of the text field\n         */\n        get: function () {\n            return this._textElement.current ? this._textElement.current.selectionEnd : -1;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Sets the start and end positions of a selection in a text field.\n     * @param start - Index of the start of the selection.\n     * @param end - Index of the end of the selection.\n     */\n    TextFieldBase.prototype.setSelectionRange = function (start, end) {\n        if (this._textElement.current) {\n            this._textElement.current.setSelectionRange(start, end);\n        }\n    };\n    TextFieldBase.prototype._warnControlledUsage = function (prevProps) {\n        // Show warnings if props are being used in an invalid way\n        warnControlledUsage({\n            componentId: this._id,\n            componentName: COMPONENT_NAME,\n            props: this.props,\n            oldProps: prevProps,\n            valueProp: 'value',\n            defaultValueProp: 'defaultValue',\n            onChangeProp: 'onChange',\n            readOnlyProp: 'readOnly',\n        });\n        if (this.props.value === null && !this._hasWarnedNullValue) {\n            this._hasWarnedNullValue = true;\n            warn(\"Warning: 'value' prop on '\".concat(COMPONENT_NAME, \"' should not be null. Consider using an \") +\n                'empty string to clear the component or undefined to indicate an uncontrolled component.');\n        }\n    };\n    Object.defineProperty(TextFieldBase.prototype, \"_id\", {\n        /** Returns `props.id` if available, or a fallback if not. */\n        get: function () {\n            return this.props.id || this._fallbackId;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(TextFieldBase.prototype, \"_isControlled\", {\n        get: function () {\n            return isControlled(this.props, 'value');\n        },\n        enumerable: false,\n        configurable: true\n    });\n    TextFieldBase.prototype._onRenderPrefix = function (props) {\n        var prefix = props.prefix;\n        return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, prefix);\n    };\n    TextFieldBase.prototype._onRenderSuffix = function (props) {\n        var suffix = props.suffix;\n        return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, suffix);\n    };\n    Object.defineProperty(TextFieldBase.prototype, \"_errorMessage\", {\n        /**\n         * Current error message from either `props.errorMessage` or the result of `props.onGetErrorMessage`.\n         *\n         * - If there is no validation error or we have not validated the input value, errorMessage is an empty string.\n         * - If we have done the validation and there is validation error, errorMessage is the validation error message.\n         */\n        get: function () {\n            var _a = this.props.errorMessage, errorMessage = _a === void 0 ? this.state.errorMessage : _a;\n            return errorMessage || '';\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Renders error message based on the type of the message.\n     *\n     * - If error message is string, it will render using the built in styles.\n     * - If error message is an element, user has full control over how it's rendered.\n     */\n    TextFieldBase.prototype._renderErrorMessage = function () {\n        var errorMessage = this._errorMessage;\n        return errorMessage ? (typeof errorMessage === 'string' ? (React.createElement(\"p\", { className: this._classNames.errorMessage },\n            React.createElement(\"span\", { \"data-automation-id\": \"error-message\" }, errorMessage))) : (React.createElement(\"div\", { className: this._classNames.errorMessage, \"data-automation-id\": \"error-message\" }, errorMessage))) : null;\n    };\n    Object.defineProperty(TextFieldBase.prototype, \"_isDescriptionAvailable\", {\n        /**\n         * If a custom description render function is supplied then treat description as always available.\n         * Otherwise defer to the presence of description or error message text.\n         */\n        get: function () {\n            var props = this.props;\n            return !!(props.onRenderDescription || props.description || this._errorMessage);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    TextFieldBase.prototype._renderTextArea = function () {\n        var _a = this.props.invalid, invalid = _a === void 0 ? !!this._errorMessage : _a;\n        var textAreaProps = getNativeProps(this.props, textAreaProperties, ['defaultValue']);\n        var ariaLabelledBy = this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined);\n        return (React.createElement(\"textarea\", __assign({ id: this._id }, textAreaProps, { ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], \"aria-invalid\": invalid, \"aria-label\": this.props.ariaLabel, readOnly: this.props.readOnly, onFocus: this._onFocus, onBlur: this._onBlur })));\n    };\n    TextFieldBase.prototype._renderInput = function () {\n        var _a = this.props, ariaLabel = _a.ariaLabel, _b = _a.invalid, invalid = _b === void 0 ? !!this._errorMessage : _b, onRenderPrefix = _a.onRenderPrefix, onRenderSuffix = _a.onRenderSuffix, prefix = _a.prefix, suffix = _a.suffix, _c = _a.type, type = _c === void 0 ? 'text' : _c, label = _a.label;\n        // build aria-labelledby list from label, prefix, and suffix\n        var labelIds = [];\n        label && labelIds.push(this._labelId);\n        (prefix !== undefined || onRenderPrefix) && labelIds.push(this._prefixId);\n        (suffix !== undefined || onRenderSuffix) && labelIds.push(this._suffixId);\n        var inputProps = __assign(__assign({ type: this.state.isRevealingPassword ? 'text' : type, id: this._id }, getNativeProps(this.props, inputProperties, ['defaultValue', 'type'])), { 'aria-labelledby': this.props['aria-labelledby'] || (labelIds.length > 0 ? labelIds.join(' ') : undefined), ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, 'aria-label': ariaLabel, 'aria-describedby': this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], 'aria-invalid': invalid, onFocus: this._onFocus, onBlur: this._onBlur });\n        var defaultRender = function (updatedInputProps) {\n            return React.createElement(\"input\", __assign({}, updatedInputProps));\n        };\n        var onRenderInput = this.props.onRenderInput || defaultRender;\n        return onRenderInput(inputProps, defaultRender);\n    };\n    TextFieldBase.prototype._validate = function (value) {\n        var _this = this;\n        // In case _validate is called again while validation promise is executing\n        if (this._latestValidateValue === value && _shouldValidateAllChanges(this.props)) {\n            return;\n        }\n        this._latestValidateValue = value;\n        var onGetErrorMessage = this.props.onGetErrorMessage;\n        var result = onGetErrorMessage && onGetErrorMessage(value || '');\n        if (result !== undefined) {\n            if (typeof result === 'string' || !('then' in result)) {\n                this.setState({ errorMessage: result });\n                this._notifyAfterValidate(value, result);\n            }\n            else {\n                var currentValidation_1 = ++this._lastValidation;\n                result.then(function (errorMessage) {\n                    if (currentValidation_1 === _this._lastValidation) {\n                        _this.setState({ errorMessage: errorMessage });\n                    }\n                    _this._notifyAfterValidate(value, errorMessage);\n                });\n            }\n        }\n        else {\n            this._notifyAfterValidate(value, '');\n        }\n    };\n    TextFieldBase.prototype._notifyAfterValidate = function (value, errorMessage) {\n        if (value === this.value && this.props.onNotifyValidationResult) {\n            this.props.onNotifyValidationResult(errorMessage, value);\n        }\n    };\n    TextFieldBase.prototype._adjustInputHeight = function () {\n        if (this._textElement.current && this.props.autoAdjustHeight && this.props.multiline) {\n            var textField = this._textElement.current;\n            textField.style.height = '';\n            textField.style.height = textField.scrollHeight + 'px';\n        }\n    };\n    TextFieldBase.defaultProps = {\n        resizable: true,\n        deferredValidationTime: 200,\n        validateOnLoad: true,\n    };\n    return TextFieldBase;\n}(React.Component));\nexport { TextFieldBase };\n/** Get the value from the given state and props (converting from number to string if needed) */\nfunction _getValue(props, state) {\n    var _a = props.value, value = _a === void 0 ? state.uncontrolledValue : _a;\n    if (typeof value === 'number') {\n        // not allowed per typings, but happens anyway\n        return String(value);\n    }\n    return value;\n}\n/**\n * If `validateOnFocusIn` or `validateOnFocusOut` is true, validation should run **only** on that event.\n * Otherwise, validation should run on every change.\n */\nfunction _shouldValidateAllChanges(props) {\n    return !(props.validateOnFocusIn || props.validateOnFocusOut);\n}\n// Only calculate this once across all TextFields, since will stay the same\nvar __browserNeedsRevealButton;\nfunction _browserNeedsRevealButton() {\n    if (typeof __browserNeedsRevealButton !== 'boolean') {\n        var win = getWindow();\n        if (win === null || win === void 0 ? void 0 : win.navigator) {\n            // Edge, Chromium Edge\n            var isEdge = /Edg/.test(win.navigator.userAgent || '');\n            __browserNeedsRevealButton = !(isIE11() || isEdge);\n        }\n        else {\n            __browserNeedsRevealButton = true;\n        }\n    }\n    return __browserNeedsRevealButton;\n}\n//# sourceMappingURL=TextField.base.js.map","/**\n * Determines whether a component is controlled.\n * @param props - Component props\n * @param valueProp - Prop containing the controlled value\n * @returns true if controlled, false if uncontrolled\n */\nexport function isControlled(props, valueProp) {\n    // React's built-in <input> considers a prop to be provided if its value is non-null/undefined.\n    // Mirror that behavior here (rather than checking for just undefined).\n    return props[valueProp] !== undefined && props[valueProp] !== null;\n}\n//# sourceMappingURL=controlled.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, getFocusStyle, getGlobalClassNames, getInputFocusStyle, HighContrastSelector, normalize, getPlaceholderStyles, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar globalClassNames = {\n    root: 'ms-TextField',\n    description: 'ms-TextField-description',\n    errorMessage: 'ms-TextField-errorMessage',\n    field: 'ms-TextField-field',\n    fieldGroup: 'ms-TextField-fieldGroup',\n    prefix: 'ms-TextField-prefix',\n    suffix: 'ms-TextField-suffix',\n    wrapper: 'ms-TextField-wrapper',\n    revealButton: 'ms-TextField-reveal',\n    multiline: 'ms-TextField--multiline',\n    borderless: 'ms-TextField--borderless',\n    underlined: 'ms-TextField--underlined',\n    unresizable: 'ms-TextField--unresizable',\n    required: 'is-required',\n    disabled: 'is-disabled',\n    active: 'is-active',\n};\nfunction getLabelStyles(props) {\n    var underlined = props.underlined, disabled = props.disabled, focused = props.focused, theme = props.theme;\n    var palette = theme.palette, fonts = theme.fonts;\n    return function () {\n        var _a;\n        return ({\n            root: [\n                underlined &&\n                    disabled && {\n                    color: palette.neutralTertiary,\n                },\n                underlined && {\n                    fontSize: fonts.medium.fontSize,\n                    marginRight: 8,\n                    paddingLeft: 12,\n                    paddingRight: 0,\n                    lineHeight: '22px',\n                    height: 32,\n                },\n                underlined &&\n                    focused && {\n                    selectors: (_a = {},\n                        _a[HighContrastSelector] = {\n                            height: 31, // -1px to prevent jumpiness in HC with the increased border-width to 2px\n                        },\n                        _a),\n                },\n            ],\n        });\n    };\n}\nexport function getStyles(props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n    var theme = props.theme, className = props.className, disabled = props.disabled, focused = props.focused, required = props.required, multiline = props.multiline, hasLabel = props.hasLabel, borderless = props.borderless, underlined = props.underlined, hasIcon = props.hasIcon, resizable = props.resizable, hasErrorMessage = props.hasErrorMessage, inputClassName = props.inputClassName, autoAdjustHeight = props.autoAdjustHeight, hasRevealButton = props.hasRevealButton;\n    var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(globalClassNames, theme);\n    var fieldPrefixSuffix = {\n        // Suffix/Prefix are not editable so the disabled slot perfectly fits.\n        background: semanticColors.disabledBackground,\n        color: !disabled ? semanticColors.inputPlaceholderText : semanticColors.disabledText,\n        display: 'flex',\n        alignItems: 'center',\n        padding: '0 10px',\n        lineHeight: 1,\n        whiteSpace: 'nowrap',\n        flexShrink: 0,\n        selectors: (_a = {},\n            _a[HighContrastSelector] = {\n                background: 'Window',\n                color: disabled ? 'GrayText' : 'WindowText',\n            },\n            _a),\n    };\n    // placeholder style constants\n    var placeholderStyles = [\n        {\n            color: semanticColors.inputPlaceholderText,\n            opacity: 1,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'GrayText',\n                },\n                _b),\n        },\n    ];\n    var disabledPlaceholderStyles = {\n        color: semanticColors.disabledText,\n        selectors: (_c = {},\n            _c[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _c),\n    };\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            required && classNames.required,\n            disabled && classNames.disabled,\n            focused && classNames.active,\n            multiline && classNames.multiline,\n            borderless && classNames.borderless,\n            underlined && classNames.underlined,\n            normalize,\n            {\n                position: 'relative',\n            },\n            className,\n        ],\n        wrapper: [\n            classNames.wrapper,\n            underlined && [\n                {\n                    display: 'flex',\n                    borderBottom: \"1px solid \".concat(!hasErrorMessage ? semanticColors.inputBorder : semanticColors.errorText),\n                    width: '100%',\n                },\n                disabled && {\n                    borderBottomColor: semanticColors.disabledBackground,\n                    selectors: (_d = {},\n                        _d[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                        _d),\n                },\n                !disabled && {\n                    selectors: {\n                        ':hover': {\n                            borderBottomColor: !hasErrorMessage ? semanticColors.inputBorderHovered : semanticColors.errorText,\n                            selectors: (_e = {},\n                                _e[HighContrastSelector] = __assign({ borderBottomColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                                _e),\n                        },\n                    },\n                },\n                focused && [\n                    {\n                        position: 'relative',\n                    },\n                    getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, 0, 'borderBottom'),\n                ],\n            ],\n        ],\n        fieldGroup: [\n            classNames.fieldGroup,\n            normalize,\n            {\n                border: \"1px solid \".concat(semanticColors.inputBorder),\n                borderRadius: effects.roundedCorner2,\n                background: semanticColors.inputBackground,\n                cursor: 'text',\n                height: 32,\n                display: 'flex',\n                flexDirection: 'row',\n                alignItems: 'stretch',\n                position: 'relative',\n            },\n            multiline && {\n                minHeight: '60px',\n                height: 'auto',\n                display: 'flex',\n            },\n            !focused &&\n                !disabled && {\n                selectors: {\n                    ':hover': {\n                        borderColor: semanticColors.inputBorderHovered,\n                        selectors: (_f = {},\n                            _f[HighContrastSelector] = __assign({ borderColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                            _f),\n                    },\n                },\n            },\n            focused &&\n                !underlined &&\n                getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, effects.roundedCorner2),\n            disabled && {\n                borderColor: semanticColors.disabledBackground,\n                selectors: (_g = {},\n                    _g[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                    _g),\n                cursor: 'default',\n            },\n            borderless && {\n                border: 'none',\n            },\n            borderless &&\n                focused && {\n                border: 'none',\n                selectors: {\n                    ':after': {\n                        border: 'none',\n                    },\n                },\n            },\n            underlined && {\n                flex: '1 1 0px',\n                border: 'none',\n                textAlign: 'left',\n            },\n            underlined &&\n                disabled && {\n                backgroundColor: 'transparent',\n            },\n            hasErrorMessage &&\n                !underlined && {\n                borderColor: semanticColors.errorText,\n                selectors: {\n                    '&:hover': {\n                        borderColor: semanticColors.errorText,\n                    },\n                },\n            },\n            !hasLabel &&\n                required && {\n                selectors: (_h = {\n                        ':before': {\n                            content: \"'*'\",\n                            color: semanticColors.errorText,\n                            position: 'absolute',\n                            top: -5,\n                            right: -10,\n                        }\n                    },\n                    _h[HighContrastSelector] = {\n                        selectors: {\n                            ':before': {\n                                color: 'WindowText',\n                                right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n                            },\n                        },\n                    },\n                    _h),\n            },\n        ],\n        field: [\n            fonts.medium,\n            classNames.field,\n            normalize,\n            {\n                borderRadius: 0,\n                border: 'none',\n                background: 'none',\n                backgroundColor: 'transparent',\n                color: semanticColors.inputText,\n                padding: '0 8px',\n                width: '100%',\n                minWidth: 0,\n                textOverflow: 'ellipsis',\n                outline: 0,\n                selectors: (_j = {\n                        '&:active, &:focus, &:hover': { outline: 0 },\n                        '::-ms-clear': {\n                            display: 'none',\n                        }\n                    },\n                    _j[HighContrastSelector] = {\n                        background: 'Window',\n                        color: disabled ? 'GrayText' : 'WindowText',\n                    },\n                    _j),\n            },\n            getPlaceholderStyles(placeholderStyles),\n            multiline &&\n                !resizable && [\n                classNames.unresizable,\n                {\n                    resize: 'none',\n                },\n            ],\n            multiline && {\n                minHeight: 'inherit',\n                lineHeight: 17,\n                flexGrow: 1,\n                paddingTop: 6,\n                paddingBottom: 6,\n                overflow: 'auto',\n                width: '100%',\n            },\n            multiline &&\n                autoAdjustHeight && {\n                overflow: 'hidden',\n            },\n            hasIcon &&\n                !hasRevealButton && {\n                paddingRight: 24,\n            },\n            multiline &&\n                hasIcon && {\n                paddingRight: 40,\n            },\n            disabled && [\n                {\n                    backgroundColor: semanticColors.disabledBackground,\n                    color: semanticColors.disabledText,\n                    borderColor: semanticColors.disabledBackground,\n                },\n                getPlaceholderStyles(disabledPlaceholderStyles),\n            ],\n            underlined && {\n                textAlign: 'left',\n            },\n            focused &&\n                !borderless && {\n                selectors: (_k = {},\n                    _k[HighContrastSelector] = {\n                        paddingLeft: 11,\n                        paddingRight: 11,\n                    },\n                    _k),\n            },\n            focused &&\n                multiline &&\n                !borderless && {\n                selectors: (_l = {},\n                    _l[HighContrastSelector] = {\n                        paddingTop: 4, // take into consideration the 2px increased border-width (not when borderless).\n                    },\n                    _l),\n            },\n            inputClassName,\n        ],\n        icon: [\n            multiline && {\n                paddingRight: 24,\n                alignItems: 'flex-end',\n            },\n            {\n                pointerEvents: 'none',\n                position: 'absolute',\n                bottom: 6,\n                right: 8,\n                top: 'auto',\n                fontSize: IconFontSizes.medium,\n                lineHeight: 18,\n            },\n            disabled && {\n                color: semanticColors.disabledText,\n            },\n        ],\n        description: [\n            classNames.description,\n            {\n                color: semanticColors.bodySubtext,\n                fontSize: fonts.xSmall.fontSize,\n            },\n        ],\n        errorMessage: [\n            classNames.errorMessage,\n            AnimationClassNames.slideDownIn20,\n            fonts.small,\n            {\n                color: semanticColors.errorText,\n                margin: 0,\n                paddingTop: 5,\n                display: 'flex',\n                alignItems: 'center',\n            },\n        ],\n        prefix: [classNames.prefix, fieldPrefixSuffix],\n        suffix: [classNames.suffix, fieldPrefixSuffix],\n        revealButton: [\n            classNames.revealButton,\n            'ms-Button',\n            'ms-Button--icon',\n            getFocusStyle(theme, { inset: 1 }),\n            {\n                height: 30,\n                width: 32,\n                border: 'none',\n                padding: '0px 4px',\n                backgroundColor: 'transparent',\n                color: semanticColors.link,\n                selectors: {\n                    ':hover': {\n                        outline: 0,\n                        color: semanticColors.primaryButtonBackgroundHovered,\n                        backgroundColor: semanticColors.buttonBackgroundHovered,\n                        selectors: (_m = {},\n                            _m[HighContrastSelector] = {\n                                borderColor: 'Highlight',\n                                color: 'Highlight',\n                            },\n                            _m),\n                    },\n                    ':focus': { outline: 0 },\n                },\n            },\n            hasIcon && {\n                marginRight: 28,\n            },\n        ],\n        revealSpan: {\n            display: 'flex',\n            height: '100%',\n            alignItems: 'center',\n        },\n        revealIcon: {\n            margin: '0px 4px',\n            pointerEvents: 'none',\n            bottom: 6,\n            right: 8,\n            top: 'auto',\n            fontSize: IconFontSizes.medium,\n            lineHeight: 18,\n        },\n        subComponentStyles: {\n            label: getLabelStyles(props),\n        },\n    };\n}\n//# sourceMappingURL=TextField.styles.js.map","import { styled } from '../../Utilities';\nimport { TextFieldBase } from './TextField.base';\nimport { getStyles } from './TextField.styles';\nexport var TextField = styled(TextFieldBase, getStyles, undefined, {\n    scope: 'TextField',\n});\n//# sourceMappingURL=TextField.js.map","import { createComponent } from '@fluentui/foundation-legacy';\nimport { TextView } from './Text.view';\nimport { TextStyles as styles } from './Text.styles';\nexport var Text = createComponent(TextView, {\n    displayName: 'Text',\n    styles: styles,\n});\nexport default Text;\n//# sourceMappingURL=Text.js.map","import { __assign, __rest } from \"tslib\";\n/** @jsxRuntime classic */\n/** @jsx withSlots */\nimport { withSlots, getSlots } from '@fluentui/foundation-legacy';\nimport { getNativeProps, htmlElementProperties } from '../../Utilities';\nexport var TextView = function (props) {\n    // eslint-disable-next-line eqeqeq\n    if (props.children == null) {\n        return null;\n    }\n    var block = props.block, className = props.className, _a = props.as, RootType = _a === void 0 ? 'span' : _a, variant = props.variant, nowrap = props.nowrap, rest = __rest(props, [\"block\", \"className\", \"as\", \"variant\", \"nowrap\"]);\n    var Slots = getSlots(props, {\n        root: RootType,\n    });\n    return withSlots(Slots.root, __assign({}, getNativeProps(rest, htmlElementProperties)));\n};\n//# sourceMappingURL=Text.view.js.map","export var TextStyles = function (props, theme) {\n    var as = props.as, className = props.className, block = props.block, nowrap = props.nowrap, variant = props.variant;\n    var fonts = theme.fonts, semanticColors = theme.semanticColors;\n    var variantObject = fonts[variant || 'medium'];\n    return {\n        root: [\n            variantObject,\n            {\n                color: variantObject.color || semanticColors.bodyText,\n                display: block ? (as === 'td' ? 'table-cell' : 'block') : 'inline',\n                mozOsxFontSmoothing: variantObject.MozOsxFontSmoothing,\n                webkitFontSmoothing: variantObject.WebkitFontSmoothing,\n            },\n            nowrap && {\n                whiteSpace: 'nowrap',\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=Text.styles.js.map","import { TimeConstants } from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of minutes.\n * @param date - The origin date\n * @param minutes - The number of minutes to offset. 'minutes' can be negative.\n * @returns A new Date object offset from the origin date by the given number of minutes\n */\nexport var addMinutes = function (date, minutes) {\n    var result = new Date(date.getTime());\n    result.setTime(result.getTime() + minutes * TimeConstants.MinutesInOneHour * TimeConstants.MillisecondsIn1Sec);\n    return result;\n};\n/**\n * Rounds the date's minute up to the next available increment. For example, if `date` has time 1:21\n * and `increments` is 5, the resulting time will be 1:25.\n * @param date - Date to ceil minutes\n * @param increments - Time increments\n * @returns Date with ceiled minute\n */\nexport var ceilMinuteToIncrement = function (date, increments) {\n    var result = new Date(date.getTime());\n    var minute = result.getMinutes();\n    if (TimeConstants.MinutesInOneHour % increments) {\n        result.setMinutes(0);\n    }\n    else {\n        var times = TimeConstants.MinutesInOneHour / increments;\n        for (var i = 1; i <= times; i++) {\n            if (minute > increments * (i - 1) && minute <= increments * i) {\n                minute = increments * i;\n                break;\n            }\n        }\n        result.setMinutes(minute);\n    }\n    return result;\n};\n/**\n * Returns a date object from the selected time.\n * @param useHour12 - If the time picker uses 12 or 24 hour formatting\n * @param dateStartAnchor - The baseline date to calculate the offset of the selected time\n * @param selectedTime - A string representing the user selected time\n * @returns A new date object offset from the baseDate using the selected time.\n */\nexport var getDateFromTimeSelection = function (useHour12, dateStartAnchor, selectedTime) {\n    var _a = TimeConstants.TimeFormatRegex.exec(selectedTime) || [], selectedHours = _a[1], selectedMinutes = _a[2], selectedSeconds = _a[3], selectedAp = _a[4];\n    var hours = +selectedHours;\n    var minutes = +selectedMinutes;\n    var seconds = selectedSeconds ? +selectedSeconds : 0;\n    if (useHour12 && selectedAp) {\n        if (selectedAp.toLowerCase() === 'pm' && hours !== TimeConstants.OffsetTo24HourFormat) {\n            hours += TimeConstants.OffsetTo24HourFormat;\n        }\n        else if (selectedAp.toLowerCase() === 'am' && hours === TimeConstants.OffsetTo24HourFormat) {\n            hours -= TimeConstants.OffsetTo24HourFormat;\n        }\n    }\n    var hoursOffset;\n    if (dateStartAnchor.getHours() > hours ||\n        (dateStartAnchor.getHours() === hours && dateStartAnchor.getMinutes() > minutes)) {\n        hoursOffset = TimeConstants.HoursInOneDay - dateStartAnchor.getHours() + hours;\n    }\n    else {\n        hoursOffset = Math.abs(dateStartAnchor.getHours() - hours);\n    }\n    var offset = TimeConstants.MillisecondsIn1Sec * TimeConstants.MinutesInOneHour * hoursOffset * TimeConstants.SecondsInOneMinute +\n        seconds * TimeConstants.MillisecondsIn1Sec;\n    var date = new Date(dateStartAnchor.getTime() + offset);\n    date.setMinutes(minutes);\n    date.setSeconds(seconds);\n    return date;\n};\n//# sourceMappingURL=timeMath.js.map","/**\n * Format a date object to a localized time string using the browser's default locale\n * @param date - Input date to format\n * @param showSeconds - Whether to show seconds in the formatted string\n * @param useHour12 - Whether to use 12-hour time\n */\nexport var formatTimeString = function (date, showSeconds, useHour12) {\n    var localeTimeString = date.toLocaleTimeString([], {\n        hour: 'numeric',\n        minute: '2-digit',\n        second: showSeconds ? '2-digit' : undefined,\n        hour12: useHour12,\n    });\n    if (!useHour12 && localeTimeString.slice(0, 2) === '24') {\n        localeTimeString = '00' + localeTimeString.slice(2);\n    }\n    return localeTimeString;\n};\n//# sourceMappingURL=index.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes } from '../../Utilities';\nimport { TimeConstants, addMinutes, formatTimeString, ceilMinuteToIncrement, getDateFromTimeSelection, } from '@fluentui/date-time-utilities';\nimport { ComboBox } from '../../ComboBox';\nimport { format } from '../../Utilities';\nimport { useControllableValue, useConst } from '@fluentui/react-hooks';\nvar REGEX_SHOW_SECONDS_HOUR_12 = /^((1[0-2]|0?[1-9]):([0-5][0-9]):([0-5][0-9])\\s([AaPp][Mm]))$/;\nvar REGEX_HIDE_SECONDS_HOUR_12 = /^((1[0-2]|0?[1-9]):[0-5][0-9]\\s([AaPp][Mm]))$/;\nvar REGEX_SHOW_SECONDS_HOUR_24 = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;\nvar REGEX_HIDE_SECONDS_HOUR_24 = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/;\nvar TIME_LOWER_BOUND = 0;\nvar TIME_UPPER_BOUND = 23;\nvar getDefaultStrings = function (useHour12, showSeconds) {\n    var hourUnits = useHour12 ? '12-hour' : '24-hour';\n    var timeFormat = \"hh:mm\".concat(showSeconds ? ':ss' : '').concat(useHour12 ? ' AP' : '');\n    var invalidInputErrorMessage = \"Enter a valid time in the \".concat(hourUnits, \" format: \").concat(timeFormat);\n    var timeOutOfBoundsErrorMessage = \"Please enter a time within the range of {0} and {1}\";\n    return {\n        invalidInputErrorMessage: invalidInputErrorMessage,\n        timeOutOfBoundsErrorMessage: timeOutOfBoundsErrorMessage,\n    };\n};\n/**\n * {@docCategory TimePicker}\n */\nexport var TimePicker = function (_a) {\n    var label = _a.label, _b = _a.increments, increments = _b === void 0 ? 30 : _b, _c = _a.showSeconds, showSeconds = _c === void 0 ? false : _c, _d = _a.allowFreeform, allowFreeform = _d === void 0 ? true : _d, _e = _a.useHour12, useHour12 = _e === void 0 ? false : _e, timeRange = _a.timeRange, _f = _a.strings, strings = _f === void 0 ? getDefaultStrings(useHour12, showSeconds) : _f, defaultValue = _a.defaultValue, value = _a.value, dateAnchor = _a.dateAnchor, onChange = _a.onChange, onFormatDate = _a.onFormatDate, onValidateUserInput = _a.onValidateUserInput, onValidationResult = _a.onValidationResult, rest = __rest(_a, [\"label\", \"increments\", \"showSeconds\", \"allowFreeform\", \"useHour12\", \"timeRange\", \"strings\", \"defaultValue\", \"value\", \"dateAnchor\", \"onChange\", \"onFormatDate\", \"onValidateUserInput\", \"onValidationResult\"]);\n    var _g = React.useState(''), comboBoxText = _g[0], setComboBoxText = _g[1];\n    var _h = React.useState(), selectedKey = _h[0], setSelectedKey = _h[1];\n    var _j = React.useState(''), errorMessage = _j[0], setErrorMessage = _j[1];\n    var fallbackDateAnchor = useConst(new Date());\n    var _k = useControllableValue(value, defaultValue), selectedTime = _k[0], setSelectedTime = _k[1];\n    var optionsCount = getDropdownOptionsCount(increments, timeRange);\n    var internalDateAnchor = dateAnchor || value || defaultValue || fallbackDateAnchor;\n    var dateStartAnchor = React.useMemo(function () { return getDateAnchor(internalDateAnchor, 'start', increments, timeRange); }, [internalDateAnchor, increments, timeRange]);\n    var dateEndAnchor = React.useMemo(function () { return getDateAnchor(internalDateAnchor, 'end', increments, timeRange); }, [internalDateAnchor, increments, timeRange]);\n    var timePickerOptions = React.useMemo(function () {\n        var optionsList = Array(optionsCount);\n        for (var i = 0; i < optionsCount; i++) {\n            optionsList[i] = 0;\n        }\n        return optionsList.map(function (_, index) {\n            var option = addMinutes(dateStartAnchor, increments * index);\n            option.setSeconds(0);\n            var formattedTimeString = formatTimeString(option, showSeconds, useHour12);\n            var optionText = onFormatDate ? onFormatDate(option) : formattedTimeString;\n            return {\n                key: formattedTimeString,\n                text: optionText,\n                data: option,\n            };\n        });\n    }, [dateStartAnchor, increments, optionsCount, showSeconds, onFormatDate, useHour12]);\n    React.useEffect(function () {\n        if (selectedTime && !isNaN(selectedTime.valueOf())) {\n            var formattedTimeString_1 = formatTimeString(selectedTime, showSeconds, useHour12);\n            var comboboxOption = timePickerOptions.find(function (option) { return option.key === formattedTimeString_1; });\n            setSelectedKey(comboboxOption === null || comboboxOption === void 0 ? void 0 : comboboxOption.key);\n            setComboBoxText(comboboxOption ? comboboxOption.text : formattedTimeString_1);\n        }\n        else {\n            setSelectedKey(null);\n        }\n    }, [selectedTime, timePickerOptions, onFormatDate, showSeconds, useHour12]);\n    var onInputChange = React.useCallback(function (ev, option, _index, input) {\n        var validateUserInput = function (userInput) {\n            var errorMessageToDisplay = '';\n            var regex;\n            if (useHour12) {\n                regex = showSeconds ? REGEX_SHOW_SECONDS_HOUR_12 : REGEX_HIDE_SECONDS_HOUR_12;\n            }\n            else {\n                regex = showSeconds ? REGEX_SHOW_SECONDS_HOUR_24 : REGEX_HIDE_SECONDS_HOUR_24;\n            }\n            if (!regex.test(userInput)) {\n                errorMessageToDisplay = strings.invalidInputErrorMessage;\n            }\n            else if (timeRange && strings.timeOutOfBoundsErrorMessage) {\n                var optionDate = getDateFromTimeSelection(useHour12, dateStartAnchor, userInput);\n                if (optionDate < dateStartAnchor || optionDate > dateEndAnchor) {\n                    errorMessageToDisplay = format(strings.timeOutOfBoundsErrorMessage, dateStartAnchor.toString(), dateEndAnchor.toString());\n                }\n            }\n            return errorMessageToDisplay;\n        };\n        var errorMessageToDisplay = '';\n        if (input) {\n            if (allowFreeform && !option) {\n                if (!onFormatDate) {\n                    // Validate only if user did not add onFormatDate\n                    errorMessageToDisplay = validateUserInput(input);\n                }\n                else {\n                    // Use user provided validation if onFormatDate is provided\n                    if (onValidateUserInput) {\n                        errorMessageToDisplay = onValidateUserInput(input);\n                    }\n                }\n            }\n        }\n        if (onValidationResult && errorMessage !== errorMessageToDisplay) {\n            // only call onValidationResult if stored errorMessage state value is different from latest error message\n            onValidationResult(ev, { errorMessage: errorMessageToDisplay });\n        }\n        var changedTime;\n        if (errorMessageToDisplay || (input !== undefined && !input.length)) {\n            var timeSelection = input || (option === null || option === void 0 ? void 0 : option.text) || '';\n            setComboBoxText(timeSelection);\n            setSelectedTime(errorMessageToDisplay ? new Date('invalid') : undefined);\n            changedTime = new Date('invalid');\n        }\n        else {\n            var updatedTime = void 0;\n            if ((option === null || option === void 0 ? void 0 : option.data) instanceof Date) {\n                updatedTime = option.data;\n            }\n            else {\n                var timeSelection = (option === null || option === void 0 ? void 0 : option.key) || input || '';\n                updatedTime = getDateFromTimeSelection(useHour12, dateStartAnchor, timeSelection);\n            }\n            setSelectedTime(updatedTime);\n            changedTime = updatedTime;\n        }\n        onChange === null || onChange === void 0 ? void 0 : onChange(ev, changedTime);\n        setErrorMessage(errorMessageToDisplay);\n    }, [\n        timeRange,\n        dateStartAnchor,\n        dateEndAnchor,\n        allowFreeform,\n        onFormatDate,\n        onValidateUserInput,\n        showSeconds,\n        useHour12,\n        strings.invalidInputErrorMessage,\n        strings.timeOutOfBoundsErrorMessage,\n        setSelectedTime,\n        onValidationResult,\n        onChange,\n        errorMessage,\n    ]);\n    var evaluatePressedKey = function (event) {\n        // eslint-disable-next-line deprecation/deprecation\n        var charCode = event.charCode;\n        if (!onFormatDate &&\n            // Only permit input of digits, space, colon, A/P/M characters\n            !((charCode >= KeyCodes.zero && charCode <= KeyCodes.colon) ||\n                charCode === KeyCodes.space ||\n                charCode === KeyCodes.a ||\n                charCode === KeyCodes.m ||\n                charCode === KeyCodes.p)) {\n            event.preventDefault();\n        }\n    };\n    return (React.createElement(ComboBox, __assign({}, rest, { allowFreeform: allowFreeform, selectedKey: selectedKey, label: label, errorMessage: errorMessage, options: timePickerOptions, onChange: onInputChange, text: comboBoxText, \n        //eslint-disable-next-line\n        onKeyPress: evaluatePressedKey, useComboBoxAsMenuWidth: true })));\n};\nTimePicker.displayName = 'TimePicker';\nvar getDateAnchor = function (internalDateAnchor, startEnd, increments, timeRange) {\n    var clampedDateAnchor = new Date(internalDateAnchor.getTime());\n    if (timeRange) {\n        var clampedTimeRange = clampTimeRange(timeRange);\n        var timeRangeHours = startEnd === 'start' ? clampedTimeRange.start : clampedTimeRange.end;\n        if (clampedDateAnchor.getHours() !== timeRangeHours) {\n            clampedDateAnchor.setHours(timeRangeHours);\n        }\n    }\n    else if (startEnd === 'end') {\n        clampedDateAnchor.setDate(clampedDateAnchor.getDate() + 1);\n    }\n    clampedDateAnchor.setMinutes(0);\n    clampedDateAnchor.setSeconds(0);\n    clampedDateAnchor.setMilliseconds(0);\n    return ceilMinuteToIncrement(clampedDateAnchor, increments);\n};\nvar clampTimeRange = function (timeRange) {\n    return {\n        start: Math.min(Math.max(timeRange.start, TIME_LOWER_BOUND), TIME_UPPER_BOUND),\n        end: Math.min(Math.max(timeRange.end, TIME_LOWER_BOUND), TIME_UPPER_BOUND),\n    };\n};\nvar getHoursInRange = function (timeRange) {\n    var hoursInRange = TimeConstants.HoursInOneDay;\n    if (timeRange) {\n        var clampedTimeRange = clampTimeRange(timeRange);\n        if (clampedTimeRange.start > clampedTimeRange.end) {\n            hoursInRange = TimeConstants.HoursInOneDay - timeRange.start - timeRange.end;\n        }\n        else if (timeRange.end > timeRange.start) {\n            hoursInRange = timeRange.end - timeRange.start;\n        }\n    }\n    return hoursInRange;\n};\nvar getDropdownOptionsCount = function (increments, timeRange) {\n    var hoursInRange = getHoursInRange(timeRange);\n    return Math.floor((TimeConstants.MinutesInOneHour * hoursInRange) / increments);\n};\n//# sourceMappingURL=TimePicker.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId, useWarnings } from '@fluentui/react-hooks';\nimport { classNamesFunction, getNativeProps, inputProperties, useFocusRects } from '@fluentui/utilities';\nimport { Label } from '../Label/Label';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Toggle';\nexport var ToggleBase = React.forwardRef(function (props, forwardedRef) {\n    var _a = props.as, RootType = _a === void 0 ? 'div' : _a, ariaLabel = props.ariaLabel, controlledChecked = props.checked, className = props.className, _b = props.defaultChecked, defaultChecked = _b === void 0 ? false : _b, disabled = props.disabled, inlineLabel = props.inlineLabel, label = props.label, \n    // eslint-disable-next-line deprecation/deprecation\n    offAriaLabel = props.offAriaLabel, offText = props.offText, \n    // eslint-disable-next-line deprecation/deprecation\n    onAriaLabel = props.onAriaLabel, onChange = props.onChange, \n    // eslint-disable-next-line deprecation/deprecation\n    onChanged = props.onChanged, onToggleClick = props.onClick, onText = props.onText, role = props.role, styles = props.styles, theme = props.theme;\n    var _c = useControllableValue(controlledChecked, defaultChecked, React.useCallback(function (ev, isChecked) {\n        onChange === null || onChange === void 0 ? void 0 : onChange(ev, isChecked);\n        onChanged === null || onChanged === void 0 ? void 0 : onChanged(isChecked);\n    }, [onChange, onChanged])), checked = _c[0], setChecked = _c[1];\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        disabled: disabled,\n        checked: checked,\n        inlineLabel: inlineLabel,\n        onOffMissing: !onText && !offText,\n    });\n    var badAriaLabel = checked ? onAriaLabel : offAriaLabel;\n    var id = useId(COMPONENT_NAME, props.id);\n    var labelId = \"\".concat(id, \"-label\");\n    var stateTextId = \"\".concat(id, \"-stateText\");\n    var stateText = checked ? onText : offText;\n    var toggleNativeProps = getNativeProps(props, inputProperties, [\n        'defaultChecked',\n    ]);\n    // The following properties take priority for what Narrator should read:\n    // 1. ariaLabel\n    // 2. onAriaLabel (if checked) or offAriaLabel (if not checked)\n    // 3. label, if existent\n    var labelledById = undefined;\n    if (!ariaLabel && !badAriaLabel) {\n        if (label) {\n            labelledById = labelId;\n        }\n        if (stateText && !labelledById) {\n            labelledById = stateTextId;\n        }\n    }\n    var toggleButton = React.useRef(null);\n    useFocusRects(toggleButton);\n    useComponentRef(props, checked, toggleButton);\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            deprecations: {\n                offAriaLabel: undefined,\n                onAriaLabel: 'ariaLabel',\n                onChanged: 'onChange',\n            },\n            mutuallyExclusive: { checked: 'defaultChecked' },\n        });\n    }\n    var onClick = function (ev) {\n        if (!disabled) {\n            setChecked(!checked, ev);\n            if (onToggleClick) {\n                onToggleClick(ev);\n            }\n        }\n    };\n    var slotProps = {\n        root: {\n            className: classNames.root,\n            hidden: toggleNativeProps.hidden,\n        },\n        label: {\n            children: label,\n            className: classNames.label,\n            htmlFor: id,\n            id: labelId,\n        },\n        container: {\n            className: classNames.container,\n        },\n        pill: __assign(__assign({}, toggleNativeProps), { 'aria-disabled': disabled, 'aria-checked': checked, 'aria-label': ariaLabel ? ariaLabel : badAriaLabel, 'aria-labelledby': labelledById, className: classNames.pill, 'data-is-focusable': true, 'data-ktp-target': true, disabled: disabled, id: id, onClick: onClick, ref: toggleButton, role: role ? role : 'switch', type: 'button' }),\n        thumb: {\n            className: classNames.thumb,\n        },\n        stateText: {\n            children: stateText,\n            className: classNames.text,\n            htmlFor: id,\n            id: stateTextId,\n        },\n    };\n    return (React.createElement(RootType, __assign({ ref: forwardedRef }, slotProps.root),\n        label && React.createElement(Label, __assign({}, slotProps.label)),\n        React.createElement(\"div\", __assign({}, slotProps.container),\n            React.createElement(\"button\", __assign({}, slotProps.pill),\n                React.createElement(\"span\", __assign({}, slotProps.thumb))),\n            ((checked && onText) || offText) && React.createElement(Label, __assign({}, slotProps.stateText)))));\n});\nToggleBase.displayName = COMPONENT_NAME + 'Base';\nvar useComponentRef = function (props, isChecked, toggleButtonRef) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        get checked() {\n            return !!isChecked;\n        },\n        focus: function () {\n            if (toggleButtonRef.current) {\n                toggleButtonRef.current.focus();\n            }\n        },\n    }); }, [isChecked, toggleButtonRef]);\n};\n//# sourceMappingURL=Toggle.base.js.map","import { styled } from '@fluentui/utilities';\nimport { ToggleBase } from './Toggle.base';\nimport { getStyles } from './Toggle.styles';\nexport var Toggle = styled(ToggleBase, getStyles, undefined, {\n    scope: 'Toggle',\n});\n//# sourceMappingURL=Toggle.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getFocusStyle, FontWeights, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nvar DEFAULT_PILL_WIDTH = 40;\nvar DEFAULT_PILL_HEIGHT = 20;\nvar DEFAULT_THUMB_SIZE = 12;\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g;\n    var theme = props.theme, className = props.className, disabled = props.disabled, checked = props.checked, inlineLabel = props.inlineLabel, onOffMissing = props.onOffMissing;\n    var semanticColors = theme.semanticColors, palette = theme.palette;\n    // Tokens\n    var pillUncheckedBackground = semanticColors.bodyBackground;\n    var pillCheckedBackground = semanticColors.inputBackgroundChecked;\n    var pillCheckedHoveredBackground = semanticColors.inputBackgroundCheckedHovered;\n    var thumbUncheckedHoveredBackground = palette.neutralDark;\n    var pillCheckedDisabledBackground = semanticColors.disabledBodySubtext;\n    var thumbBackground = semanticColors.smallInputBorder;\n    var thumbCheckedBackground = semanticColors.inputForegroundChecked;\n    var thumbDisabledBackground = semanticColors.disabledBodySubtext;\n    var thumbCheckedDisabledBackground = semanticColors.disabledBackground;\n    var pillBorderColor = semanticColors.smallInputBorder;\n    var pillBorderHoveredColor = semanticColors.inputBorderHovered;\n    var pillBorderDisabledColor = semanticColors.disabledBodySubtext;\n    var textDisabledColor = semanticColors.disabledText;\n    return {\n        root: [\n            'ms-Toggle',\n            checked && 'is-checked',\n            !disabled && 'is-enabled',\n            disabled && 'is-disabled',\n            theme.fonts.medium,\n            {\n                marginBottom: '8px',\n            },\n            inlineLabel && {\n                display: 'flex',\n                alignItems: 'center',\n            },\n            className,\n        ],\n        label: [\n            'ms-Toggle-label',\n            { display: 'inline-block' },\n            disabled && {\n                color: textDisabledColor,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        color: 'GrayText',\n                    },\n                    _a),\n            },\n            inlineLabel &&\n                !onOffMissing && {\n                marginRight: 16,\n            },\n            onOffMissing &&\n                inlineLabel && {\n                order: 1,\n                marginLeft: 16,\n            },\n            inlineLabel && { wordBreak: 'break-word' },\n        ],\n        container: [\n            'ms-Toggle-innerContainer',\n            {\n                display: 'flex',\n                position: 'relative',\n            },\n        ],\n        pill: [\n            'ms-Toggle-background',\n            getFocusStyle(theme, { inset: -3 }),\n            {\n                fontSize: '20px',\n                boxSizing: 'border-box',\n                width: DEFAULT_PILL_WIDTH,\n                height: DEFAULT_PILL_HEIGHT,\n                borderRadius: DEFAULT_PILL_HEIGHT / 2,\n                transition: 'all 0.1s ease',\n                border: \"1px solid \".concat(pillBorderColor),\n                background: pillUncheckedBackground,\n                cursor: 'pointer',\n                display: 'flex',\n                alignItems: 'center',\n                padding: '0 3px',\n                overflow: 'visible',\n            },\n            !disabled && [\n                !checked && {\n                    selectors: {\n                        ':hover': [\n                            {\n                                borderColor: pillBorderHoveredColor,\n                            },\n                        ],\n                        ':hover .ms-Toggle-thumb': [\n                            {\n                                backgroundColor: thumbUncheckedHoveredBackground,\n                                selectors: (_b = {},\n                                    _b[HighContrastSelector] = {\n                                        borderColor: 'Highlight',\n                                    },\n                                    _b),\n                            },\n                        ],\n                    },\n                },\n                checked && [\n                    {\n                        background: pillCheckedBackground,\n                        borderColor: 'transparent',\n                        justifyContent: 'flex-end',\n                    },\n                    {\n                        selectors: (_c = {\n                                ':hover': [\n                                    {\n                                        backgroundColor: pillCheckedHoveredBackground,\n                                        borderColor: 'transparent',\n                                        selectors: (_d = {},\n                                            _d[HighContrastSelector] = {\n                                                backgroundColor: 'Highlight',\n                                            },\n                                            _d),\n                                    },\n                                ]\n                            },\n                            _c[HighContrastSelector] = __assign({ backgroundColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                            _c),\n                    },\n                ],\n            ],\n            disabled && [\n                {\n                    cursor: 'default',\n                },\n                !checked && [\n                    {\n                        borderColor: pillBorderDisabledColor,\n                    },\n                ],\n                checked && [\n                    {\n                        backgroundColor: pillCheckedDisabledBackground,\n                        borderColor: 'transparent',\n                        justifyContent: 'flex-end',\n                    },\n                ],\n            ],\n            !disabled && {\n                selectors: {\n                    '&:hover': {\n                        selectors: (_e = {},\n                            _e[HighContrastSelector] = {\n                                borderColor: 'Highlight',\n                            },\n                            _e),\n                    },\n                },\n            },\n        ],\n        thumb: [\n            'ms-Toggle-thumb',\n            {\n                display: 'block',\n                width: DEFAULT_THUMB_SIZE,\n                height: DEFAULT_THUMB_SIZE,\n                borderRadius: '50%',\n                transition: 'all 0.1s ease',\n                backgroundColor: thumbBackground,\n                /* Border is added to handle high contrast mode for Firefox */\n                borderColor: 'transparent',\n                borderWidth: DEFAULT_THUMB_SIZE / 2,\n                borderStyle: 'solid',\n                boxSizing: 'border-box',\n            },\n            !disabled &&\n                checked && [\n                {\n                    backgroundColor: thumbCheckedBackground,\n                    selectors: (_f = {},\n                        _f[HighContrastSelector] = {\n                            backgroundColor: 'Window',\n                            borderColor: 'Window',\n                        },\n                        _f),\n                },\n            ],\n            disabled && [\n                !checked && [\n                    {\n                        backgroundColor: thumbDisabledBackground,\n                    },\n                ],\n                checked && [\n                    {\n                        backgroundColor: thumbCheckedDisabledBackground,\n                    },\n                ],\n            ],\n        ],\n        text: [\n            'ms-Toggle-stateText',\n            {\n                selectors: {\n                    // Workaround: make rules more specific than Label rules.\n                    '&&': {\n                        padding: '0',\n                        margin: '0 8px',\n                        userSelect: 'none',\n                        fontWeight: FontWeights.regular,\n                    },\n                },\n            },\n            disabled && {\n                selectors: {\n                    '&&': {\n                        color: textDisabledColor,\n                        selectors: (_g = {},\n                            _g[HighContrastSelector] = {\n                                color: 'GrayText',\n                            },\n                            _g),\n                    },\n                },\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Toggle.styles.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n    TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n    /** 300 ms delay before showing the tooltip */\n    TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n    /** 500 ms delay before showing the tooltip */\n    TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n    __extends(TooltipBase, _super);\n    function TooltipBase() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._onRenderContent = function (props) {\n            if (typeof props.content === 'string') {\n                return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n            }\n            else {\n                return React.createElement(\"div\", { className: _this._classNames.subText }, props.content);\n            }\n        };\n        return _this;\n    }\n    TooltipBase.prototype.render = function () {\n        var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className || (calloutProps && calloutProps.className),\n            beakWidth: calloutProps && calloutProps.isBeakVisible ? calloutProps.beakWidth : 0,\n            gapSpace: calloutProps && calloutProps.gapSpace,\n            maxWidth: maxWidth,\n        });\n        return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n            React.createElement(\"div\", { className: this._classNames.content, id: id, onFocus: this.props.onFocus, onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n    };\n    // Specify default props values\n    TooltipBase.defaultProps = {\n        directionalHint: DirectionalHint.topCenter,\n        maxWidth: '364px',\n        calloutProps: {\n            isBeakVisible: true,\n            beakWidth: 16,\n            gapSpace: 0,\n            setInitialFocus: true,\n            doNotLayer: false,\n        },\n    };\n    return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n    scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n    var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n    // The math here is done to account for the 45 degree rotation of the beak\n    // and sub-pixel rounding that differs across browsers, which is more noticeable when\n    // the device pixel ratio is larger\n    var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) + 1 / window.devicePixelRatio;\n    return {\n        root: [\n            'ms-Tooltip',\n            theme.fonts.medium,\n            AnimationClassNames.fadeIn200,\n            {\n                background: semanticColors.menuBackground,\n                boxShadow: effects.elevation8,\n                padding: '8px',\n                maxWidth: maxWidth,\n                selectors: {\n                    ':after': {\n                        content: \"''\",\n                        position: 'absolute',\n                        bottom: tooltipGapSpace,\n                        left: tooltipGapSpace,\n                        right: tooltipGapSpace,\n                        top: tooltipGapSpace,\n                        zIndex: 0,\n                    },\n                },\n            },\n            className,\n        ],\n        content: [\n            'ms-Tooltip-content',\n            fonts.small,\n            {\n                position: 'relative',\n                zIndex: 1,\n                color: semanticColors.menuItemText,\n                wordWrap: 'break-word',\n                overflowWrap: 'break-word',\n                overflow: 'hidden',\n            },\n        ],\n        subText: [\n            'ms-Tooltip-subtext',\n            {\n                // Using inherit here to avoid unintentional global overrides of the <p> tag.\n                fontSize: 'inherit',\n                fontWeight: 'inherit',\n                color: 'inherit',\n                margin: 0,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n    __extends(TooltipHostBase, _super);\n    // Constructor\n    function TooltipHostBase(props) {\n        var _this = _super.call(this, props) || this;\n        // The wrapping div that gets the hover events\n        _this._tooltipHost = React.createRef();\n        _this._defaultTooltipId = getId('tooltip');\n        _this.show = function () {\n            _this._toggleTooltip(true);\n        };\n        _this.dismiss = function () {\n            _this._hideTooltip();\n        };\n        _this._getTargetElement = function () {\n            if (!_this._tooltipHost.current) {\n                return undefined;\n            }\n            var overflowMode = _this.props.overflowMode;\n            // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n            // to the parent element, otherwise it might look off.\n            if (overflowMode !== undefined) {\n                switch (overflowMode) {\n                    case TooltipOverflowMode.Parent:\n                        return _this._tooltipHost.current.parentElement;\n                    case TooltipOverflowMode.Self:\n                        return _this._tooltipHost.current;\n                }\n            }\n            return _this._tooltipHost.current;\n        };\n        _this._onTooltipFocus = function (ev) {\n            if (_this._ignoreNextFocusEvent) {\n                _this._ignoreNextFocusEvent = false;\n                return;\n            }\n            _this._onTooltipMouseEnter(ev);\n        };\n        _this._onTooltipContentFocus = function (ev) {\n            if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n                TooltipHostBase._currentVisibleTooltip.dismiss();\n            }\n            TooltipHostBase._currentVisibleTooltip = _this;\n            _this._clearDismissTimer();\n            _this._clearOpenTimer();\n        };\n        _this._onTooltipBlur = function (ev) {\n            // The focused element gets a blur event when the document loses focus\n            // (e.g. switching tabs in the browser), but we don't want to show the\n            // tooltip again when the document gets focus back. Handle this case by\n            // checking if the blurred element is still the document's activeElement,\n            // and ignoring when it next gets focus back.\n            // See https://github.com/microsoft/fluentui/issues/13541\n            _this._ignoreNextFocusEvent = (document === null || document === void 0 ? void 0 : document.activeElement) === ev.target;\n            _this._dismissTimerId = _this._async.setTimeout(function () {\n                _this._hideTooltip();\n            }, 0);\n        };\n        // Show Tooltip\n        _this._onTooltipMouseEnter = function (ev) {\n            var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n            if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n                TooltipHostBase._currentVisibleTooltip.dismiss();\n            }\n            TooltipHostBase._currentVisibleTooltip = _this;\n            if (overflowMode !== undefined) {\n                var overflowElement = _this._getTargetElement();\n                if (overflowElement && !hasOverflow(overflowElement)) {\n                    return;\n                }\n            }\n            if (ev.target && portalContainsElement(ev.target, _this._getTargetElement())) {\n                // Do not show tooltip when target is inside a portal relative to TooltipHost.\n                return;\n            }\n            _this._clearDismissTimer();\n            _this._clearOpenTimer();\n            if (delay !== TooltipDelay.zero) {\n                var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n                _this._openTimerId = _this._async.setTimeout(function () {\n                    _this._toggleTooltip(true);\n                }, delayTime);\n            }\n            else {\n                _this._toggleTooltip(true);\n            }\n        };\n        // Hide Tooltip\n        _this._onTooltipMouseLeave = function (ev) {\n            var closeDelay = _this.props.closeDelay;\n            _this._clearDismissTimer();\n            _this._clearOpenTimer();\n            if (closeDelay) {\n                _this._dismissTimerId = _this._async.setTimeout(function () {\n                    _this._toggleTooltip(false);\n                }, closeDelay);\n            }\n            else {\n                _this._toggleTooltip(false);\n            }\n            if (TooltipHostBase._currentVisibleTooltip === _this) {\n                TooltipHostBase._currentVisibleTooltip = undefined;\n            }\n        };\n        _this._onTooltipKeyDown = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n                _this._hideTooltip();\n                ev.stopPropagation();\n            }\n        };\n        _this._clearDismissTimer = function () {\n            _this._async.clearTimeout(_this._dismissTimerId);\n        };\n        _this._clearOpenTimer = function () {\n            _this._async.clearTimeout(_this._openTimerId);\n        };\n        // Hide Tooltip\n        _this._hideTooltip = function () {\n            _this._clearOpenTimer();\n            _this._clearDismissTimer();\n            _this._toggleTooltip(false);\n        };\n        _this._toggleTooltip = function (isTooltipVisible) {\n            if (_this.state.isTooltipVisible !== isTooltipVisible) {\n                _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n            }\n        };\n        _this._getDelayTime = function (delay) {\n            switch (delay) {\n                case TooltipDelay.medium:\n                    return 300;\n                case TooltipDelay.long:\n                    return 500;\n                default:\n                    return 0;\n            }\n        };\n        initializeComponentRef(_this);\n        _this.state = {\n            isAriaPlaceholderRendered: false,\n            isTooltipVisible: false,\n        };\n        _this._async = new Async(_this);\n        return _this;\n    }\n    // Render\n    TooltipHostBase.prototype.render = function () {\n        var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, \n        // eslint-disable-next-line deprecation/deprecation\n        _b = _a.setAriaDescribedBy, \n        // eslint-disable-next-line deprecation/deprecation\n        setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n        var isTooltipVisible = this.state.isTooltipVisible;\n        var tooltipId = id || this._defaultTooltipId;\n        var tooltipRenderProps = __assign(__assign({ id: \"\".concat(tooltipId, \"--tooltip\"), content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n                onDismiss: this._hideTooltip,\n                onFocus: this._onTooltipContentFocus,\n                onMouseEnter: this._onTooltipMouseEnter,\n                onMouseLeave: this._onTooltipMouseLeave,\n            }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id'])), tooltipProps);\n        // Get the content of the tooltip for use in the hidden div used for screen readers\n        var tooltipContent = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.onRenderContent)\n            ? tooltipProps.onRenderContent(tooltipRenderProps, function (props) { return ((props === null || props === void 0 ? void 0 : props.content) ? React.createElement(React.Fragment, null, props.content) : null); })\n            : content;\n        var showTooltip = isTooltipVisible && !!tooltipContent;\n        var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && !!tooltipContent ? tooltipId : undefined;\n        return (React.createElement(\"div\", __assign({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipFocus }, { onBlurCapture: this._onTooltipBlur }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, role: \"none\", \"aria-describedby\": ariaDescribedBy }),\n            children,\n            showTooltip && React.createElement(Tooltip, __assign({}, tooltipRenderProps)),\n            React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, tooltipContent)));\n    };\n    TooltipHostBase.prototype.componentWillUnmount = function () {\n        if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n            TooltipHostBase._currentVisibleTooltip = undefined;\n        }\n        this._async.dispose();\n    };\n    TooltipHostBase.defaultProps = {\n        delay: TooltipDelay.medium,\n    };\n    return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n    return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasVerticalOverflow(element) {\n    return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasOverflow(element) {\n    return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}\n//# sourceMappingURL=overflow.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-TooltipHost',\n    ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            {\n                display: 'inline',\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n    scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n    /** Only show tooltip if parent DOM element is overflowing */\n    TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n    /**\n     * Only show tooltip if tooltip host's content is overflowing.\n     * Note that this does not check the children for overflow, only the TooltipHost root.\n     */\n    TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","/**\n * Enum to help identify which suggestions action button is selected.\n * {@docCategory Pickers}\n */\nexport var SuggestionActionType;\n(function (SuggestionActionType) {\n    /** None of the actions is selected. */\n    SuggestionActionType[SuggestionActionType[\"none\"] = 0] = \"none\";\n    /** ForceResolve action is selected. */\n    SuggestionActionType[SuggestionActionType[\"forceResolve\"] = 1] = \"forceResolve\";\n    /** SearchMore action is selected. */\n    SuggestionActionType[SuggestionActionType[\"searchMore\"] = 2] = \"searchMore\";\n})(SuggestionActionType || (SuggestionActionType = {}));\n//# sourceMappingURL=Suggestions.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Announced}\n */\nvar AnnouncedBase = /** @class */ (function (_super) {\n    __extends(AnnouncedBase, _super);\n    function AnnouncedBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    AnnouncedBase.prototype.render = function () {\n        var _a = this.props, message = _a.message, styles = _a.styles, _b = _a.as, Root = _b === void 0 ? 'div' : _b, className = _a.className;\n        var classNames = getClassNames(styles, { className: className });\n        return (React.createElement(Root, __assign({ role: \"status\", className: classNames.root }, getNativeProps(this.props, divProperties, ['className'])),\n            React.createElement(DelayedRender, null,\n                React.createElement(\"div\", { className: classNames.screenReaderText }, message))));\n    };\n    AnnouncedBase.defaultProps = {\n        'aria-live': 'polite',\n    };\n    return AnnouncedBase;\n}(React.Component));\nexport { AnnouncedBase };\n//# sourceMappingURL=Announced.base.js.map","import { styled } from '../../Utilities';\nimport { AnnouncedBase } from './Announced.base';\nimport { getStyles } from './Announced.styles';\nexport var Announced = styled(AnnouncedBase, getStyles);\n//# sourceMappingURL=Announced.js.map","import { hiddenContentStyle } from '../../Styling';\nexport var getStyles = function (props) {\n    return {\n        root: props.className,\n        screenReaderText: hiddenContentStyle,\n    };\n};\n//# sourceMappingURL=Announced.styles.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".root_8c91000a{min-width:260px}.suggestionsItem_8c91000a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:relative;overflow:hidden}.suggestionsItem_8c91000a:hover{background:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}.suggestionsItem_8c91000a:hover .closeButton_8c91000a{display:block}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a:hover{background:Highlight;color:HighlightText}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a{background:Highlight;color:HighlightText;-ms-high-contrast-adjust:none}}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a .closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a .itemButton_8c91000a{color:HighlightText}}.suggestionsItem_8c91000a .closeButton_8c91000a{display:none;color:\" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.suggestionsItem_8c91000a .closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.actionButton_8c91000a{background-color:transparent;border:0;cursor:pointer;margin:0;position:relative;border-top:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";height:40px;width:100%;font-size:12px}[dir=ltr] .actionButton_8c91000a{padding-left:8px}[dir=rtl] .actionButton_8c91000a{padding-right:8px}html[dir=ltr] .actionButton_8c91000a{text-align:left}html[dir=rtl] .actionButton_8c91000a{text-align:right}.actionButton_8c91000a:hover{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";cursor:pointer}.actionButton_8c91000a:active,.actionButton_8c91000a:focus{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.actionButton_8c91000a .ms-Button-icon{font-size:16px;width:25px}.actionButton_8c91000a .ms-Button-label{margin:0 4px 0 9px}html[dir=rtl] .actionButton_8c91000a .ms-Button-label{margin:0 9px 0 4px}.buttonSelected_8c91000a{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.suggestionsTitle_8c91000a{padding:0 12px;color:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";font-size:12px;line-height:40px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsContainer_8c91000a{overflow-y:auto;overflow-x:hidden;max-height:300px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsNone_8c91000a{text-align:center;color:#797775;font-size:12px;line-height:30px}.suggestionsSpinner_8c91000a{margin:5px 0;white-space:nowrap;line-height:20px;font-size:12px}html[dir=ltr] .suggestionsSpinner_8c91000a{padding-left:14px}html[dir=rtl] .suggestionsSpinner_8c91000a{padding-right:14px}html[dir=ltr] .suggestionsSpinner_8c91000a{text-align:left}html[dir=rtl] .suggestionsSpinner_8c91000a{text-align:right}.suggestionsSpinner_8c91000a .ms-Spinner-circle{display:inline-block;vertical-align:middle}.suggestionsSpinner_8c91000a .ms-Spinner-label{display:inline-block;margin:0 10px 0 16px;vertical-align:middle}html[dir=rtl] .suggestionsSpinner_8c91000a .ms-Spinner-label{margin:0 16px 0 10px}.itemButton_8c91000a.itemButton_8c91000a{width:100%;padding:0;min-width:0;height:100%}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.itemButton_8c91000a.itemButton_8c91000a{color:WindowText}}.itemButton_8c91000a.itemButton_8c91000a:hover{color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.closeButton_8c91000a.closeButton_8c91000a{padding:0 4px;height:auto;width:32px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.closeButton_8c91000a.closeButton_8c91000a{color:WindowText}}.closeButton_8c91000a.closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.suggestionsAvailable_8c91000a{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var root = \"root_8c91000a\";\nexport var suggestionsItem = \"suggestionsItem_8c91000a\";\nexport var closeButton = \"closeButton_8c91000a\";\nexport var suggestionsItemIsSuggested = \"suggestionsItemIsSuggested_8c91000a\";\nexport var itemButton = \"itemButton_8c91000a\";\nexport var actionButton = \"actionButton_8c91000a\";\nexport var buttonSelected = \"buttonSelected_8c91000a\";\nexport var suggestionsTitle = \"suggestionsTitle_8c91000a\";\nexport var suggestionsContainer = \"suggestionsContainer_8c91000a\";\nexport var suggestionsNone = \"suggestionsNone_8c91000a\";\nexport var suggestionsSpinner = \"suggestionsSpinner_8c91000a\";\nexport var suggestionsAvailable = \"suggestionsAvailable_8c91000a\";\n//# sourceMappingURL=Suggestions.scss.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, initializeComponentRef } from '../../../Utilities';\nimport { CommandButton, IconButton } from '../../../Button';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Pickers}\n */\nvar SuggestionsItem = /** @class */ (function (_super) {\n    __extends(SuggestionsItem, _super);\n    function SuggestionsItem(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        return _this;\n    }\n    SuggestionsItem.prototype.render = function () {\n        var _a;\n        var _b = this.props, suggestionModel = _b.suggestionModel, RenderSuggestion = _b.RenderSuggestion, onClick = _b.onClick, className = _b.className, id = _b.id, onRemoveItem = _b.onRemoveItem, isSelectedOverride = _b.isSelectedOverride, removeButtonAriaLabel = _b.removeButtonAriaLabel, styles = _b.styles, theme = _b.theme, removeButtonIconProps = _b.removeButtonIconProps;\n        // TODO\n        // Clean this up by leaving only the first part after removing support for SASS.\n        // Currently we can not remove the SASS styles from SuggestionsItem class because it\n        // might be used by consumers separately from pickers extending from BasePicker\n        // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n        // we can not use the 'styled' function without adding some helpers which can break\n        // downstream consumers who did not use the new helpers.\n        // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n        // in Suggestions when the typed SuggestionsItem class is ready to be rendered. If the\n        // check passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n        // then we just use the old SASS styles instead.\n        var classNames = styles\n            ? getClassNames(styles, {\n                theme: theme,\n                className: className,\n                suggested: suggestionModel.selected || isSelectedOverride,\n            })\n            : {\n                root: css('ms-Suggestions-item', legacyStyles.suggestionsItem, (_a = {},\n                    _a['is-suggested ' + legacyStyles.suggestionsItemIsSuggested] = suggestionModel.selected || isSelectedOverride,\n                    _a), className),\n                itemButton: css('ms-Suggestions-itemButton', legacyStyles.itemButton),\n                closeButton: css('ms-Suggestions-closeButton', legacyStyles.closeButton),\n            };\n        return (React.createElement(\"div\", { className: classNames.root, role: \"presentation\" },\n            React.createElement(CommandButton, { onClick: onClick, className: classNames.itemButton, id: id, \"aria-selected\": suggestionModel.selected, role: \"option\", \"aria-label\": suggestionModel.ariaLabel }, RenderSuggestion(suggestionModel.item, this.props)),\n            this.props.showRemoveButton ? (React.createElement(IconButton, { iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, title: removeButtonAriaLabel, ariaLabel: removeButtonAriaLabel, onClick: onRemoveItem, className: classNames.closeButton })) : null));\n    };\n    return SuggestionsItem;\n}(React.Component));\nexport { SuggestionsItem };\n//# sourceMappingURL=SuggestionsItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, KeyCodes, classNamesFunction, css, styled } from '../../../Utilities';\nimport { CommandButton } from '../../../Button';\nimport { Spinner } from '../../../Spinner';\nimport { Announced } from '../../../Announced';\nimport { SuggestionActionType } from './Suggestions.types';\nimport { SuggestionsItem } from './SuggestionsItem';\nimport { getStyles as suggestionsItemStyles } from './SuggestionsItem.styles';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\nvar StyledSuggestionsItem = styled(SuggestionsItem, suggestionsItemStyles, undefined, {\n    scope: 'SuggestionItem',\n});\n/**\n * {@docCategory Pickers}\n */\nvar Suggestions = /** @class */ (function (_super) {\n    __extends(Suggestions, _super);\n    function Suggestions(suggestionsProps) {\n        var _this = _super.call(this, suggestionsProps) || this;\n        _this._forceResolveButton = React.createRef();\n        _this._searchForMoreButton = React.createRef();\n        _this._selectedElement = React.createRef();\n        _this._scrollContainer = React.createRef();\n        /**\n         * Returns true if the event was handled, false otherwise\n         */\n        _this.tryHandleKeyDown = function (keyCode, currentSuggestionIndex) {\n            var isEventHandled = false;\n            var newSelectedActionType = null;\n            var currentSelectedAction = _this.state.selectedActionType;\n            var suggestionLength = _this.props.suggestions.length;\n            if (keyCode === KeyCodes.down) {\n                switch (currentSelectedAction) {\n                    case SuggestionActionType.forceResolve:\n                        if (suggestionLength > 0) {\n                            _this._refocusOnSuggestions(keyCode);\n                            newSelectedActionType = SuggestionActionType.none;\n                        }\n                        else if (_this._searchForMoreButton.current) {\n                            newSelectedActionType = SuggestionActionType.searchMore;\n                        }\n                        else {\n                            newSelectedActionType = SuggestionActionType.forceResolve;\n                        }\n                        break;\n                    case SuggestionActionType.searchMore:\n                        if (_this._forceResolveButton.current) {\n                            newSelectedActionType = SuggestionActionType.forceResolve;\n                        }\n                        else if (suggestionLength > 0) {\n                            _this._refocusOnSuggestions(keyCode);\n                            newSelectedActionType = SuggestionActionType.none;\n                        }\n                        else {\n                            newSelectedActionType = SuggestionActionType.searchMore;\n                        }\n                        break;\n                    case SuggestionActionType.none:\n                        if (currentSuggestionIndex === -1 && _this._forceResolveButton.current) {\n                            newSelectedActionType = SuggestionActionType.forceResolve;\n                        }\n                        break;\n                }\n            }\n            else if (keyCode === KeyCodes.up) {\n                switch (currentSelectedAction) {\n                    case SuggestionActionType.forceResolve:\n                        if (_this._searchForMoreButton.current) {\n                            newSelectedActionType = SuggestionActionType.searchMore;\n                        }\n                        else if (suggestionLength > 0) {\n                            _this._refocusOnSuggestions(keyCode);\n                            newSelectedActionType = SuggestionActionType.none;\n                        }\n                        break;\n                    case SuggestionActionType.searchMore:\n                        if (suggestionLength > 0) {\n                            _this._refocusOnSuggestions(keyCode);\n                            newSelectedActionType = SuggestionActionType.none;\n                        }\n                        else if (_this._forceResolveButton.current) {\n                            newSelectedActionType = SuggestionActionType.forceResolve;\n                        }\n                        break;\n                    case SuggestionActionType.none:\n                        if (currentSuggestionIndex === -1 && _this._searchForMoreButton.current) {\n                            newSelectedActionType = SuggestionActionType.searchMore;\n                        }\n                        break;\n                }\n            }\n            if (newSelectedActionType !== null) {\n                _this.setState({ selectedActionType: newSelectedActionType });\n                isEventHandled = true;\n            }\n            return isEventHandled;\n        };\n        _this._getAlertText = function () {\n            var _a = _this.props, isLoading = _a.isLoading, isSearching = _a.isSearching, suggestions = _a.suggestions, suggestionsAvailableAlertText = _a.suggestionsAvailableAlertText, noResultsFoundText = _a.noResultsFoundText, isExtendedLoading = _a.isExtendedLoading, loadingText = _a.loadingText;\n            if (!isLoading && !isSearching) {\n                if (suggestions.length > 0) {\n                    return suggestionsAvailableAlertText || '';\n                }\n                if (noResultsFoundText) {\n                    return noResultsFoundText;\n                }\n            }\n            else if (isLoading && isExtendedLoading) {\n                return loadingText || '';\n            }\n            return '';\n        };\n        _this._getMoreResults = function () {\n            if (_this.props.onGetMoreResults) {\n                _this.props.onGetMoreResults();\n                // Reset selected action type as it will be of type SuggestionActionType.none after more results are gotten\n                _this.setState({ selectedActionType: SuggestionActionType.none });\n            }\n        };\n        _this._forceResolve = function () {\n            if (_this.props.createGenericItem) {\n                _this.props.createGenericItem();\n            }\n        };\n        _this._shouldShowForceResolve = function () {\n            return _this.props.showForceResolve ? _this.props.showForceResolve() : false;\n        };\n        _this._onClickTypedSuggestionsItem = function (item, index) {\n            return function (ev) {\n                _this.props.onSuggestionClick(ev, item, index);\n            };\n        };\n        _this._refocusOnSuggestions = function (keyCode) {\n            if (typeof _this.props.refocusSuggestions === 'function') {\n                _this.props.refocusSuggestions(keyCode);\n            }\n        };\n        _this._onRemoveTypedSuggestionsItem = function (item, index) {\n            return function (ev) {\n                var onSuggestionRemove = _this.props.onSuggestionRemove;\n                onSuggestionRemove(ev, item, index);\n                ev.stopPropagation();\n            };\n        };\n        initializeComponentRef(_this);\n        _this.state = {\n            selectedActionType: SuggestionActionType.none,\n        };\n        return _this;\n    }\n    Suggestions.prototype.componentDidMount = function () {\n        this.scrollSelected();\n        this.activeSelectedElement = this._selectedElement ? this._selectedElement.current : null;\n    };\n    Suggestions.prototype.componentDidUpdate = function () {\n        // Only scroll to selected element if the selected element has changed. Otherwise do nothing.\n        // This prevents some odd behavior where scrolling the active element out of view and clicking on a selected element\n        // will trigger a focus event and not give the clicked element the click.\n        if (this._selectedElement.current && this.activeSelectedElement !== this._selectedElement.current) {\n            this.scrollSelected();\n            this.activeSelectedElement = this._selectedElement.current;\n        }\n    };\n    Suggestions.prototype.render = function () {\n        var _a, _b;\n        var _this = this;\n        var _c = this.props, forceResolveText = _c.forceResolveText, mostRecentlyUsedHeaderText = _c.mostRecentlyUsedHeaderText, searchForMoreIcon = _c.searchForMoreIcon, searchForMoreText = _c.searchForMoreText, className = _c.className, moreSuggestionsAvailable = _c.moreSuggestionsAvailable, noResultsFoundText = _c.noResultsFoundText, suggestions = _c.suggestions, isLoading = _c.isLoading, isSearching = _c.isSearching, loadingText = _c.loadingText, onRenderNoResultFound = _c.onRenderNoResultFound, searchingText = _c.searchingText, isMostRecentlyUsedVisible = _c.isMostRecentlyUsedVisible, resultsMaximumNumber = _c.resultsMaximumNumber, resultsFooterFull = _c.resultsFooterFull, resultsFooter = _c.resultsFooter, _d = _c.isResultsFooterVisible, isResultsFooterVisible = _d === void 0 ? true : _d, suggestionsHeaderText = _c.suggestionsHeaderText, suggestionsClassName = _c.suggestionsClassName, theme = _c.theme, styles = _c.styles, suggestionsListId = _c.suggestionsListId, suggestionsContainerAriaLabel = _c.suggestionsContainerAriaLabel;\n        // TODO\n        // Clean this up by leaving only the first part after removing support for SASS.\n        // Currently we can not remove the SASS styles from Suggestions class because it\n        // might be used by consumers separately from pickers extending from BasePicker\n        // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n        // we can not use the 'styled' function without adding some helpers which can break\n        // downstream consumers who did not use the new helpers.\n        // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n        // in BasePicker when the typed Suggestions class is ready to be rendered. If the check\n        // passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n        // then we just use the old SASS styles instead.\n        this._classNames = styles\n            ? getClassNames(styles, {\n                theme: theme,\n                className: className,\n                suggestionsClassName: suggestionsClassName,\n                forceResolveButtonSelected: this.state.selectedActionType === SuggestionActionType.forceResolve,\n                searchForMoreButtonSelected: this.state.selectedActionType === SuggestionActionType.searchMore,\n            })\n            : {\n                root: css('ms-Suggestions', className, legacyStyles.root),\n                title: css('ms-Suggestions-title', legacyStyles.suggestionsTitle),\n                searchForMoreButton: css('ms-SearchMore-button', legacyStyles.actionButton, (_a = {},\n                    _a['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.searchMore,\n                    _a)),\n                forceResolveButton: css('ms-forceResolve-button', legacyStyles.actionButton, (_b = {},\n                    _b['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.forceResolve,\n                    _b)),\n                suggestionsAvailable: css('ms-Suggestions-suggestionsAvailable', legacyStyles.suggestionsAvailable),\n                suggestionsContainer: css('ms-Suggestions-container', legacyStyles.suggestionsContainer, suggestionsClassName),\n                noSuggestions: css('ms-Suggestions-none', legacyStyles.suggestionsNone),\n            };\n        var spinnerStyles = this._classNames.subComponentStyles\n            ? this._classNames.subComponentStyles.spinner\n            : undefined;\n        // TODO: cleanup after refactor of pickers to composition pattern and remove SASS support.\n        var spinnerClassNameOrStyles = styles\n            ? { styles: spinnerStyles }\n            : {\n                className: css('ms-Suggestions-spinner', legacyStyles.suggestionsSpinner),\n            };\n        var noResults = function () {\n            var defaultRender = function () {\n                return React.createElement(\"div\", { className: _this._classNames.noSuggestions }, noResultsFoundText);\n            };\n            return (\n            // This ID can be used by the parent to set aria-activedescendant to this\n            React.createElement(\"div\", { id: \"sug-noResultsFound\", role: \"option\" }, onRenderNoResultFound ? onRenderNoResultFound(undefined, defaultRender) : defaultRender()));\n        };\n        // MostRecently Used text should supercede the header text if it's there and available.\n        var headerText = suggestionsHeaderText;\n        if (isMostRecentlyUsedVisible && mostRecentlyUsedHeaderText) {\n            headerText = mostRecentlyUsedHeaderText;\n        }\n        var footerTitle = undefined;\n        if (isResultsFooterVisible) {\n            footerTitle = suggestions.length >= resultsMaximumNumber ? resultsFooterFull : resultsFooter;\n        }\n        var hasNoSuggestions = (!suggestions || !suggestions.length) && !isLoading;\n        var forceResolveId = this.state.selectedActionType === SuggestionActionType.forceResolve ? 'sug-selectedAction' : undefined;\n        var searchForMoreId = this.state.selectedActionType === SuggestionActionType.searchMore ? 'sug-selectedAction' : undefined;\n        return (React.createElement(\"div\", { className: this._classNames.root, \"aria-label\": suggestionsContainerAriaLabel || headerText, id: suggestionsListId, role: \"listbox\" },\n            React.createElement(Announced, { message: this._getAlertText(), \"aria-live\": \"polite\" }),\n            headerText ? React.createElement(\"div\", { className: this._classNames.title }, headerText) : null,\n            forceResolveText && this._shouldShowForceResolve() && (React.createElement(CommandButton, { componentRef: this._forceResolveButton, className: this._classNames.forceResolveButton, id: forceResolveId, onClick: this._forceResolve, \"data-automationid\": 'sug-forceResolve' }, forceResolveText)),\n            isLoading && React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { ariaLabel: loadingText, label: loadingText })),\n            hasNoSuggestions ? noResults() : this._renderSuggestions(),\n            searchForMoreText && moreSuggestionsAvailable && (React.createElement(CommandButton, { componentRef: this._searchForMoreButton, className: this._classNames.searchForMoreButton, iconProps: searchForMoreIcon || { iconName: 'Search' }, id: searchForMoreId, onClick: this._getMoreResults, \"data-automationid\": 'sug-searchForMore', role: 'option' }, searchForMoreText)),\n            isSearching ? React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { ariaLabel: searchingText, label: searchingText })) : null,\n            footerTitle && !moreSuggestionsAvailable && !isMostRecentlyUsedVisible && !isSearching ? (React.createElement(\"div\", { className: this._classNames.title }, footerTitle(this.props))) : null));\n    };\n    Suggestions.prototype.hasSuggestedAction = function () {\n        return !!this._searchForMoreButton.current || !!this._forceResolveButton.current;\n    };\n    Suggestions.prototype.hasSuggestedActionSelected = function () {\n        return this.state.selectedActionType !== SuggestionActionType.none;\n    };\n    Suggestions.prototype.executeSelectedAction = function () {\n        switch (this.state.selectedActionType) {\n            case SuggestionActionType.forceResolve:\n                this._forceResolve();\n                break;\n            case SuggestionActionType.searchMore:\n                this._getMoreResults();\n                break;\n        }\n    };\n    Suggestions.prototype.focusAboveSuggestions = function () {\n        if (this._forceResolveButton.current) {\n            this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n        }\n        else if (this._searchForMoreButton.current) {\n            this.setState({ selectedActionType: SuggestionActionType.searchMore });\n        }\n    };\n    Suggestions.prototype.focusBelowSuggestions = function () {\n        if (this._searchForMoreButton.current) {\n            this.setState({ selectedActionType: SuggestionActionType.searchMore });\n        }\n        else if (this._forceResolveButton.current) {\n            this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n        }\n    };\n    Suggestions.prototype.focusSearchForMoreButton = function () {\n        if (this._searchForMoreButton.current) {\n            this._searchForMoreButton.current.focus();\n        }\n    };\n    Suggestions.prototype.scrollSelected = function () {\n        if (this._selectedElement.current &&\n            this._scrollContainer.current &&\n            this._scrollContainer.current.scrollTo !== undefined) {\n            var _a = this._selectedElement.current, offsetHeight = _a.offsetHeight, offsetTop = _a.offsetTop;\n            var _b = this._scrollContainer.current, parentOffsetHeight = _b.offsetHeight, scrollTop = _b.scrollTop;\n            var isAbove = offsetTop < scrollTop;\n            var isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n            if (isAbove) {\n                this._scrollContainer.current.scrollTo(0, offsetTop);\n            }\n            else if (isBelow) {\n                this._scrollContainer.current.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\n            }\n        }\n    };\n    Suggestions.prototype._renderSuggestions = function () {\n        var _this = this;\n        var _a = this.props, onRenderSuggestion = _a.onRenderSuggestion, removeSuggestionAriaLabel = _a.removeSuggestionAriaLabel, suggestionsItemClassName = _a.suggestionsItemClassName, resultsMaximumNumber = _a.resultsMaximumNumber, showRemoveButtons = _a.showRemoveButtons, removeButtonIconProps = _a.removeButtonIconProps;\n        var suggestions = this.props.suggestions;\n        var StyledTypedSuggestionsItem = StyledSuggestionsItem;\n        var selectedIndex = -1;\n        suggestions.some(function (element, index) {\n            if (element.selected) {\n                selectedIndex = index;\n                return true;\n            }\n            return false;\n        });\n        if (resultsMaximumNumber) {\n            suggestions =\n                selectedIndex >= resultsMaximumNumber\n                    ? suggestions.slice(selectedIndex - resultsMaximumNumber + 1, selectedIndex + 1)\n                    : suggestions.slice(0, resultsMaximumNumber);\n        }\n        if (suggestions.length === 0) {\n            return null;\n        }\n        return (React.createElement(\"div\", { className: this._classNames.suggestionsContainer, ref: this._scrollContainer, role: \"presentation\" }, suggestions.map(function (suggestion, index) { return (React.createElement(\"div\", { ref: suggestion.selected ? _this._selectedElement : undefined, key: suggestion.item.key ? suggestion.item.key : index, role: \"presentation\" },\n            React.createElement(StyledTypedSuggestionsItem, { suggestionModel: suggestion, RenderSuggestion: onRenderSuggestion, onClick: _this._onClickTypedSuggestionsItem(suggestion.item, index), className: suggestionsItemClassName, showRemoveButton: showRemoveButtons, removeButtonAriaLabel: removeSuggestionAriaLabel, onRemoveItem: _this._onRemoveTypedSuggestionsItem(suggestion.item, index), id: 'sug-' + index, removeButtonIconProps: removeButtonIconProps }))); })));\n    };\n    return Suggestions;\n}(React.Component));\nexport { Suggestions };\n//# sourceMappingURL=Suggestions.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getHighContrastNoAdjustStyle, HighContrastSelector, hiddenContentStyle, } from '../../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Suggestions',\n    suggestionsContainer: 'ms-Suggestions-container',\n    title: 'ms-Suggestions-title',\n    forceResolveButton: 'ms-forceResolve-button',\n    searchForMoreButton: 'ms-SearchMore-button',\n    spinner: 'ms-Suggestions-spinner',\n    noSuggestions: 'ms-Suggestions-none',\n    suggestionsAvailable: 'ms-Suggestions-suggestionsAvailable',\n    isSelected: 'is-selected',\n};\nexport function getStyles(props) {\n    var _a;\n    var className = props.className, suggestionsClassName = props.suggestionsClassName, theme = props.theme, forceResolveButtonSelected = props.forceResolveButtonSelected, searchForMoreButtonSelected = props.searchForMoreButtonSelected;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var actionButtonStyles = {\n        backgroundColor: 'transparent',\n        border: 0,\n        cursor: 'pointer',\n        margin: 0,\n        paddingLeft: 8,\n        position: 'relative',\n        borderTop: \"1px solid \".concat(palette.neutralLight),\n        height: 40,\n        textAlign: 'left',\n        width: '100%',\n        fontSize: fonts.small.fontSize,\n        selectors: {\n            ':hover': {\n                backgroundColor: semanticColors.menuItemBackgroundPressed,\n                cursor: 'pointer',\n            },\n            ':focus, :active': {\n                backgroundColor: palette.themeLight,\n            },\n            '.ms-Button-icon': {\n                fontSize: fonts.mediumPlus.fontSize,\n                width: 25,\n            },\n            '.ms-Button-label': {\n                margin: '0 4px 0 9px',\n            },\n        },\n    };\n    var actionButtonSelectedStyles = {\n        backgroundColor: palette.themeLight,\n        selectors: (_a = {},\n            _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n            _a),\n    };\n    return {\n        root: [\n            classNames.root,\n            {\n                minWidth: 260,\n            },\n            className,\n        ],\n        suggestionsContainer: [\n            classNames.suggestionsContainer,\n            {\n                overflowY: 'auto',\n                overflowX: 'hidden',\n                maxHeight: 300,\n                transform: 'translate3d(0,0,0)',\n            },\n            suggestionsClassName,\n        ],\n        title: [\n            classNames.title,\n            {\n                padding: '0 12px',\n                fontSize: fonts.small.fontSize,\n                color: palette.themePrimary,\n                lineHeight: 40,\n                borderBottom: \"1px solid \".concat(semanticColors.menuItemBackgroundPressed),\n            },\n        ],\n        forceResolveButton: [\n            classNames.forceResolveButton,\n            actionButtonStyles,\n            forceResolveButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n        ],\n        searchForMoreButton: [\n            classNames.searchForMoreButton,\n            actionButtonStyles,\n            searchForMoreButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n        ],\n        noSuggestions: [\n            classNames.noSuggestions,\n            {\n                textAlign: 'center',\n                color: palette.neutralSecondary,\n                fontSize: fonts.small.fontSize,\n                lineHeight: 30,\n            },\n        ],\n        suggestionsAvailable: [classNames.suggestionsAvailable, hiddenContentStyle],\n        subComponentStyles: {\n            spinner: {\n                root: [\n                    classNames.spinner,\n                    {\n                        margin: '5px 0',\n                        paddingLeft: 14,\n                        textAlign: 'left',\n                        whiteSpace: 'nowrap',\n                        lineHeight: 20,\n                        fontSize: fonts.small.fontSize,\n                    },\n                ],\n                circle: {\n                    display: 'inline-block',\n                    verticalAlign: 'middle',\n                },\n                label: {\n                    display: 'inline-block',\n                    verticalAlign: 'middle',\n                    margin: '0 10px 0 16px',\n                },\n            },\n        },\n    };\n}\n//# sourceMappingURL=Suggestions.styles.js.map","/**\n * {@docCategory Pickers}\n */\nvar SuggestionsController = /** @class */ (function () {\n    function SuggestionsController() {\n        var _this = this;\n        this._isSuggestionModel = function (value) {\n            return value.item !== undefined;\n        };\n        this._ensureSuggestionModel = function (suggestion) {\n            if (_this._isSuggestionModel(suggestion)) {\n                return suggestion;\n            }\n            else {\n                return {\n                    item: suggestion,\n                    selected: false,\n                    ariaLabel: suggestion.ariaLabel,\n                };\n            }\n        };\n        this.suggestions = [];\n        this.currentIndex = -1;\n    }\n    SuggestionsController.prototype.updateSuggestions = function (newSuggestions, selectedIndex, maxCount) {\n        if (newSuggestions && newSuggestions.length > 0) {\n            if (maxCount && newSuggestions.length > maxCount) {\n                var startIndex = selectedIndex && selectedIndex > maxCount ? selectedIndex + 1 - maxCount : 0;\n                newSuggestions = newSuggestions.slice(startIndex, startIndex + maxCount - 1);\n            }\n            this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);\n            this.currentIndex = selectedIndex ? selectedIndex : 0;\n            if (selectedIndex === -1) {\n                this.currentSuggestion = undefined;\n            }\n            else if (selectedIndex !== undefined) {\n                this.suggestions[selectedIndex].selected = true;\n                this.currentSuggestion = this.suggestions[selectedIndex];\n            }\n        }\n        else {\n            this.suggestions = [];\n            this.currentIndex = -1;\n            this.currentSuggestion = undefined;\n        }\n    };\n    /**\n     * Increments the suggestion index and gets the next suggestion in the list.\n     */\n    SuggestionsController.prototype.nextSuggestion = function () {\n        if (this.suggestions && this.suggestions.length) {\n            if (this.currentIndex < this.suggestions.length - 1) {\n                this.setSelectedSuggestion(this.currentIndex + 1);\n                return true;\n            }\n            else if (this.currentIndex === this.suggestions.length - 1) {\n                this.setSelectedSuggestion(0);\n                return true;\n            }\n        }\n        return false;\n    };\n    /**\n     * Decrements the suggestion index and gets the previous suggestion in the list.\n     */\n    SuggestionsController.prototype.previousSuggestion = function () {\n        if (this.suggestions && this.suggestions.length) {\n            if (this.currentIndex > 0) {\n                this.setSelectedSuggestion(this.currentIndex - 1);\n                return true;\n            }\n            else if (this.currentIndex === 0) {\n                this.setSelectedSuggestion(this.suggestions.length - 1);\n                return true;\n            }\n        }\n        return false;\n    };\n    SuggestionsController.prototype.getSuggestions = function () {\n        return this.suggestions;\n    };\n    SuggestionsController.prototype.getCurrentItem = function () {\n        return this.currentSuggestion;\n    };\n    SuggestionsController.prototype.getSuggestionAtIndex = function (index) {\n        return this.suggestions[index];\n    };\n    SuggestionsController.prototype.hasSelectedSuggestion = function () {\n        return this.currentSuggestion ? true : false;\n    };\n    SuggestionsController.prototype.removeSuggestion = function (index) {\n        this.suggestions.splice(index, 1);\n    };\n    SuggestionsController.prototype.createGenericSuggestion = function (itemToConvert) {\n        var itemToAdd = this.convertSuggestionsToSuggestionItems([itemToConvert])[0];\n        this.currentSuggestion = itemToAdd;\n    };\n    SuggestionsController.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {\n        return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];\n    };\n    SuggestionsController.prototype.deselectAllSuggestions = function () {\n        if (this.currentIndex > -1) {\n            this.suggestions[this.currentIndex].selected = false;\n            this.currentIndex = -1;\n        }\n    };\n    SuggestionsController.prototype.setSelectedSuggestion = function (index) {\n        if (index > this.suggestions.length - 1 || index < 0) {\n            this.currentIndex = 0;\n            this.currentSuggestion.selected = false;\n            this.currentSuggestion = this.suggestions[0];\n            this.currentSuggestion.selected = true;\n        }\n        else {\n            if (this.currentIndex > -1) {\n                this.suggestions[this.currentIndex].selected = false;\n            }\n            this.suggestions[index].selected = true;\n            this.currentIndex = index;\n            this.currentSuggestion = this.suggestions[index];\n        }\n    };\n    return SuggestionsController;\n}());\nexport { SuggestionsController };\n//# sourceMappingURL=SuggestionsController.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".picker_94f06b16{position:relative}.pickerText_94f06b16{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid \" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";min-width:180px;min-height:30px}.pickerText_94f06b16:hover{border-color:\" }, { \"theme\": \"inputBorderHovered\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}.pickerText_94f06b16.inputFocused_94f06b16{position:relative;border-color:\" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}.pickerText_94f06b16.inputFocused_94f06b16:after{pointer-events:none;content:\\\"\\\";position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;border:2px solid \" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.pickerText_94f06b16.inputDisabled_94f06b16{position:relative;border-color:GrayText}.pickerText_94f06b16.inputDisabled_94f06b16:after{pointer-events:none;content:\\\"\\\";position:absolute;left:0;top:0;bottom:0;right:0;background-color:Window}}.pickerInput_94f06b16{height:34px;border:none;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;outline:0;padding:0 6px 0;-ms-flex-item-align:end;align-self:flex-end}.pickerItems_94f06b16{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%}.screenReaderOnly_94f06b16{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var picker = \"picker_94f06b16\";\nexport var pickerText = \"pickerText_94f06b16\";\nexport var inputFocused = \"inputFocused_94f06b16\";\nexport var inputDisabled = \"inputDisabled_94f06b16\";\nexport var pickerInput = \"pickerInput_94f06b16\";\nexport var pickerItems = \"pickerItems_94f06b16\";\nexport var screenReaderOnly = \"screenReaderOnly_94f06b16\";\n//# sourceMappingURL=BasePicker.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, KeyCodes, css, elementContains, format, getId, classNamesFunction, styled, initializeComponentRef, } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { Selection, SelectionZone, SelectionMode } from '../../utilities/selection/index';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Suggestions } from './Suggestions/Suggestions';\nimport { getStyles as suggestionsStyles } from './Suggestions/Suggestions.styles';\nimport { SuggestionsController } from './Suggestions/SuggestionsController';\nimport { ValidationState } from './BasePicker.types';\nimport { Autofill } from '../Autofill/index';\nimport * as stylesImport from './BasePicker.scss';\nvar legacyStyles = stylesImport;\nvar EXTENDED_LOAD_TIME = 3000;\nvar getClassNames = classNamesFunction();\n/**\n * Should be removed once new picker without inheritance is created\n */\nfunction getStyledSuggestions(suggestionsType) {\n    return styled(suggestionsType, suggestionsStyles, undefined, {\n        scope: 'Suggestions',\n    });\n}\n/**\n * {@docCategory Pickers}\n */\nvar BasePicker = /** @class */ (function (_super) {\n    __extends(BasePicker, _super);\n    function BasePicker(basePickerProps) {\n        var _this = _super.call(this, basePickerProps) || this;\n        // Refs\n        _this.root = React.createRef();\n        _this.input = React.createRef();\n        _this.suggestionElement = React.createRef();\n        /**\n         * @deprecated this is no longer necessary as typescript now supports generic elements\n         */\n        _this.SuggestionOfProperType = Suggestions;\n        // eslint-disable-next-line deprecation/deprecation\n        _this._styledSuggestions = getStyledSuggestions(_this.SuggestionOfProperType);\n        _this._overrideScrollDismiss = false;\n        _this.dismissSuggestions = function (ev) {\n            var selectItemFunction = function () {\n                var addItemOnDismiss = true;\n                if (_this.props.onDismiss) {\n                    addItemOnDismiss = _this.props.onDismiss(ev, _this.suggestionStore.currentSuggestion ? _this.suggestionStore.currentSuggestion.item : undefined);\n                }\n                if (!ev || (ev && !ev.defaultPrevented)) {\n                    // Select the first suggestion if one is available and permitted by onDismiss when user leaves.\n                    if (addItemOnDismiss !== false &&\n                        _this.canAddItems() &&\n                        _this.suggestionStore.hasSelectedSuggestion() &&\n                        _this.state.suggestedDisplayValue) {\n                        _this.addItemByIndex(0);\n                    }\n                }\n            };\n            if (_this.currentPromise) {\n                _this.currentPromise.then(function () { return selectItemFunction(); });\n            }\n            else {\n                selectItemFunction();\n            }\n            _this.setState({ suggestionsVisible: false });\n        };\n        _this.refocusSuggestions = function (keyCode) {\n            _this.resetFocus();\n            if (_this.suggestionStore.suggestions && _this.suggestionStore.suggestions.length > 0) {\n                if (keyCode === KeyCodes.up) {\n                    _this.suggestionStore.setSelectedSuggestion(_this.suggestionStore.suggestions.length - 1);\n                }\n                else if (keyCode === KeyCodes.down) {\n                    _this.suggestionStore.setSelectedSuggestion(0);\n                }\n            }\n        };\n        _this.onInputChange = function (value) {\n            _this.updateValue(value);\n            _this.setState({\n                moreSuggestionsAvailable: true,\n                isMostRecentlyUsedVisible: false,\n            });\n        };\n        _this.onSuggestionClick = function (ev, item, index) {\n            _this.addItemByIndex(index);\n        };\n        _this.onSuggestionRemove = function (ev, item, index) {\n            if (_this.props.onRemoveSuggestion) {\n                _this.props.onRemoveSuggestion(item);\n            }\n            _this.suggestionStore.removeSuggestion(index);\n        };\n        _this.onInputFocus = function (ev) {\n            _this.selection.setAllSelected(false);\n            // Only trigger all of the focus if this component isn't already focused.\n            // For example when an item is selected or removed from the selected list it should be treated\n            // as though the input is still focused.\n            if (!_this.state.isFocused) {\n                _this._userTriggeredSuggestions();\n                if (_this.props.inputProps && _this.props.inputProps.onFocus) {\n                    _this.props.inputProps.onFocus(ev);\n                }\n            }\n        };\n        _this.onInputBlur = function (ev) {\n            if (_this.props.inputProps && _this.props.inputProps.onBlur) {\n                _this.props.inputProps.onBlur(ev);\n            }\n        };\n        _this.onBlur = function (ev) {\n            if (_this.state.isFocused) {\n                // Only blur the entire component if an unrelated element gets focus.\n                // Otherwise treat it as though it still has focus.\n                // Do nothing if the blur is coming from something\n                // inside the comboBox root or the comboBox menu since\n                // it we are not really bluring from the whole comboBox\n                var relatedTarget = ev.relatedTarget;\n                if (ev.relatedTarget === null) {\n                    // In IE11, due to lack of support, event.relatedTarget is always\n                    // null making every onBlur call to be \"outside\" of the ComboBox\n                    // even when it's not. Using document.activeElement is another way\n                    // for us to be able to get what the relatedTarget without relying\n                    // on the event\n                    relatedTarget = document.activeElement;\n                }\n                if (relatedTarget && !elementContains(_this.root.current, relatedTarget)) {\n                    _this.setState({ isFocused: false });\n                    if (_this.props.onBlur) {\n                        _this.props.onBlur(ev);\n                    }\n                }\n            }\n        };\n        /**\n         * Resets focus to last element in wrapper div if clicking back into Picker that has hit item limit\n         */\n        _this.onWrapperClick = function (ev) {\n            if (_this.state.items.length && !_this.canAddItems()) {\n                _this.resetFocus(_this.state.items.length - 1);\n            }\n        };\n        /**\n         * Reveals suggestions any time the user clicks on the input element\n         * without shifting focus.\n         */\n        _this.onClick = function (ev) {\n            if (_this.props.inputProps !== undefined && _this.props.inputProps.onClick !== undefined) {\n                _this.props.inputProps.onClick(ev);\n            }\n            // Only primary (left) clicks show suggestions.\n            if (ev.button === 0) {\n                _this._userTriggeredSuggestions();\n            }\n        };\n        _this.onFocus = function () {\n            if (!_this.state.isFocused) {\n                _this.setState({ isFocused: true });\n            }\n        };\n        _this.onKeyDown = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            var keyCode = ev.which;\n            switch (keyCode) {\n                case KeyCodes.escape:\n                    if (_this.state.suggestionsVisible) {\n                        _this.setState({ suggestionsVisible: false });\n                        ev.preventDefault();\n                        ev.stopPropagation();\n                    }\n                    break;\n                case KeyCodes.tab:\n                case KeyCodes.enter:\n                    if (_this.suggestionElement.current && _this.suggestionElement.current.hasSuggestedActionSelected()) {\n                        _this.suggestionElement.current.executeSelectedAction();\n                    }\n                    else if (!ev.shiftKey && _this.suggestionStore.hasSelectedSuggestion() && _this.state.suggestionsVisible) {\n                        _this.completeSuggestion();\n                        ev.preventDefault();\n                        ev.stopPropagation();\n                    }\n                    else {\n                        _this._completeGenericSuggestion();\n                    }\n                    break;\n                case KeyCodes.backspace:\n                    if (!_this.props.disabled) {\n                        _this.onBackspace(ev);\n                    }\n                    ev.stopPropagation();\n                    break;\n                case KeyCodes.del:\n                    if (!_this.props.disabled) {\n                        if (_this.input.current &&\n                            ev.target === _this.input.current.inputElement &&\n                            _this.state.suggestionsVisible &&\n                            _this.suggestionStore.currentIndex !== -1) {\n                            if (_this.props.onRemoveSuggestion) {\n                                _this.props.onRemoveSuggestion(_this.suggestionStore.currentSuggestion.item);\n                            }\n                            _this.suggestionStore.removeSuggestion(_this.suggestionStore.currentIndex);\n                            _this.forceUpdate();\n                        }\n                        else {\n                            _this.onBackspace(ev);\n                        }\n                    }\n                    ev.stopPropagation();\n                    break;\n                case KeyCodes.up:\n                    if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n                        if (_this.suggestionElement.current &&\n                            _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n                            ev.preventDefault();\n                            ev.stopPropagation();\n                            _this.forceUpdate();\n                        }\n                        else {\n                            if (_this.suggestionElement.current &&\n                                _this.suggestionElement.current.hasSuggestedAction() &&\n                                _this.suggestionStore.currentIndex === 0) {\n                                ev.preventDefault();\n                                ev.stopPropagation();\n                                _this.suggestionElement.current.focusAboveSuggestions();\n                                _this.suggestionStore.deselectAllSuggestions();\n                                _this.forceUpdate();\n                            }\n                            else {\n                                if (_this.suggestionStore.previousSuggestion()) {\n                                    ev.preventDefault();\n                                    ev.stopPropagation();\n                                    _this.onSuggestionSelect();\n                                }\n                            }\n                        }\n                    }\n                    break;\n                case KeyCodes.down:\n                    if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n                        if (_this.suggestionElement.current &&\n                            _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n                            ev.preventDefault();\n                            ev.stopPropagation();\n                            _this.forceUpdate();\n                        }\n                        else {\n                            if (_this.suggestionElement.current &&\n                                _this.suggestionElement.current.hasSuggestedAction() &&\n                                _this.suggestionStore.currentIndex + 1 === _this.suggestionStore.suggestions.length) {\n                                ev.preventDefault();\n                                ev.stopPropagation();\n                                _this.suggestionElement.current.focusBelowSuggestions();\n                                _this.suggestionStore.deselectAllSuggestions();\n                                _this.forceUpdate();\n                            }\n                            else {\n                                if (_this.suggestionStore.nextSuggestion()) {\n                                    ev.preventDefault();\n                                    ev.stopPropagation();\n                                    _this.onSuggestionSelect();\n                                }\n                            }\n                        }\n                    }\n                    break;\n            }\n        };\n        _this.onItemChange = function (changedItem, index) {\n            var items = _this.state.items;\n            if (index >= 0) {\n                var newItems = items;\n                newItems[index] = changedItem;\n                _this._updateSelectedItems(newItems);\n            }\n        };\n        _this.onGetMoreResults = function () {\n            _this.setState({\n                isSearching: true,\n            }, function () {\n                if (_this.props.onGetMoreResults && _this.input.current) {\n                    var suggestions = _this.props.onGetMoreResults(_this.input.current.value, _this.state.items);\n                    var suggestionsArray = suggestions;\n                    var suggestionsPromiseLike = suggestions;\n                    if (Array.isArray(suggestionsArray)) {\n                        _this.updateSuggestions(suggestionsArray);\n                        _this.setState({ isSearching: false });\n                    }\n                    else if (suggestionsPromiseLike.then) {\n                        suggestionsPromiseLike.then(function (newSuggestions) {\n                            _this.updateSuggestions(newSuggestions);\n                            _this.setState({ isSearching: false });\n                        });\n                    }\n                }\n                else {\n                    _this.setState({ isSearching: false });\n                }\n                if (_this.input.current) {\n                    _this.input.current.focus();\n                }\n                _this.setState({\n                    moreSuggestionsAvailable: false,\n                    isResultsFooterVisible: true,\n                });\n            });\n        };\n        _this.completeSelection = function (item) {\n            _this.addItem(item);\n            _this.updateValue('');\n            if (_this.input.current) {\n                _this.input.current.clear();\n            }\n            _this.setState({ suggestionsVisible: false });\n        };\n        _this.addItemByIndex = function (index) {\n            _this.completeSelection(_this.suggestionStore.getSuggestionAtIndex(index).item);\n        };\n        _this.addItem = function (item) {\n            var processedItem = _this.props.onItemSelected\n                ? _this.props.onItemSelected(item)\n                : item;\n            if (processedItem === null) {\n                return;\n            }\n            var processedItemObject = processedItem;\n            var processedItemPromiseLike = processedItem;\n            if (processedItemPromiseLike && processedItemPromiseLike.then) {\n                processedItemPromiseLike.then(function (resolvedProcessedItem) {\n                    var newItems = _this.state.items.concat([resolvedProcessedItem]);\n                    _this._updateSelectedItems(newItems);\n                });\n            }\n            else {\n                var newItems = _this.state.items.concat([processedItemObject]);\n                _this._updateSelectedItems(newItems);\n            }\n            _this.setState({ suggestedDisplayValue: '', selectionRemoved: undefined });\n        };\n        _this.removeItem = function (item) {\n            var items = _this.state.items;\n            var index = items.indexOf(item);\n            if (index >= 0) {\n                var newItems = items.slice(0, index).concat(items.slice(index + 1));\n                _this.setState({ selectionRemoved: item });\n                _this._updateSelectedItems(newItems);\n                // reset selection removed text after a timeout so it isn't reached by screen reader virtual cursor.\n                // the exact timing isn't important, the live region will fully read even if the text is removed.\n                _this._async.setTimeout(function () {\n                    _this.setState({ selectionRemoved: undefined });\n                }, 1000);\n            }\n        };\n        _this.removeItems = function (itemsToRemove) {\n            var items = _this.state.items;\n            var newItems = items.filter(function (item) { return itemsToRemove.indexOf(item) === -1; });\n            _this._updateSelectedItems(newItems);\n        };\n        /**\n         * @deprecated this is no longer necessary as focuszone has been removed\n         */\n        _this._shouldFocusZoneEnterInnerZone = function (ev) {\n            // If suggestions are shown const up/down keys control them, otherwise allow them through to control the focusZone.\n            if (_this.state.suggestionsVisible) {\n                // eslint-disable-next-line deprecation/deprecation\n                switch (ev.which) {\n                    case KeyCodes.up:\n                    case KeyCodes.down:\n                        return true;\n                }\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter) {\n                return true;\n            }\n            return false;\n        };\n        _this._onResolveSuggestions = function (updatedValue) {\n            var suggestions = _this.props.onResolveSuggestions(updatedValue, _this.state.items);\n            if (suggestions !== null) {\n                _this.updateSuggestionsList(suggestions, updatedValue);\n            }\n        };\n        _this._completeGenericSuggestion = function () {\n            if (_this.props.onValidateInput &&\n                _this.input.current &&\n                _this.props.onValidateInput(_this.input.current.value) !== ValidationState.invalid &&\n                _this.props.createGenericItem) {\n                var itemToConvert = _this.props.createGenericItem(_this.input.current.value, _this.props.onValidateInput(_this.input.current.value));\n                _this.suggestionStore.createGenericSuggestion(itemToConvert);\n                _this.completeSuggestion();\n            }\n        };\n        /**\n         * This should be called when the user does something other than use text entry to trigger suggestions.\n         *\n         */\n        _this._userTriggeredSuggestions = function () {\n            if (!_this.state.suggestionsVisible) {\n                var input = _this.input.current ? _this.input.current.value : '';\n                if (!input) {\n                    _this.onEmptyInputFocus();\n                }\n                else {\n                    if (_this.suggestionStore.suggestions.length === 0) {\n                        _this._onResolveSuggestions(input);\n                    }\n                    else {\n                        _this.setState({\n                            isMostRecentlyUsedVisible: false,\n                            suggestionsVisible: true,\n                        });\n                    }\n                }\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        var items = basePickerProps.selectedItems || basePickerProps.defaultSelectedItems || [];\n        _this._id = getId();\n        _this._ariaMap = {\n            selectedItems: \"selected-items-\".concat(_this._id),\n            selectedSuggestionAlert: \"selected-suggestion-alert-\".concat(_this._id),\n            suggestionList: \"suggestion-list-\".concat(_this._id),\n            combobox: \"combobox-\".concat(_this._id),\n        };\n        _this.suggestionStore = new SuggestionsController();\n        _this.selection = new Selection({ onSelectionChanged: function () { return _this.onSelectionChange(); } });\n        _this.selection.setItems(items);\n        _this.state = {\n            items: items,\n            suggestedDisplayValue: '',\n            isMostRecentlyUsedVisible: false,\n            moreSuggestionsAvailable: false,\n            isFocused: false,\n            isSearching: false,\n            selectedIndices: [],\n            selectionRemoved: undefined,\n        };\n        return _this;\n    }\n    BasePicker.getDerivedStateFromProps = function (newProps) {\n        if (newProps.selectedItems) {\n            return { items: newProps.selectedItems };\n        }\n        return null;\n    };\n    Object.defineProperty(BasePicker.prototype, \"items\", {\n        get: function () {\n            return this.state.items;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    BasePicker.prototype.componentDidMount = function () {\n        this.selection.setItems(this.state.items);\n        this._onResolveSuggestions = this._async.debounce(this._onResolveSuggestions, this.props.resolveDelay);\n    };\n    BasePicker.prototype.componentDidUpdate = function (oldProps, oldState) {\n        var _this = this;\n        if (this.state.items && this.state.items !== oldState.items) {\n            var currentSelectedIndex = this.selection.getSelectedIndices()[0];\n            this.selection.setItems(this.state.items);\n            if (this.state.isFocused) {\n                // Reset focus and selection so that selected item stays in sync if something\n                // has been removed\n                if (this.state.items.length < oldState.items.length) {\n                    this.selection.setIndexSelected(currentSelectedIndex, false, true);\n                    this.resetFocus(currentSelectedIndex);\n                }\n                // Reset focus to last item if the input is removed\n                else if (this.state.items.length > oldState.items.length && !this.canAddItems()) {\n                    this.resetFocus(this.state.items.length - 1);\n                }\n            }\n        }\n        // handle dismiss buffer after suggestions are opened\n        if (this.state.suggestionsVisible && !oldState.suggestionsVisible) {\n            this._overrideScrollDismiss = true;\n            this._async.clearTimeout(this._overrideScrollDimissTimeout);\n            this._overrideScrollDimissTimeout = this._async.setTimeout(function () {\n                _this._overrideScrollDismiss = false;\n            }, 100);\n        }\n    };\n    BasePicker.prototype.componentWillUnmount = function () {\n        if (this.currentPromise) {\n            this.currentPromise = undefined;\n        }\n        this._async.dispose();\n    };\n    BasePicker.prototype.focus = function () {\n        if (this.input.current) {\n            this.input.current.focus();\n        }\n    };\n    BasePicker.prototype.focusInput = function () {\n        if (this.input.current) {\n            this.input.current.focus();\n        }\n    };\n    BasePicker.prototype.completeSuggestion = function (forceComplete) {\n        if (this.suggestionStore.hasSelectedSuggestion() && this.input.current) {\n            this.completeSelection(this.suggestionStore.currentSuggestion.item);\n        }\n        else if (forceComplete) {\n            this._completeGenericSuggestion();\n        }\n    };\n    BasePicker.prototype.render = function () {\n        var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused, items = _a.items;\n        var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, selectionAriaLabel = _b.selectionAriaLabel, _c = _b.selectionRole, selectionRole = _c === void 0 ? 'list' : _c, theme = _b.theme, styles = _b.styles;\n        var suggestionsVisible = !!this.state.suggestionsVisible;\n        var suggestionsAvailable = suggestionsVisible ? this._ariaMap.suggestionList : undefined;\n        // TODO\n        // Clean this up by leaving only the first part after removing support for SASS.\n        // Currently we can not remove the SASS styles from BasePicker class because it\n        // might be used by consumers who created custom pickers from extending from\n        // this base class and have not used the new 'styles' prop.\n        // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n        // for every other already existing picker variant (PeoplePicker, TagPicker)\n        // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n        // then we just use the old SASS styles instead.\n        var classNames = styles\n            ? getClassNames(styles, {\n                theme: theme,\n                className: className,\n                isFocused: isFocused,\n                disabled: disabled,\n                inputClassName: inputProps && inputProps.className,\n            })\n            : {\n                root: css('ms-BasePicker', className ? className : ''),\n                text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused),\n                itemsWrapper: legacyStyles.pickerItems,\n                input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n                screenReaderText: legacyStyles.screenReaderOnly,\n            };\n        var comboLabel = this.props['aria-label'] || (inputProps === null || inputProps === void 0 ? void 0 : inputProps['aria-label']);\n        // selectionAriaLabel is contained in a separate <span> rather than an aria-label on the items list\n        // because if the items list has an aria-label, the aria-describedby on the input will only read\n        // that label instead of all the selected items. Using aria-labelledby instead fixes this, since\n        // aria-describedby and aria-labelledby will not follow a second aria-labelledby\n        return (React.createElement(\"div\", { ref: this.root, className: classNames.root, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onWrapperClick },\n            this.renderCustomAlert(classNames.screenReaderText),\n            React.createElement(\"span\", { id: \"\".concat(this._ariaMap.selectedItems, \"-label\"), hidden: true }, selectionAriaLabel || comboLabel),\n            React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.multiple },\n                React.createElement(\"div\", { className: classNames.text, \"aria-owns\": suggestionsAvailable },\n                    items.length > 0 && (React.createElement(\"span\", { id: this._ariaMap.selectedItems, className: classNames.itemsWrapper, role: selectionRole, \"aria-labelledby\": \"\".concat(this._ariaMap.selectedItems, \"-label\") }, this.renderItems())),\n                    this.canAddItems() && (React.createElement(Autofill, __assign({ spellCheck: false }, inputProps, { className: classNames.input, componentRef: this.input, id: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.id) ? inputProps.id : this._ariaMap.combobox, onClick: this.onClick, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": suggestionsVisible ? this.getActiveDescendant() : undefined, \"aria-controls\": suggestionsAvailable, \"aria-describedby\": items.length > 0 ? this._ariaMap.selectedItems : undefined, \"aria-expanded\": suggestionsVisible, \"aria-haspopup\": \"listbox\", \"aria-label\": comboLabel, role: \"combobox\", disabled: disabled, onInputChange: this.props.onInputChange }))))),\n            this.renderSuggestions()));\n    };\n    BasePicker.prototype.canAddItems = function () {\n        var items = this.state.items;\n        var itemLimit = this.props.itemLimit;\n        return itemLimit === undefined || items.length < itemLimit;\n    };\n    BasePicker.prototype.renderSuggestions = function () {\n        var _this = this;\n        var StyledTypedSuggestions = this._styledSuggestions;\n        return this.state.suggestionsVisible && this.input ? (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 5, target: this.input.current ? this.input.current.inputElement : undefined, onDismiss: this.dismissSuggestions, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintForRTL: DirectionalHint.bottomRightEdge, \n            // eslint-disable-next-line react/jsx-no-bind\n            preventDismissOnEvent: function (ev) { return _this._preventDismissOnScrollOrResize(ev); } }, this.props.pickerCalloutProps),\n            React.createElement(StyledTypedSuggestions\n            // Assumed to set in derived component's defaultProps\n            , __assign({ \n                // Assumed to set in derived component's defaultProps\n                onRenderSuggestion: this.props.onRenderSuggestionsItem, onSuggestionClick: this.onSuggestionClick, onSuggestionRemove: this.onSuggestionRemove, suggestions: this.suggestionStore.getSuggestions(), componentRef: this.suggestionElement, onGetMoreResults: this.onGetMoreResults, moreSuggestionsAvailable: this.state.moreSuggestionsAvailable, isLoading: this.state.suggestionsLoading, isExtendedLoading: this.state.suggestionsExtendedLoading, isSearching: this.state.isSearching, isMostRecentlyUsedVisible: this.state.isMostRecentlyUsedVisible, isResultsFooterVisible: this.state.isResultsFooterVisible, refocusSuggestions: this.refocusSuggestions, removeSuggestionAriaLabel: this.props.removeButtonAriaLabel, suggestionsListId: this._ariaMap.suggestionList, createGenericItem: this._completeGenericSuggestion }, this.props.pickerSuggestionsProps)))) : null;\n    };\n    BasePicker.prototype.renderItems = function () {\n        var _this = this;\n        var _a = this.props, disabled = _a.disabled, removeButtonAriaLabel = _a.removeButtonAriaLabel, removeButtonIconProps = _a.removeButtonIconProps;\n        var onRenderItem = this.props.onRenderItem;\n        var _b = this.state, items = _b.items, selectedIndices = _b.selectedIndices;\n        return items.map(function (item, index) {\n            return onRenderItem({\n                item: item,\n                index: index,\n                key: item.key ? item.key : index,\n                selected: selectedIndices.indexOf(index) !== -1,\n                onRemoveItem: function () { return _this.removeItem(item); },\n                disabled: disabled,\n                onItemChange: _this.onItemChange,\n                removeButtonAriaLabel: removeButtonAriaLabel,\n                removeButtonIconProps: removeButtonIconProps,\n            });\n        });\n    };\n    BasePicker.prototype.resetFocus = function (index) {\n        var items = this.state.items;\n        if (items.length) {\n            // default to focusing the last item\n            index = index !== null && index !== void 0 ? index : items.length - 1;\n            var newEl = this.root.current &&\n                this.root.current.querySelectorAll('[data-selection-index] > button')[Math.min(index, items.length - 1)];\n            if (newEl) {\n                newEl.focus();\n            }\n        }\n        else {\n            if (this.input.current) {\n                this.input.current.focus();\n            }\n        }\n    };\n    BasePicker.prototype.onSuggestionSelect = function () {\n        if (this.suggestionStore.currentSuggestion) {\n            var currentValue = this.input.current ? this.input.current.value : '';\n            var itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, currentValue);\n            this.setState({ suggestedDisplayValue: itemValue });\n        }\n    };\n    BasePicker.prototype.onSelectionChange = function () {\n        this.setState({\n            selectedIndices: this.selection.getSelectedIndices(),\n        });\n    };\n    BasePicker.prototype.updateSuggestions = function (suggestions) {\n        var _a;\n        var maxSuggestionsCount = (_a = this.props.pickerSuggestionsProps) === null || _a === void 0 ? void 0 : _a.resultsMaximumNumber;\n        this.suggestionStore.updateSuggestions(suggestions, 0, maxSuggestionsCount);\n        this.forceUpdate();\n    };\n    /**\n     * Only to be called when there is nothing in the input. Checks to see if the consumer has\n     * provided a function to resolve suggestions\n     */\n    BasePicker.prototype.onEmptyInputFocus = function () {\n        var emptyResolveSuggestions = this.props.onEmptyResolveSuggestions\n            ? this.props.onEmptyResolveSuggestions\n            : // eslint-disable-next-line deprecation/deprecation\n                this.props.onEmptyInputFocus;\n        // Only attempt to resolve suggestions if it exists\n        if (emptyResolveSuggestions) {\n            var suggestions = emptyResolveSuggestions(this.state.items);\n            this.updateSuggestionsList(suggestions);\n            this.setState({\n                isMostRecentlyUsedVisible: true,\n                suggestionsVisible: true,\n                moreSuggestionsAvailable: false,\n            });\n        }\n    };\n    BasePicker.prototype.updateValue = function (updatedValue) {\n        this._onResolveSuggestions(updatedValue);\n    };\n    BasePicker.prototype.updateSuggestionsList = function (suggestions, updatedValue) {\n        var _this = this;\n        // Check to see if the returned value is an array, if it is then just pass it into the next function .\n        // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n        // If it is then resolve it asynchronously.\n        if (Array.isArray(suggestions)) {\n            this._updateAndResolveValue(updatedValue, suggestions);\n        }\n        else if (suggestions && suggestions.then) {\n            this.setState({\n                suggestionsLoading: true,\n            });\n            this._startLoadTimer();\n            // Clear suggestions\n            this.suggestionStore.updateSuggestions([]);\n            if (updatedValue !== undefined) {\n                this.setState({\n                    suggestionsVisible: this._getShowSuggestions(),\n                });\n            }\n            else {\n                this.setState({\n                    suggestionsVisible: this.input.current && this.input.current.inputElement === document.activeElement,\n                });\n            }\n            // Ensure that the promise will only use the callback if it was the most recent one.\n            this.currentPromise = suggestions;\n            suggestions.then(function (newSuggestions) {\n                if (suggestions === _this.currentPromise) {\n                    _this._updateAndResolveValue(updatedValue, newSuggestions);\n                }\n            });\n        }\n    };\n    BasePicker.prototype.resolveNewValue = function (updatedValue, suggestions) {\n        var _this = this;\n        this.updateSuggestions(suggestions);\n        var itemValue = undefined;\n        if (this.suggestionStore.currentSuggestion) {\n            itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, updatedValue);\n        }\n        // Only set suggestionloading to false after there has been time for the new suggestions to flow\n        // to the suggestions list. This is to ensure that the suggestions are available before aria-activedescendant\n        // is set so that screen readers will read out the first selected option.\n        this.setState({\n            suggestedDisplayValue: itemValue,\n            suggestionsVisible: this._getShowSuggestions(),\n        }, function () { return _this.setState({ suggestionsLoading: false, suggestionsExtendedLoading: false }); });\n    };\n    BasePicker.prototype.onChange = function (items) {\n        if (this.props.onChange) {\n            this.props.onChange(items);\n        }\n    };\n    // This is protected because we may expect the backspace key to work differently in a different kind of picker.\n    // This lets the subclass override it and provide it's own onBackspace. For an example see the BasePickerListBelow\n    BasePicker.prototype.onBackspace = function (ev) {\n        if ((this.state.items.length && !this.input.current) ||\n            (this.input.current && !this.input.current.isValueSelected && this.input.current.cursorLocation === 0)) {\n            if (this.selection.getSelectedCount() > 0) {\n                this.removeItems(this.selection.getSelection());\n            }\n            else {\n                this.removeItem(this.state.items[this.state.items.length - 1]);\n            }\n        }\n    };\n    BasePicker.prototype.getActiveDescendant = function () {\n        var _a;\n        if (this.state.suggestionsLoading) {\n            return undefined;\n        }\n        var currentIndex = this.suggestionStore.currentIndex;\n        if (currentIndex < 0) {\n            // if the suggestions element has actions and the currentIndex does not point to a suggestion,\n            // return the action id\n            if ((_a = this.suggestionElement.current) === null || _a === void 0 ? void 0 : _a.hasSuggestedAction()) {\n                return 'sug-selectedAction';\n            }\n            // If there are no suggestions and no action suggested, then return the ID for the no results found.\n            if (this.suggestionStore.suggestions.length === 0) {\n                return 'sug-noResultsFound';\n            }\n            return undefined;\n        }\n        else {\n            return \"sug-\".concat(currentIndex);\n        }\n    };\n    /** @deprecated use renderCustomAlert instead */\n    BasePicker.prototype.getSuggestionsAlert = function (suggestionAlertClassName) {\n        if (suggestionAlertClassName === void 0) { suggestionAlertClassName = legacyStyles.screenReaderOnly; }\n        var currentIndex = this.suggestionStore.currentIndex;\n        if (this.props.enableSelectedSuggestionAlert) {\n            var selectedSuggestion = currentIndex > -1 ? this.suggestionStore.getSuggestionAtIndex(this.suggestionStore.currentIndex) : undefined;\n            var selectedSuggestionAlertText = selectedSuggestion ? selectedSuggestion.ariaLabel : undefined;\n            // keeping the id/className here for legacy support\n            return (React.createElement(\"div\", { id: this._ariaMap.selectedSuggestionAlert, className: suggestionAlertClassName }, \"\".concat(selectedSuggestionAlertText, \" \")));\n        }\n    };\n    BasePicker.prototype.renderCustomAlert = function (alertClassName) {\n        if (alertClassName === void 0) { alertClassName = legacyStyles.screenReaderOnly; }\n        var _a = this.props.suggestionRemovedText, suggestionRemovedText = _a === void 0 ? 'removed {0}' : _a;\n        var removedItemText = '';\n        if (this.state.selectionRemoved) {\n            var itemName = this._getTextFromItem(this.state.selectionRemoved, '');\n            removedItemText = format(suggestionRemovedText, itemName);\n        }\n        return (React.createElement(\"div\", { className: alertClassName, id: this._ariaMap.selectedSuggestionAlert, \"aria-live\": \"assertive\" },\n            // eslint-disable-next-line deprecation/deprecation\n            this.getSuggestionsAlert(alertClassName),\n            removedItemText));\n    };\n    // do not dismiss if the window resizes or scrolls within 100ms of opening\n    // this prevents the Android issue where pickers immediately dismiss on open, because the keyboard appears\n    BasePicker.prototype._preventDismissOnScrollOrResize = function (ev) {\n        if (this._overrideScrollDismiss && (ev.type === 'scroll' || ev.type === 'resize')) {\n            return true;\n        }\n        return false;\n    };\n    /** If suggestions are still loading after a predefined amount of time, set state to show user alert */\n    BasePicker.prototype._startLoadTimer = function () {\n        var _this = this;\n        this._async.setTimeout(function () {\n            if (_this.state.suggestionsLoading) {\n                _this.setState({ suggestionsExtendedLoading: true });\n            }\n        }, EXTENDED_LOAD_TIME);\n    };\n    /**\n     * Takes in the current updated value and either resolves it with the new suggestions\n     * or if updated value is undefined then it clears out currently suggested items\n     */\n    BasePicker.prototype._updateAndResolveValue = function (updatedValue, newSuggestions) {\n        var _a;\n        if (updatedValue !== undefined) {\n            this.resolveNewValue(updatedValue, newSuggestions);\n        }\n        else {\n            var maxSuggestionsCount = (_a = this.props.pickerSuggestionsProps) === null || _a === void 0 ? void 0 : _a.resultsMaximumNumber;\n            this.suggestionStore.updateSuggestions(newSuggestions, -1, maxSuggestionsCount);\n            if (this.state.suggestionsLoading) {\n                this.setState({\n                    suggestionsLoading: false,\n                    suggestionsExtendedLoading: false,\n                });\n            }\n        }\n    };\n    /**\n     * Controls what happens whenever there is an action that impacts the selected items.\n     * If `selectedItems` is provided, this will act as a controlled component and it will not update its own state.\n     */\n    BasePicker.prototype._updateSelectedItems = function (items) {\n        var _this = this;\n        if (this.props.selectedItems) {\n            // If the component is a controlled component then the controlling component will need to add or remove the items.\n            this.onChange(items);\n        }\n        else {\n            this.setState({ items: items }, function () {\n                _this._onSelectedItemsUpdated(items);\n            });\n        }\n    };\n    BasePicker.prototype._onSelectedItemsUpdated = function (items) {\n        this.onChange(items);\n    };\n    /**\n     * Suggestions are normally shown after the user updates text and the text\n     * is non-empty, but also when the user clicks on the input element.\n     * @returns True if suggestions should be shown.\n     */\n    BasePicker.prototype._getShowSuggestions = function () {\n        var areSuggestionsVisible = this.input.current !== undefined &&\n            this.input.current !== null &&\n            this.input.current.inputElement === document.activeElement &&\n            this.input.current.value !== '';\n        return areSuggestionsVisible;\n    };\n    BasePicker.prototype._getTextFromItem = function (item, currentValue) {\n        if (this.props.getTextFromItem) {\n            return this.props.getTextFromItem(item, currentValue);\n        }\n        else {\n            return '';\n        }\n    };\n    return BasePicker;\n}(React.Component));\nexport { BasePicker };\nvar BasePickerListBelow = /** @class */ (function (_super) {\n    __extends(BasePickerListBelow, _super);\n    function BasePickerListBelow() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    BasePickerListBelow.prototype.render = function () {\n        var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused;\n        var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, selectionAriaLabel = _b.selectionAriaLabel, _c = _b.selectionRole, selectionRole = _c === void 0 ? 'list' : _c, theme = _b.theme, styles = _b.styles;\n        var suggestionsVisible = !!this.state.suggestionsVisible;\n        var suggestionsAvailable = suggestionsVisible ? this._ariaMap.suggestionList : undefined;\n        // TODO\n        // Clean this up by leaving only the first part after removing support for SASS.\n        // Currently we can not remove the SASS styles from BasePicker class because it\n        // might be used by consumers who created custom pickers from extending from\n        // this base class and have not used the new 'styles' prop.\n        // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n        // for every other already existing picker variant (PeoplePicker, TagPicker)\n        // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n        // then we just use the old SASS styles instead.\n        var classNames = styles\n            ? getClassNames(styles, {\n                theme: theme,\n                className: className,\n                isFocused: isFocused,\n                inputClassName: inputProps && inputProps.className,\n            })\n            : {\n                root: css('ms-BasePicker', legacyStyles.picker, className ? className : ''),\n                text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused, disabled && legacyStyles.inputDisabled),\n                itemsWrapper: legacyStyles.pickerItems,\n                input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n                screenReaderText: legacyStyles.screenReaderOnly,\n            };\n        var comboLabel = this.props['aria-label'] || (inputProps === null || inputProps === void 0 ? void 0 : inputProps['aria-label']);\n        return (React.createElement(\"div\", { ref: this.root, onBlur: this.onBlur, onFocus: this.onFocus },\n            React.createElement(\"div\", { className: classNames.root, onKeyDown: this.onKeyDown },\n                this.renderCustomAlert(classNames.screenReaderText),\n                React.createElement(\"span\", { id: \"\".concat(this._ariaMap.selectedItems, \"-label\"), hidden: true }, selectionAriaLabel || comboLabel),\n                React.createElement(\"div\", { className: classNames.text, \"aria-owns\": suggestionsAvailable },\n                    React.createElement(Autofill, __assign({}, inputProps, { className: classNames.input, componentRef: this.input, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onClick: this.onClick, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": suggestionsVisible ? this.getActiveDescendant() : undefined, \"aria-controls\": suggestionsAvailable, \"aria-expanded\": suggestionsVisible, \"aria-haspopup\": \"listbox\", \"aria-label\": comboLabel, \"aria-describedby\": this.state.items.length > 0 ? this._ariaMap.selectedItems : undefined, role: \"combobox\", id: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.id) ? inputProps.id : this._ariaMap.combobox, disabled: disabled, onInputChange: this.props.onInputChange })))),\n            this.renderSuggestions(),\n            React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.single },\n                React.createElement(\"div\", { id: this._ariaMap.selectedItems, className: \"ms-BasePicker-selectedItems\" // just a className hook without any styles applied to it.\n                    , role: selectionRole, \"aria-labelledby\": \"\".concat(this._ariaMap.selectedItems, \"-label\") }, this.renderItems()))));\n    };\n    BasePickerListBelow.prototype.onBackspace = function (ev) {\n        // override the existing backspace method to not do anything because the list items appear below.\n    };\n    return BasePickerListBelow;\n}(BasePicker));\nexport { BasePickerListBelow };\n//# sourceMappingURL=BasePicker.js.map","import { getGlobalClassNames, getInputFocusStyle, getPlaceholderStyles, hiddenContentStyle, HighContrastSelector, } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-BasePicker',\n    text: 'ms-BasePicker-text',\n    itemsWrapper: 'ms-BasePicker-itemsWrapper',\n    input: 'ms-BasePicker-input',\n};\nexport function getStyles(props) {\n    var _a, _b, _c;\n    var className = props.className, theme = props.theme, isFocused = props.isFocused, inputClassName = props.inputClassName, disabled = props.disabled;\n    if (!theme) {\n        throw new Error('theme is undefined or null in base BasePicker getStyles function.');\n    }\n    var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n    var inputBorder = semanticColors.inputBorder, inputBorderHovered = semanticColors.inputBorderHovered, inputFocusBorderAlt = semanticColors.inputFocusBorderAlt;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    // placeholder style constants\n    var placeholderStyles = [\n        fonts.medium,\n        {\n            color: semanticColors.inputPlaceholderText,\n            opacity: 1,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    color: 'GrayText',\n                },\n                _a),\n        },\n    ];\n    var disabledPlaceholderStyles = {\n        color: semanticColors.disabledText,\n        selectors: (_b = {},\n            _b[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _b),\n    };\n    // The following lines are to create a semi-transparent color overlay for the disabled state with designer's approval.\n    // @todo: investigate the performance cost of the calculation below and apply if negligible.\n    //   Replacing with a static color for now.\n    // const rgbColor: IRGB | undefined = cssColor(palette.neutralQuaternaryAlt);\n    // const disabledOverlayColor = rgbColor ? `rgba(${rgbColor.r}, ${rgbColor.g}, ${rgbColor.b}, 0.29)` : 'transparent';\n    var disabledOverlayColor = 'rgba(218, 218, 218, 0.29)';\n    return {\n        root: [classNames.root, className, { position: 'relative' }],\n        text: [\n            classNames.text,\n            {\n                display: 'flex',\n                position: 'relative',\n                flexWrap: 'wrap',\n                alignItems: 'center',\n                boxSizing: 'border-box',\n                minWidth: 180,\n                minHeight: 30,\n                border: \"1px solid \".concat(inputBorder),\n                borderRadius: effects.roundedCorner2,\n            },\n            !isFocused &&\n                !disabled && {\n                selectors: {\n                    ':hover': {\n                        borderColor: inputBorderHovered,\n                    },\n                },\n            },\n            isFocused && !disabled && getInputFocusStyle(inputFocusBorderAlt, effects.roundedCorner2),\n            disabled && {\n                borderColor: disabledOverlayColor,\n                selectors: (_c = {\n                        ':after': {\n                            content: '\"\"',\n                            position: 'absolute',\n                            top: 0,\n                            right: 0,\n                            bottom: 0,\n                            left: 0,\n                            background: disabledOverlayColor,\n                        }\n                    },\n                    _c[HighContrastSelector] = {\n                        borderColor: 'GrayText',\n                        selectors: {\n                            ':after': {\n                                background: 'none',\n                            },\n                        },\n                    },\n                    _c),\n            },\n        ],\n        itemsWrapper: [\n            classNames.itemsWrapper,\n            {\n                display: 'flex',\n                flexWrap: 'wrap',\n                maxWidth: '100%',\n            },\n        ],\n        input: [\n            classNames.input,\n            fonts.medium,\n            {\n                height: 30,\n                border: 'none',\n                flexGrow: 1,\n                outline: 'none',\n                padding: '0 6px 0',\n                alignSelf: 'flex-end',\n                borderRadius: effects.roundedCorner2,\n                backgroundColor: 'transparent',\n                color: semanticColors.inputText,\n                selectors: {\n                    '::-ms-clear': {\n                        display: 'none',\n                    },\n                    '&:placeholder-shown': {\n                        textOverflow: 'ellipsis',\n                    },\n                },\n            },\n            getPlaceholderStyles(placeholderStyles),\n            disabled && getPlaceholderStyles(disabledPlaceholderStyles),\n            inputClassName,\n        ],\n        screenReaderText: hiddenContentStyle,\n    };\n}\n//# sourceMappingURL=BasePicker.styles.js.map","/**\n * Validation state of the user's input.\n * {@docCategory Pickers}\n */\nexport var ValidationState;\n(function (ValidationState) {\n    /** User input is valid. */\n    ValidationState[ValidationState[\"valid\"] = 0] = \"valid\";\n    /** User input could be valid or invalid, its state is not known yet. */\n    ValidationState[ValidationState[\"warning\"] = 1] = \"warning\";\n    /** User input is invalid. */\n    ValidationState[ValidationState[\"invalid\"] = 2] = \"invalid\";\n})(ValidationState || (ValidationState = {}));\n//# sourceMappingURL=BasePicker.types.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../../Styling';\nimport { SuggestionsItemGlobalClassNames as suggested } from '../../Suggestions/SuggestionsItem.styles';\nvar GlobalClassNames = {\n    root: 'ms-PeoplePicker-personaContent',\n    personaWrapper: 'ms-PeoplePicker-Persona',\n};\nexport function getStyles(props) {\n    var _a, _b, _c;\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var textSelectorsStyles = {\n        selectors: (_a = {},\n            _a[\".\".concat(suggested.isSuggested, \" &\")] = {\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = {\n                        color: 'HighlightText',\n                    },\n                    _b),\n            },\n            _a[\".\".concat(classNames.root, \":hover &\")] = {\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = {\n                        color: 'HighlightText',\n                    },\n                    _c),\n            },\n            _a),\n    };\n    return {\n        root: [\n            classNames.root,\n            {\n                width: '100%',\n                padding: '4px 12px',\n            },\n            className,\n        ],\n        personaWrapper: [\n            classNames.personaWrapper,\n            {\n                width: 180,\n            },\n        ],\n        subComponentStyles: {\n            persona: {\n                primaryText: textSelectorsStyles,\n                secondaryText: textSelectorsStyles,\n            },\n        },\n    };\n}\n//# sourceMappingURL=PeoplePickerItemSuggestion.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { getStyles } from './PeoplePickerItemSuggestion.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemSuggestionBase = function (props) {\n    var personaProps = props.personaProps, suggestionsProps = props.suggestionsProps, compact = props.compact, styles = props.styles, theme = props.theme, className = props.className;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: (suggestionsProps && suggestionsProps.suggestionsItemClassName) || className,\n    });\n    var personaStyles = classNames.subComponentStyles && classNames.subComponentStyles.persona\n        ? classNames.subComponentStyles.persona\n        : undefined;\n    return (React.createElement(\"div\", { className: classNames.root },\n        React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, className: classNames.personaWrapper, showSecondaryText: !compact, showOverflowTooltip: false }, personaProps))));\n};\nexport var PeoplePickerItemSuggestion = styled(PeoplePickerItemSuggestionBase, getStyles, undefined, { scope: 'PeoplePickerItemSuggestion' });\n//# sourceMappingURL=PeoplePickerItemSuggestion.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getRTL, getInitials, styled } from '../../../Utilities';\nimport { BasePicker, BasePickerListBelow } from '../BasePicker';\nimport { ValidationState } from '../BasePicker.types';\nimport { PeoplePickerItem } from './PeoplePickerItems/PeoplePickerItem';\nimport { PeoplePickerItemSuggestion } from './PeoplePickerItems/PeoplePickerItemSuggestion';\nimport { getStyles } from '../BasePicker.styles';\n/**\n * {@docCategory PeoplePicker}\n */\nvar BasePeoplePicker = /** @class */ (function (_super) {\n    __extends(BasePeoplePicker, _super);\n    function BasePeoplePicker() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return BasePeoplePicker;\n}(BasePicker));\nexport { BasePeoplePicker };\n/**\n * {@docCategory PeoplePicker}\n */\nvar MemberListPeoplePicker = /** @class */ (function (_super) {\n    __extends(MemberListPeoplePicker, _super);\n    function MemberListPeoplePicker() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return MemberListPeoplePicker;\n}(BasePickerListBelow));\nexport { MemberListPeoplePicker };\n/**\n * Standard People Picker.\n * {@docCategory PeoplePicker}\n */\nvar NormalPeoplePickerBase = /** @class */ (function (_super) {\n    __extends(NormalPeoplePickerBase, _super);\n    function NormalPeoplePickerBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /** Default props for NormalPeoplePicker. */\n    NormalPeoplePickerBase.defaultProps = {\n        onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n        onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n        createGenericItem: createGenericItem,\n    };\n    return NormalPeoplePickerBase;\n}(BasePeoplePicker));\nexport { NormalPeoplePickerBase };\n/**\n * Compact layout. It uses personas without secondary text when displaying search results.\n * {@docCategory PeoplePicker}\n */\nvar CompactPeoplePickerBase = /** @class */ (function (_super) {\n    __extends(CompactPeoplePickerBase, _super);\n    function CompactPeoplePickerBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /** Default props for CompactPeoplePicker. */\n    CompactPeoplePickerBase.defaultProps = {\n        onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n        onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps, compact: true })); },\n        createGenericItem: createGenericItem,\n    };\n    return CompactPeoplePickerBase;\n}(BasePeoplePicker));\nexport { CompactPeoplePickerBase };\n/**\n * MemberList layout. The selected people show up below the search box.\n * {@docCategory PeoplePicker}\n */\nvar ListPeoplePickerBase = /** @class */ (function (_super) {\n    __extends(ListPeoplePickerBase, _super);\n    function ListPeoplePickerBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /** Default props for ListPeoplePicker. */\n    ListPeoplePickerBase.defaultProps = {\n        onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n        onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n        createGenericItem: createGenericItem,\n    };\n    return ListPeoplePickerBase;\n}(MemberListPeoplePicker));\nexport { ListPeoplePickerBase };\n/**\n * {@docCategory PeoplePicker}\n */\nexport function createGenericItem(name, currentValidationState) {\n    var personaToConvert = {\n        key: name,\n        primaryText: name,\n        imageInitials: '!',\n        ValidationState: currentValidationState,\n    };\n    if (currentValidationState !== ValidationState.warning) {\n        personaToConvert.imageInitials = getInitials(name, getRTL());\n    }\n    return personaToConvert;\n}\nexport var NormalPeoplePicker = styled(NormalPeoplePickerBase, getStyles, undefined, {\n    scope: 'NormalPeoplePicker',\n});\nexport var CompactPeoplePicker = styled(CompactPeoplePickerBase, getStyles, undefined, {\n    scope: 'CompactPeoplePicker',\n});\nexport var ListPeoplePicker = styled(ListPeoplePickerBase, getStyles, undefined, {\n    scope: 'ListPeoplePickerBase',\n});\n//# sourceMappingURL=PeoplePicker.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../../../Styling';\nimport { ButtonGlobalClassNames } from '../../../Button/BaseButton.classNames';\nvar GlobalClassNames = {\n    root: 'ms-PickerPersona-container',\n    itemContent: 'ms-PickerItem-content',\n    removeButton: 'ms-PickerItem-removeButton',\n    isSelected: 'is-selected',\n    isInvalid: 'is-invalid',\n};\nvar REMOVE_BUTTON_SIZE = 24;\nvar PICKER_PERSONA_RADIUS = 15;\nexport function getStyles(props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    var className = props.className, theme = props.theme, selected = props.selected, invalid = props.invalid, disabled = props.disabled;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var personaPrimaryTextStyles = [\n        selected &&\n            !invalid &&\n            !disabled && {\n            color: palette.white,\n            selectors: (_a = {\n                    ':hover': {\n                        color: palette.white,\n                    }\n                },\n                _a[HighContrastSelector] = {\n                    color: 'HighlightText',\n                },\n                _a),\n        },\n        ((invalid && !selected) || (invalid && selected && disabled)) && {\n            color: palette.redDark,\n            borderBottom: \"2px dotted \".concat(palette.redDark),\n            selectors: (_b = {},\n                _b[\".\".concat(classNames.root, \":hover &\")] = {\n                    // override Persona root:hover selector\n                    color: palette.redDark,\n                },\n                _b),\n        },\n        invalid &&\n            selected &&\n            !disabled && {\n            color: palette.white,\n            borderBottom: \"2px dotted \".concat(palette.white),\n        },\n        disabled && {\n            selectors: (_c = {},\n                _c[HighContrastSelector] = {\n                    color: 'GrayText',\n                },\n                _c),\n        },\n    ];\n    var personaSecondaryTextStyles = [\n        selected &&\n            !invalid &&\n            !disabled && {\n            color: palette.white,\n            selectors: (_d = {\n                    ':hover': {\n                        color: palette.white,\n                    }\n                },\n                _d[HighContrastSelector] = {\n                    color: 'HighlightText',\n                },\n                _d),\n        },\n    ];\n    var personaCoinInitialsStyles = [\n        invalid && {\n            fontSize: fonts.xLarge.fontSize,\n        },\n    ];\n    return {\n        root: [\n            classNames.root,\n            getFocusStyle(theme, { inset: -2 }),\n            {\n                borderRadius: PICKER_PERSONA_RADIUS,\n                display: 'inline-flex',\n                alignItems: 'center',\n                background: palette.neutralLighter,\n                margin: '1px 2px',\n                cursor: 'default',\n                userSelect: 'none',\n                maxWidth: 300,\n                verticalAlign: 'middle',\n                minWidth: 0,\n                selectors: (_e = {\n                        ':hover': {\n                            background: !selected && !disabled ? palette.neutralLight : '',\n                        }\n                    },\n                    _e[HighContrastSelector] = [{ border: '1px solid WindowText' }, disabled && { borderColor: 'GrayText' }],\n                    _e),\n            },\n            selected &&\n                !disabled && [\n                classNames.isSelected,\n                {\n                    background: palette.themePrimary,\n                    selectors: (_f = {},\n                        _f[HighContrastSelector] = __assign({ borderColor: 'HighLight', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                        _f),\n                },\n            ],\n            invalid && [classNames.isInvalid],\n            invalid &&\n                selected &&\n                !disabled && {\n                background: palette.redDark,\n            },\n            className,\n        ],\n        itemContent: [\n            classNames.itemContent,\n            {\n                flex: '0 1 auto',\n                minWidth: 0,\n                // CSS below is needed for IE 11 to properly truncate long persona names in the picker\n                // and to clip the presence indicator (in all browsers)\n                maxWidth: '100%',\n                overflow: 'hidden',\n            },\n        ],\n        removeButton: [\n            classNames.removeButton,\n            {\n                borderRadius: PICKER_PERSONA_RADIUS,\n                color: palette.neutralPrimary,\n                flex: '0 0 auto',\n                width: REMOVE_BUTTON_SIZE,\n                height: REMOVE_BUTTON_SIZE,\n                selectors: {\n                    ':hover': {\n                        background: palette.neutralTertiaryAlt,\n                        color: palette.neutralDark,\n                    },\n                },\n            },\n            selected && [\n                getFocusStyle(theme, {\n                    inset: 2,\n                    borderColor: 'transparent',\n                    highContrastStyle: { inset: 2, left: 1, top: 1, bottom: 1, right: 1, outlineColor: 'ButtonText' },\n                    outlineColor: palette.white,\n                    borderRadius: PICKER_PERSONA_RADIUS,\n                }),\n                {\n                    color: palette.white,\n                    selectors: (_g = {\n                            ':hover': {\n                                color: palette.white,\n                                background: palette.themeDark,\n                            },\n                            ':active': {\n                                color: palette.white,\n                                background: palette.themeDarker,\n                            }\n                        },\n                        _g[HighContrastSelector] = {\n                            color: 'HighlightText',\n                        },\n                        _g),\n                },\n                invalid && {\n                    selectors: {\n                        ':hover': {\n                            background: palette.red,\n                        },\n                        ':active': {\n                            background: palette.redDark,\n                        },\n                    },\n                },\n            ],\n            disabled && {\n                selectors: (_h = {},\n                    _h[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                        color: semanticColors.buttonText,\n                    },\n                    _h),\n            },\n        ],\n        subComponentStyles: {\n            persona: {\n                primaryText: personaPrimaryTextStyles,\n                secondaryText: personaSecondaryTextStyles,\n            },\n            personaCoin: {\n                initials: personaCoinInitialsStyles,\n            },\n        },\n    };\n}\n//# sourceMappingURL=PeoplePickerItem.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getId, classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { IconButton } from '../../../../Button';\nimport { ValidationState } from '../../BasePicker.types';\nimport { getStyles } from './PeoplePickerItem.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemBase = function (props) {\n    var item = props.item, onRemoveItem = props.onRemoveItem, index = props.index, selected = props.selected, removeButtonAriaLabel = props.removeButtonAriaLabel, styles = props.styles, theme = props.theme, className = props.className, disabled = props.disabled, removeButtonIconProps = props.removeButtonIconProps;\n    var buttonRef = React.createRef();\n    var handleClick = function () {\n        var _a;\n        (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n    };\n    var itemId = getId();\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        selected: selected,\n        disabled: disabled,\n        invalid: item.ValidationState === ValidationState.warning,\n    });\n    var personaStyles = classNames.subComponentStyles\n        ? classNames.subComponentStyles.persona\n        : undefined;\n    var personaCoinStyles = classNames.subComponentStyles\n        ? classNames.subComponentStyles.personaCoin\n        : undefined;\n    return (React.createElement(\"div\", { \"data-selection-index\": index, className: classNames.root, role: 'listitem', key: index, onClick: handleClick },\n        React.createElement(\"div\", { className: classNames.itemContent, id: 'selectedItemPersona-' + itemId },\n            React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, coinProps: { styles: personaCoinStyles } }, item))),\n        React.createElement(IconButton, { componentRef: buttonRef, id: itemId, onClick: onRemoveItem, disabled: disabled, iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, className: classNames.removeButton, ariaLabel: removeButtonAriaLabel, \"aria-labelledby\": \"\".concat(itemId, \" selectedItemPersona-\").concat(itemId) })));\n};\nexport var PeoplePickerItem = styled(PeoplePickerItemBase, getStyles, undefined, { scope: 'PeoplePickerItem' });\n//# sourceMappingURL=PeoplePickerItem.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nexport var SuggestionsItemGlobalClassNames = {\n    root: 'ms-Suggestions-item',\n    itemButton: 'ms-Suggestions-itemButton',\n    closeButton: 'ms-Suggestions-closeButton',\n    isSuggested: 'is-suggested',\n};\nexport function getStyles(props) {\n    var _a, _b, _c, _d, _e, _f;\n    var className = props.className, theme = props.theme, suggested = props.suggested;\n    var palette = theme.palette, semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(SuggestionsItemGlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            {\n                display: 'flex',\n                alignItems: 'stretch',\n                boxSizing: 'border-box',\n                width: '100%',\n                position: 'relative',\n                selectors: {\n                    '&:hover': {\n                        background: semanticColors.menuItemBackgroundHovered,\n                    },\n                    '&:hover .ms-Suggestions-closeButton': {\n                        display: 'block',\n                    },\n                },\n            },\n            suggested && {\n                selectors: (_a = {},\n                    _a[\".\".concat(IsFocusVisibleClassName, \" &\")] = {\n                        selectors: (_b = {},\n                            _b[\".\".concat(classNames.closeButton)] = {\n                                display: 'block',\n                                background: semanticColors.menuItemBackgroundPressed,\n                            },\n                            _b),\n                    },\n                    _a[':after'] = {\n                        pointerEvents: 'none',\n                        content: '\"\"',\n                        position: 'absolute',\n                        left: 0,\n                        top: 0,\n                        bottom: 0,\n                        right: 0,\n                        border: \"1px solid \".concat(theme.semanticColors.focusBorder),\n                    },\n                    _a),\n            },\n            className,\n        ],\n        itemButton: [\n            classNames.itemButton,\n            {\n                width: '100%',\n                padding: 0,\n                border: 'none',\n                height: '100%',\n                // Force the item button to be collapsible so it can always shrink\n                // to accommodate the close button as a peer in its flex container.\n                minWidth: 0,\n                // Require for IE11 to truncate the component.\n                overflow: 'hidden',\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = {\n                        color: 'WindowText',\n                        selectors: {\n                            ':hover': __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n                        },\n                    },\n                    _c[':hover'] = {\n                        color: semanticColors.menuItemTextHovered,\n                    },\n                    _c),\n            },\n            suggested && [\n                classNames.isSuggested,\n                {\n                    background: semanticColors.menuItemBackgroundPressed,\n                    selectors: (_d = {\n                            ':hover': {\n                                background: semanticColors.menuDivider,\n                            }\n                        },\n                        _d[HighContrastSelector] = __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n                        _d),\n                },\n            ],\n        ],\n        closeButton: [\n            classNames.closeButton,\n            {\n                display: 'none',\n                color: palette.neutralSecondary,\n                padding: '0 4px',\n                height: 'auto',\n                width: 32,\n                selectors: (_e = {\n                        ':hover, :active': {\n                            background: palette.neutralTertiaryAlt,\n                            color: palette.neutralDark,\n                        }\n                    },\n                    _e[HighContrastSelector] = {\n                        color: 'WindowText',\n                    },\n                    _e),\n            },\n            suggested && (_f = {},\n                _f[\".\".concat(IsFocusVisibleClassName, \" &\")] = {\n                    selectors: {\n                        ':hover, :active': {\n                            background: palette.neutralTertiary,\n                        },\n                    },\n                },\n                _f.selectors = {\n                    ':hover, :active': {\n                        background: palette.neutralTertiary,\n                        color: palette.neutralPrimary,\n                    },\n                },\n                _f),\n        ],\n    };\n}\n//# sourceMappingURL=SuggestionsItem.styles.js.map","import { getGlobalClassNames, getFocusStyle, HighContrastSelector } from '../../../Styling';\nimport { ButtonGlobalClassNames } from '../../Button/BaseButton.classNames';\nimport { getRTL } from '../../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-TagItem',\n    text: 'ms-TagItem-text',\n    close: 'ms-TagItem-close',\n    isSelected: 'is-selected',\n};\nvar TAG_HEIGHT = 26;\nexport function getStyles(props) {\n    var _a, _b, _c, _d, _e;\n    var className = props.className, theme = props.theme, selected = props.selected, disabled = props.disabled;\n    var palette = theme.palette, effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            fonts.medium,\n            getFocusStyle(theme),\n            {\n                boxSizing: 'content-box',\n                flexShrink: '1',\n                margin: 2,\n                height: TAG_HEIGHT,\n                lineHeight: TAG_HEIGHT,\n                cursor: 'default',\n                userSelect: 'none',\n                display: 'flex',\n                flexWrap: 'nowrap',\n                maxWidth: 300,\n                minWidth: 0,\n                borderRadius: effects.roundedCorner2,\n                color: semanticColors.inputText,\n                background: palette.neutralLighter,\n                selectors: (_a = {\n                        ':hover': [\n                            !disabled &&\n                                !selected && {\n                                color: palette.neutralDark,\n                                background: palette.neutralLight,\n                                selectors: {\n                                    '.ms-TagItem-close': {\n                                        color: palette.neutralPrimary,\n                                    },\n                                },\n                            },\n                            disabled && { background: palette.neutralLighter },\n                        ]\n                    },\n                    _a[HighContrastSelector] = {\n                        border: \"1px solid \".concat(!selected ? 'WindowText' : 'WindowFrame'),\n                    },\n                    _a),\n            },\n            disabled && {\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = {\n                        borderColor: 'GrayText',\n                    },\n                    _b),\n            },\n            selected &&\n                !disabled && [\n                classNames.isSelected,\n                {\n                    background: palette.themePrimary,\n                    color: palette.white,\n                },\n            ],\n            className,\n        ],\n        text: [\n            classNames.text,\n            {\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                whiteSpace: 'nowrap',\n                minWidth: 30,\n                margin: '0 8px',\n            },\n            disabled && {\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = {\n                        color: 'GrayText',\n                    },\n                    _c),\n            },\n        ],\n        close: [\n            classNames.close,\n            getFocusStyle(theme, { borderColor: 'transparent', inset: 1, outlineColor: palette.white }),\n            {\n                color: palette.neutralSecondary,\n                width: 30,\n                height: '100%',\n                flex: '0 0 auto',\n                borderRadius: getRTL(theme)\n                    ? \"\".concat(effects.roundedCorner2, \" 0 0 \").concat(effects.roundedCorner2)\n                    : \"0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0\"),\n                selectors: (_d = {\n                        ':hover': {\n                            background: palette.neutralQuaternaryAlt,\n                            color: palette.neutralPrimary,\n                        }\n                    },\n                    _d[\".\".concat(classNames.isSelected, \" &, :focus\")] = {\n                        color: palette.white,\n                        background: palette.themePrimary,\n                    },\n                    _d[':focus:hover'] = {\n                        color: palette.white,\n                        background: palette.themeDark,\n                    },\n                    _d[':active'] = {\n                        color: palette.white,\n                        backgroundColor: palette.themeDark,\n                    },\n                    _d),\n            },\n            disabled && {\n                selectors: (_e = {},\n                    _e[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n                        color: palette.neutralSecondary,\n                    },\n                    _e),\n            },\n        ],\n    };\n}\n//# sourceMappingURL=TagItem.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, classNamesFunction } from '../../../Utilities';\nimport { IconButton } from '../../../Button';\nimport { getStyles } from './TagItem.styles';\nimport { useId } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory TagPicker}\n */\nexport var TagItemBase = function (props) {\n    var theme = props.theme, styles = props.styles, selected = props.selected, disabled = props.disabled, enableTagFocusInDisabledPicker = props.enableTagFocusInDisabledPicker, children = props.children, className = props.className, index = props.index, onRemoveItem = props.onRemoveItem, removeButtonAriaLabel = props.removeButtonAriaLabel, _a = props.title, title = _a === void 0 ? typeof props.children === 'string' ? props.children : props.item.name : _a, removeButtonIconProps = props.removeButtonIconProps;\n    var buttonRef = React.createRef();\n    var handleClick = function () {\n        var _a;\n        (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n    };\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        selected: selected,\n        disabled: disabled,\n    });\n    var itemId = useId();\n    var disabledAttrs = enableTagFocusInDisabledPicker\n        ? {\n            'aria-disabled': disabled,\n            tabindex: 0,\n        }\n        : {\n            disabled: disabled,\n        };\n    return (React.createElement(\"div\", { \"data-selection-index\": index, className: classNames.root, role: 'listitem', key: index, onClick: handleClick },\n        React.createElement(\"span\", { className: classNames.text, title: title, id: \"\".concat(itemId, \"-text\") }, children),\n        React.createElement(IconButton, __assign({ componentRef: buttonRef, id: itemId, onClick: onRemoveItem }, disabledAttrs, { iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, className: classNames.close, \"aria-labelledby\": \"\".concat(itemId, \"-removeLabel \").concat(itemId, \"-text\") })),\n        React.createElement(\"span\", { id: \"\".concat(itemId, \"-removeLabel\"), hidden: true }, removeButtonAriaLabel)));\n};\nexport var TagItem = styled(TagItemBase, getStyles, undefined, {\n    scope: 'TagItem',\n});\n//# sourceMappingURL=TagItem.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n    suggestionTextOverflow: 'ms-TagItem-TextOverflow',\n};\nexport function getStyles(props) {\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        suggestionTextOverflow: [\n            classNames.suggestionTextOverflow,\n            {\n                overflow: 'hidden',\n                textOverflow: 'ellipsis',\n                maxWidth: '60vw',\n                padding: '6px 12px 7px',\n                whiteSpace: 'nowrap',\n            },\n            className,\n        ],\n    };\n}\n//# sourceMappingURL=TagItemSuggestion.styles.js.map","import * as React from 'react';\nimport { classNamesFunction, styled } from '../../../Utilities';\nimport { getStyles } from './TagItemSuggestion.styles';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory TagPicker}\n */\nexport var TagItemSuggestionBase = function (props) {\n    var styles = props.styles, theme = props.theme, children = props.children;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n    });\n    return React.createElement(\"div\", { className: classNames.suggestionTextOverflow },\n        \" \",\n        children,\n        \" \");\n};\nexport var TagItemSuggestion = styled(TagItemSuggestionBase, getStyles, undefined, { scope: 'TagItemSuggestion' });\n//# sourceMappingURL=TagItemSuggestion.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { styled } from '../../../Utilities';\nimport { BasePicker } from '../BasePicker';\nimport { getStyles } from '../BasePicker.styles';\nimport { TagItem } from './TagItem';\nimport { TagItemSuggestion } from './TagItemSuggestion';\n/**\n * {@docCategory TagPicker}\n */\nvar TagPickerBase = /** @class */ (function (_super) {\n    __extends(TagPickerBase, _super);\n    function TagPickerBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TagPickerBase.defaultProps = {\n        onRenderItem: function (props) { return React.createElement(TagItem, __assign({}, props), props.item.name); },\n        onRenderSuggestionsItem: function (props) { return React.createElement(TagItemSuggestion, null, props.name); },\n    };\n    return TagPickerBase;\n}(BasePicker));\nexport { TagPickerBase };\nexport var TagPicker = styled(TagPickerBase, getStyles, undefined, {\n    scope: 'TagPicker',\n});\n//# sourceMappingURL=TagPicker.js.map","import * as React from 'react';\nexport var ThemeContext = React.createContext(undefined);\n//# sourceMappingURL=ThemeContext.js.map","import { useContext } from 'react';\nimport { useCustomizationSettings } from '@fluentui/utilities';\nimport { createTheme } from '@fluentui/theme';\nimport { ThemeContext } from './ThemeContext';\n/**\n * Get theme from CustomizerContext or Customizations singleton.\n */\nfunction useCompatTheme() {\n    return useCustomizationSettings(['theme']).theme;\n}\n/**\n * React hook for programmatically accessing the theme.\n */\nexport var useTheme = function () {\n    var theme = useContext(ThemeContext);\n    var legacyTheme = useCompatTheme();\n    return theme || legacyTheme || createTheme({});\n};\n//# sourceMappingURL=useTheme.js.map","import { MAX_COLOR_ALPHA } from './consts';\n/**\n * @internal\n * Get a CSS color string from some color components.\n * If `a` is specified and not 100, returns an `rgba()` string.\n * Otherwise returns `hex` prefixed with #.\n */\nexport function _rgbaOrHexString(r, g, b, a, hex) {\n    return a === MAX_COLOR_ALPHA || typeof a !== 'number' ? \"#\".concat(hex) : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a / MAX_COLOR_ALPHA, \")\");\n}\n//# sourceMappingURL=_rgbaOrHexString.js.map","/** Clamp a value to ensure it falls within a given range. */\nexport function clamp(value, max, min) {\n    if (min === void 0) { min = 0; }\n    return value < min ? min : value > max ? max : value;\n}\n//# sourceMappingURL=clamp.js.map","export var MAX_COLOR_SATURATION = 100;\nexport var MAX_COLOR_HUE = 359;\nexport var MAX_COLOR_VALUE = 100;\nexport var MAX_COLOR_RGB = 255;\n/** @deprecated Use MAX_COLOR_RGB (255) or MAX_COLOR_ALPHA (100) */\nexport var MAX_COLOR_RGBA = MAX_COLOR_RGB;\nexport var MAX_COLOR_ALPHA = 100;\n/** Minimum length for a hexadecimal color string (not including the #) */\nexport var MIN_HEX_LENGTH = 3;\n/** Maximum length for a hexadecimal color string (not including the #) */\nexport var MAX_HEX_LENGTH = 6;\n/** Minimum length for a string of an RGBA color component */\nexport var MIN_RGBA_LENGTH = 1;\n/** Maximum length for a string of an RGBA color component */\nexport var MAX_RGBA_LENGTH = 3;\n/** Regular expression matching only valid hexadecimal chars */\nexport var HEX_REGEX = /^[\\da-f]{0,6}$/i;\n/** Regular expression matching only numbers */\nexport var RGBA_REGEX = /^\\d{0,3}$/;\n//# sourceMappingURL=consts.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { rgb2hsv } from './rgb2hsv';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/** Converts an RGBA color to a color object (alpha defaults to 100). */\nexport function getColorFromRGBA(rgba) {\n    var _a = rgba.a, a = _a === void 0 ? MAX_COLOR_ALPHA : _a, b = rgba.b, g = rgba.g, r = rgba.r;\n    var _b = rgb2hsv(r, g, b), h = _b.h, s = _b.s, v = _b.v;\n    var hex = rgb2hex(r, g, b);\n    var str = _rgbaOrHexString(r, g, b, a, hex);\n    var t = MAX_COLOR_ALPHA - a;\n    return { a: a, b: b, g: g, h: h, hex: hex, r: r, s: s, str: str, v: v, t: t };\n}\n//# sourceMappingURL=getColorFromRGBA.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts RGB components to an HSV color. */\nexport function rgb2hsv(r, g, b) {\n    var h = NaN;\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var delta = max - min;\n    // hue\n    if (delta === 0) {\n        h = 0;\n    }\n    else if (r === max) {\n        h = ((g - b) / delta) % 6;\n    }\n    else if (g === max) {\n        h = (b - r) / delta + 2;\n    }\n    else if (b === max) {\n        h = (r - g) / delta + 4;\n    }\n    h = Math.round(h * 60);\n    if (h < 0) {\n        h += 360;\n    }\n    // saturation\n    var s = Math.round((max === 0 ? 0 : delta / max) * 100);\n    // value\n    var v = Math.round((max / MAX_COLOR_RGB) * 100);\n    return { h: h, s: s, v: v };\n}\n//# sourceMappingURL=rgb2hsv.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { hsl2rgb } from './hsl2rgb';\n/**\n * Converts a valid CSS color string to an RGB color.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n * Alpha in returned color defaults to 100.\n * Four and eight digit hex values (with alpha) are supported if the current browser supports them.\n */\nexport function cssColor(color) {\n    if (!color) {\n        return undefined;\n    }\n    // Need to check the following valid color formats: RGB(A), HSL(A), hex, named color\n    // First check for well formatted RGB(A), HSL(A), and hex formats at the start.\n    // This is for perf (no creating an element) and catches the intentional \"transparent\" color\n    //   case early on.\n    var easyColor = _rgba(color) || _hex6(color) || _hex3(color) || _hsla(color);\n    if (easyColor) {\n        return easyColor;\n    }\n    // if the above fails, do the more expensive catch-all\n    return _browserCompute(color);\n}\n/**\n * Uses the browser's getComputedStyle() to determine what the passed-in color is.\n * This assumes _rgba, _hex6, _hex3, and _hsla have already been tried and all failed.\n * This works by attaching an element to the DOM, which may fail in server-side rendering\n *   or with headless browsers.\n */\nfunction _browserCompute(str) {\n    if (typeof document === 'undefined') {\n        // don't throw an error when used server-side\n        return undefined;\n    }\n    var elem = document.createElement('div');\n    elem.style.backgroundColor = str;\n    // This element must be attached to the DOM for getComputedStyle() to have a value\n    elem.style.position = 'absolute';\n    elem.style.top = '-9999px';\n    elem.style.left = '-9999px';\n    elem.style.height = '1px';\n    elem.style.width = '1px';\n    document.body.appendChild(elem);\n    var eComputedStyle = getComputedStyle(elem);\n    var computedColor = eComputedStyle && eComputedStyle.backgroundColor;\n    document.body.removeChild(elem);\n    // computedColor is always an RGB(A) string, except for invalid colors in IE/Edge which return 'transparent'\n    // browsers return one of these if the color string is invalid,\n    // so need to differentiate between an actual error and intentionally passing in this color\n    if (computedColor === 'rgba(0, 0, 0, 0)' || computedColor === 'transparent') {\n        switch (str.trim()) {\n            // RGB and HSL were already checked at the start of the function\n            case 'transparent':\n            case '#0000':\n            case '#00000000':\n                return { r: 0, g: 0, b: 0, a: 0 };\n        }\n        return undefined;\n    }\n    return _rgba(computedColor);\n}\n/**\n * If `str` is in valid `rgb()` or `rgba()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _rgba(str) {\n    if (!str) {\n        return undefined;\n    }\n    var match = str.match(/^rgb(a?)\\(([\\d., ]+)\\)$/);\n    if (match) {\n        var hasAlpha = !!match[1];\n        var expectedPartCount = hasAlpha ? 4 : 3;\n        var parts = match[2].split(/ *, */).map(Number);\n        if (parts.length === expectedPartCount) {\n            return {\n                r: parts[0],\n                g: parts[1],\n                b: parts[2],\n                a: hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA,\n            };\n        }\n    }\n}\n/**\n * If `str` is in `hsl()` or `hsla()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _hsla(str) {\n    var match = str.match(/^hsl(a?)\\(([\\d., ]+)\\)$/);\n    if (match) {\n        var hasAlpha = !!match[1];\n        var expectedPartCount = hasAlpha ? 4 : 3;\n        var parts = match[2].split(/ *, */).map(Number);\n        if (parts.length === expectedPartCount) {\n            var rgba = hsl2rgb(parts[0], parts[1], parts[2]);\n            rgba.a = hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA;\n            return rgba;\n        }\n    }\n}\n/**\n * If `str` is in valid 6-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex6(str) {\n    if (str[0] === '#' && str.length === 7 && /^#[\\da-fA-F]{6}$/.test(str)) {\n        return {\n            r: parseInt(str.slice(1, 3), 16),\n            g: parseInt(str.slice(3, 5), 16),\n            b: parseInt(str.slice(5, 7), 16),\n            a: MAX_COLOR_ALPHA,\n        };\n    }\n}\n/**\n * If `str` is in valid 3-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex3(str) {\n    if (str[0] === '#' && str.length === 4 && /^#[\\da-fA-F]{3}$/.test(str)) {\n        return {\n            r: parseInt(str[1] + str[1], 16),\n            g: parseInt(str[2] + str[2], 16),\n            b: parseInt(str[3] + str[3], 16),\n            a: MAX_COLOR_ALPHA,\n        };\n    }\n}\n//# sourceMappingURL=cssColor.js.map","import { __assign } from \"tslib\";\nimport { cssColor } from './cssColor';\nimport { getColorFromRGBA } from './getColorFromRGBA';\n/**\n * Converts a CSS color string to a color object.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n *\n * `inputColor` will be used unmodified as the `str` property of the returned object.\n * Alpha defaults to 100 if not specified in `inputColor`.\n * Returns undefined if the color string is invalid/not recognized.\n */\nexport function getColorFromString(inputColor) {\n    var color = cssColor(inputColor);\n    if (!color) {\n        return;\n    }\n    return __assign(__assign({}, getColorFromRGBA(color)), { str: inputColor });\n}\n//# sourceMappingURL=getColorFromString.js.map","import { hsl2hsv } from './hsl2hsv';\nimport { hsv2rgb } from './hsv2rgb';\n/** Converts HSL components to an RGB color. Does not set the alpha value. */\nexport function hsl2rgb(h, s, l) {\n    var hsv = hsl2hsv(h, s, l);\n    return hsv2rgb(hsv.h, hsv.s, hsv.v);\n}\n//# sourceMappingURL=hsl2rgb.js.map","/** Converts HSL components to an HSV color. */\nexport function hsl2hsv(h, s, l) {\n    s *= (l < 50 ? l : 100 - l) / 100;\n    var v = l + s;\n    return {\n        h: h,\n        s: v === 0 ? 0 : ((2 * s) / v) * 100,\n        v: v,\n    };\n}\n//# sourceMappingURL=hsl2hsv.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts HSV components to an RGB color. Does not set the alpha value. */\nexport function hsv2rgb(h, s, v) {\n    s = s / 100;\n    v = v / 100;\n    var rgb = [];\n    var c = v * s;\n    var hh = h / 60;\n    var x = c * (1 - Math.abs((hh % 2) - 1));\n    var m = v - c;\n    switch (Math.floor(hh)) {\n        case 0:\n            rgb = [c, x, 0];\n            break;\n        case 1:\n            rgb = [x, c, 0];\n            break;\n        case 2:\n            rgb = [0, c, x];\n            break;\n        case 3:\n            rgb = [0, x, c];\n            break;\n        case 4:\n            rgb = [x, 0, c];\n            break;\n        case 5:\n            rgb = [c, 0, x];\n            break;\n    }\n    return {\n        r: Math.round(MAX_COLOR_RGB * (rgb[0] + m)),\n        g: Math.round(MAX_COLOR_RGB * (rgb[1] + m)),\n        b: Math.round(MAX_COLOR_RGB * (rgb[2] + m)),\n    };\n}\n//# sourceMappingURL=hsv2rgb.js.map","import { MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Converts RGB components to a hex color string (without # prefix). */\nexport function rgb2hex(r, g, b) {\n    return [_rgbToPaddedHex(r), _rgbToPaddedHex(g), _rgbToPaddedHex(b)].join('');\n}\n/** Converts an RGB component to a 0-padded hex component of length 2. */\nfunction _rgbToPaddedHex(num) {\n    num = clamp(num, MAX_COLOR_RGB);\n    var hex = num.toString(16);\n    return hex.length === 1 ? '0' + hex : hex;\n}\n//# sourceMappingURL=rgb2hex.js.map","var REACT_LIFECYCLE_EXCLUSIONS = [\n    'setState',\n    'render',\n    'componentWillMount',\n    'UNSAFE_componentWillMount',\n    'componentDidMount',\n    'componentWillReceiveProps',\n    'UNSAFE_componentWillReceiveProps',\n    'shouldComponentUpdate',\n    'componentWillUpdate',\n    'getSnapshotBeforeUpdate',\n    'UNSAFE_componentWillUpdate',\n    'componentDidUpdate',\n    'componentWillUnmount',\n];\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndestination, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nsource, exclusions) {\n    if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }\n    var hoisted = [];\n    var _loop_1 = function (methodName) {\n        if (typeof source[methodName] === 'function' &&\n            destination[methodName] === undefined &&\n            (!exclusions || exclusions.indexOf(methodName) === -1)) {\n            hoisted.push(methodName);\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            destination[methodName] = function () {\n                var args = [];\n                for (var _i = 0; _i < arguments.length; _i++) {\n                    args[_i] = arguments[_i];\n                }\n                source[methodName].apply(source, args);\n            };\n        }\n    };\n    for (var methodName in source) {\n        _loop_1(methodName);\n    }\n    return hoisted;\n}\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source, methodNames) {\n    methodNames.forEach(function (methodName) { return delete source[methodName]; });\n}\n//# sourceMappingURL=hoist.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\nvar BaseDecorator = /** @class */ (function (_super) {\n    __extends(BaseDecorator, _super);\n    function BaseDecorator(props) {\n        var _this = _super.call(this, props) || this;\n        _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n        return _this;\n    }\n    /**\n     * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n     * (and unhoisting as appropriate) methods from said component.\n     *\n     * Pass this method as the argument to the 'ref' property of the composed component.\n     */\n    BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {\n        this._composedComponentInstance = composedComponentInstance;\n        if (composedComponentInstance) {\n            this._hoisted = hoistMethods(this, composedComponentInstance);\n        }\n        else if (this._hoisted) {\n            unhoistMethods(this, this._hoisted);\n        }\n    };\n    return BaseDecorator;\n}(React.Component));\nexport { BaseDecorator };\n//# sourceMappingURL=BaseDecorator.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n    /** Width \\<= 479px */\n    ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n    /** Width \\> 479px and \\<= 639px */\n    ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n    /** Width \\> 639px and \\<= 1023px */\n    ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n    /** Width \\> 1023px and \\<= 1365px */\n    ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n    /** Width \\> 1365px and \\<= 1919px */\n    ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n    /** Width \\> 1919px */\n    ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n    ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode) {\n    _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element) {\n    var currentWindow = getWindow(element);\n    if (currentWindow) {\n        getResponsiveMode(currentWindow);\n    }\n}\nexport function getInitialResponsiveMode() {\n    var _a;\n    return (_a = _defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode) !== null && _a !== void 0 ? _a : ResponsiveMode.large;\n}\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(ComposedComponent) {\n    var _a;\n    // eslint-disable-next-line deprecation/deprecation\n    var resultClass = (_a = /** @class */ (function (_super) {\n            __extends(WithResponsiveMode, _super);\n            function WithResponsiveMode(props) {\n                var _this = _super.call(this, props) || this;\n                _this._onResize = function () {\n                    var responsiveMode = getResponsiveMode(_this.context.window);\n                    if (responsiveMode !== _this.state.responsiveMode) {\n                        _this.setState({\n                            responsiveMode: responsiveMode,\n                        });\n                    }\n                };\n                _this._events = new EventGroup(_this);\n                _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n                _this.state = {\n                    responsiveMode: getInitialResponsiveMode(),\n                };\n                return _this;\n            }\n            WithResponsiveMode.prototype.componentDidMount = function () {\n                this._events.on(this.context.window, 'resize', this._onResize);\n                this._onResize();\n            };\n            WithResponsiveMode.prototype.componentWillUnmount = function () {\n                this._events.dispose();\n            };\n            WithResponsiveMode.prototype.render = function () {\n                var responsiveMode = this.state.responsiveMode;\n                return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n            };\n            return WithResponsiveMode;\n        }(BaseDecorator)),\n        _a.contextType = WindowContext,\n        _a);\n    return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n    try {\n        return currentWindow.document.documentElement.clientWidth;\n    }\n    catch (e) {\n        return currentWindow.innerWidth;\n    }\n}\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow) {\n    var responsiveMode = ResponsiveMode.small;\n    if (currentWindow) {\n        try {\n            while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n                responsiveMode++;\n            }\n        }\n        catch (e) {\n            // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n            responsiveMode = getInitialResponsiveMode();\n        }\n        // Tracking last mode just gives us a better default in future renders,\n        // which avoids starting with the wrong value if we've measured once.\n        _lastMode = responsiveMode;\n    }\n    else {\n        if (_defaultMode !== undefined) {\n            responsiveMode = _defaultMode;\n        }\n        else {\n            throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n                'Call setResponsiveMode to define what the responsive mode is.');\n        }\n    }\n    return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import { EventGroup, getDocument } from '../../Utilities';\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button\nvar DragDropHelper = /** @class */ (function () {\n    function DragDropHelper(params) {\n        this._selection = params.selection;\n        this._dragEnterCounts = {};\n        this._activeTargets = {};\n        this._lastId = 0;\n        // To make this class cheap to create, which allows simplifying some logic elsewhere,\n        // only initialize the event group and global event handlers as needed.\n        this._initialized = false;\n    }\n    DragDropHelper.prototype.dispose = function () {\n        if (this._events) {\n            this._events.dispose();\n        }\n    };\n    DragDropHelper.prototype.subscribe = function (root, events, dragDropOptions) {\n        var _this = this;\n        if (!this._initialized) {\n            this._events = new EventGroup(this);\n            var doc = getDocument();\n            // clear drag data when mouse up, use capture event to ensure it will be run\n            if (doc) {\n                this._events.on(doc.body, 'mouseup', this._onMouseUp.bind(this), true);\n                this._events.on(doc, 'mouseup', this._onDocumentMouseUp.bind(this), true);\n            }\n            this._initialized = true;\n        }\n        var _a = dragDropOptions.key, key = _a === void 0 ? \"\".concat(++this._lastId) : _a;\n        var handlers = [];\n        var onDragStart;\n        var onDragLeave;\n        var onDragEnter;\n        var onDragEnd;\n        var onDrop;\n        var onDragOver;\n        var onMouseDown;\n        var isDraggable;\n        var isDroppable;\n        var activeTarget;\n        if (dragDropOptions && root) {\n            var eventMap = dragDropOptions.eventMap, context = dragDropOptions.context, updateDropState_1 = dragDropOptions.updateDropState;\n            var dragDropTarget = {\n                root: root,\n                options: dragDropOptions,\n                key: key,\n            };\n            isDraggable = this._isDraggable(dragDropTarget);\n            isDroppable = this._isDroppable(dragDropTarget);\n            if (isDraggable || isDroppable) {\n                if (eventMap) {\n                    for (var _i = 0, eventMap_1 = eventMap; _i < eventMap_1.length; _i++) {\n                        var event_1 = eventMap_1[_i];\n                        var handler = {\n                            callback: event_1.callback.bind(null, context),\n                            eventName: event_1.eventName,\n                        };\n                        handlers.push(handler);\n                        this._events.on(root, handler.eventName, handler.callback);\n                    }\n                }\n            }\n            if (isDroppable) {\n                // If the target is droppable, wire up global event listeners to track drop-related events.\n                onDragLeave = function (event) {\n                    if (!event.isHandled) {\n                        event.isHandled = true;\n                        _this._dragEnterCounts[key]--;\n                        if (_this._dragEnterCounts[key] === 0) {\n                            updateDropState_1(false /* isDropping */, event);\n                        }\n                    }\n                };\n                onDragEnter = function (event) {\n                    event.preventDefault(); // needed for IE\n                    if (!event.isHandled) {\n                        event.isHandled = true;\n                        _this._dragEnterCounts[key]++;\n                        if (_this._dragEnterCounts[key] === 1) {\n                            updateDropState_1(true /* isDropping */, event);\n                        }\n                    }\n                };\n                onDragEnd = function (event) {\n                    _this._dragEnterCounts[key] = 0;\n                    updateDropState_1(false /* isDropping */, event);\n                };\n                onDrop = function (event) {\n                    _this._dragEnterCounts[key] = 0;\n                    updateDropState_1(false /* isDropping */, event);\n                    if (dragDropOptions.onDrop) {\n                        dragDropOptions.onDrop(dragDropOptions.context.data, event);\n                    }\n                };\n                onDragOver = function (event) {\n                    event.preventDefault();\n                    if (dragDropOptions.onDragOver) {\n                        dragDropOptions.onDragOver(dragDropOptions.context.data, event);\n                    }\n                };\n                this._dragEnterCounts[key] = 0;\n                // dragenter and dragleave will be fired when hover to the child element\n                // but we only want to change state when enter or leave the current element\n                // use the count to ensure it.\n                events.on(root, 'dragenter', onDragEnter);\n                events.on(root, 'dragleave', onDragLeave);\n                events.on(root, 'dragend', onDragEnd);\n                events.on(root, 'drop', onDrop);\n                events.on(root, 'dragover', onDragOver);\n            }\n            if (isDraggable) {\n                // If the target is draggable, wire up local event listeners for mouse events.\n                onMouseDown = this._onMouseDown.bind(this, dragDropTarget);\n                onDragEnd = this._onDragEnd.bind(this, dragDropTarget);\n                // We need to add in data so that on Firefox we show the ghost element when dragging\n                onDragStart = function (event) {\n                    var options = dragDropOptions;\n                    if (options && options.onDragStart) {\n                        options.onDragStart(options.context.data, options.context.index, _this._selection.getSelection(), event);\n                    }\n                    _this._isDragging = true;\n                    if (event.dataTransfer) {\n                        event.dataTransfer.setData('id', root.id);\n                    }\n                };\n                events.on(root, 'dragstart', onDragStart);\n                events.on(root, 'mousedown', onMouseDown);\n                events.on(root, 'dragend', onDragEnd);\n            }\n            activeTarget = {\n                target: dragDropTarget,\n                dispose: function () {\n                    if (_this._activeTargets[key] === activeTarget) {\n                        delete _this._activeTargets[key];\n                    }\n                    if (root) {\n                        for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n                            var handler = handlers_1[_i];\n                            _this._events.off(root, handler.eventName, handler.callback);\n                        }\n                        if (isDroppable) {\n                            events.off(root, 'dragenter', onDragEnter);\n                            events.off(root, 'dragleave', onDragLeave);\n                            events.off(root, 'dragend', onDragEnd);\n                            events.off(root, 'dragover', onDragOver);\n                            events.off(root, 'drop', onDrop);\n                        }\n                        if (isDraggable) {\n                            events.off(root, 'dragstart', onDragStart);\n                            events.off(root, 'mousedown', onMouseDown);\n                            events.off(root, 'dragend', onDragEnd);\n                        }\n                    }\n                },\n            };\n            this._activeTargets[key] = activeTarget;\n        }\n        return {\n            key: key,\n            dispose: function () {\n                if (activeTarget) {\n                    activeTarget.dispose();\n                }\n            },\n        };\n    };\n    DragDropHelper.prototype.unsubscribe = function (root, key) {\n        var activeTarget = this._activeTargets[key];\n        if (activeTarget) {\n            activeTarget.dispose();\n        }\n    };\n    DragDropHelper.prototype._onDragEnd = function (target, event) {\n        var options = target.options;\n        if (options.onDragEnd) {\n            options.onDragEnd(options.context.data, event);\n        }\n    };\n    /**\n     * clear drag data when mouse up on body\n     */\n    DragDropHelper.prototype._onMouseUp = function (event) {\n        this._isDragging = false;\n        if (this._dragData) {\n            for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n                var key = _a[_i];\n                var activeTarget = this._activeTargets[key];\n                if (activeTarget.target.root) {\n                    this._events.off(activeTarget.target.root, 'mousemove');\n                    this._events.off(activeTarget.target.root, 'mouseleave');\n                }\n            }\n            if (this._dragData.dropTarget) {\n                // raise dragleave event to let dropTarget know it need to remove dropping style\n                EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n                EventGroup.raise(this._dragData.dropTarget.root, 'drop');\n            }\n        }\n        this._dragData = null;\n    };\n    /**\n     * clear drag data when mouse up outside of the document\n     */\n    DragDropHelper.prototype._onDocumentMouseUp = function (event) {\n        var doc = getDocument();\n        if (doc && event.target === doc.documentElement) {\n            this._onMouseUp(event);\n        }\n    };\n    /**\n     * when mouse move over a new drop target while dragging some items,\n     * fire dragleave on the old target and fire dragenter to the new target\n     * The target will handle style change on dragenter and dragleave events.\n     */\n    DragDropHelper.prototype._onMouseMove = function (target, event) {\n        var \n        // use buttons property here since ev.button in some edge case is not updating well during the move.\n        // but firefox doesn't support it, so we set the default value when it is not defined.\n        _a = event.buttons, \n        // use buttons property here since ev.button in some edge case is not updating well during the move.\n        // but firefox doesn't support it, so we set the default value when it is not defined.\n        buttons = _a === void 0 ? MOUSEMOVE_PRIMARY_BUTTON : _a;\n        if (this._dragData && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {\n            // cancel mouse down event and return early when the primary button is not pressed\n            this._onMouseUp(event);\n            return;\n        }\n        var root = target.root, key = target.key;\n        if (this._isDragging) {\n            if (this._isDroppable(target)) {\n                // we can have nested drop targets in the DOM, like a folder inside a group. In that case, when we drag into\n                // the inner target (folder), we first set dropTarget to the inner element. But the same event is bubbled to the\n                // outer target too, and we need to prevent the outer one from taking over.\n                // So, check if the last dropTarget is not a child of the current.\n                if (this._dragData) {\n                    if (this._dragData.dropTarget &&\n                        this._dragData.dropTarget.key !== key &&\n                        !this._isChild(root, this._dragData.dropTarget.root)) {\n                        if (this._dragEnterCounts[this._dragData.dropTarget.key] > 0) {\n                            EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n                            EventGroup.raise(root, 'dragenter');\n                            this._dragData.dropTarget = target;\n                        }\n                    }\n                }\n            }\n        }\n    };\n    /**\n     * when mouse leave a target while dragging some items, fire dragleave to the target\n     */\n    DragDropHelper.prototype._onMouseLeave = function (target, event) {\n        if (this._isDragging) {\n            if (this._dragData && this._dragData.dropTarget && this._dragData.dropTarget.key === target.key) {\n                EventGroup.raise(target.root, 'dragleave');\n                this._dragData.dropTarget = undefined;\n            }\n        }\n    };\n    /**\n     * when mouse down on a draggable item, we start to track dragdata.\n     */\n    DragDropHelper.prototype._onMouseDown = function (target, event) {\n        if (event.button !== MOUSEDOWN_PRIMARY_BUTTON) {\n            // Ignore anything except the primary button.\n            return;\n        }\n        if (this._isDraggable(target)) {\n            this._dragData = {\n                clientX: event.clientX,\n                clientY: event.clientY,\n                eventTarget: event.target,\n                dragTarget: target,\n            };\n            for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n                var key = _a[_i];\n                var activeTarget = this._activeTargets[key];\n                if (activeTarget.target.root) {\n                    this._events.on(activeTarget.target.root, 'mousemove', this._onMouseMove.bind(this, activeTarget.target));\n                    this._events.on(activeTarget.target.root, 'mouseleave', this._onMouseLeave.bind(this, activeTarget.target));\n                }\n            }\n        }\n        else {\n            this._dragData = null;\n        }\n    };\n    /**\n     * determine whether the child target is a descendant of the parent\n     */\n    DragDropHelper.prototype._isChild = function (parentElement, childElement) {\n        while (childElement && childElement.parentElement) {\n            if (childElement.parentElement === parentElement) {\n                return true;\n            }\n            childElement = childElement.parentElement;\n        }\n        return false;\n    };\n    DragDropHelper.prototype._isDraggable = function (target) {\n        var options = target.options;\n        return !!(options.canDrag && options.canDrag(options.context.data));\n    };\n    DragDropHelper.prototype._isDroppable = function (target) {\n        // TODO: take the drag item into consideration to prevent dragging an item into the same group\n        var options = target.options;\n        var dragContext = this._dragData && this._dragData.dragTarget ? this._dragData.dragTarget.options.context : undefined;\n        return !!(options.canDrop && options.canDrop(options.context, dragContext));\n    };\n    return DragDropHelper;\n}());\nexport { DragDropHelper };\n//# sourceMappingURL=DragDropHelper.js.map","import * as React from 'react';\nimport { getWindow } from '@fluentui/utilities';\nimport { useOnEvent } from '@fluentui/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\nimport { useWindow } from '../../WindowProvider';\n/**\n * Hook to get the current responsive mode (window size category).\n * @param elementRef - Use this element's parent window when determining the responsive mode.\n * @param overrideResponsiveMode - Override the responsive mode. If this param is present, it's always returned.\n */\nexport var useResponsiveMode = function (elementRef, overrideResponsiveMode) {\n    var _a = React.useState(getInitialResponsiveMode()), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n    var onResize = React.useCallback(function () {\n        var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n        // Setting the same value should not cause a re-render.\n        if (lastResponsiveMode !== newResponsiveMode) {\n            setLastResponsiveMode(newResponsiveMode);\n        }\n    }, [elementRef, lastResponsiveMode]);\n    var win = useWindow();\n    useOnEvent(win, 'resize', onResize);\n    // Call resize function initially on mount, or if the override changes from defined to undefined\n    // (the effect will run on all override changes, but onResize will only be called if it changed to undefined)\n    React.useEffect(function () {\n        if (overrideResponsiveMode === undefined) {\n            onResize();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount or when override changes\n    }, [overrideResponsiveMode]);\n    return overrideResponsiveMode !== null && overrideResponsiveMode !== void 0 ? overrideResponsiveMode : lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n    KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n    KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n    KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n    KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n    KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n    KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n    KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n    KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n    function KeytipManager() {\n        this.keytips = {};\n        this.persistedKeytips = {};\n        this.sequenceMapping = {};\n        // This is (and should be) updated and kept in sync\n        // with the inKeytipMode in KeytipLayer.\n        this.inKeytipMode = false;\n        // Boolean that gets checked before entering keytip mode by the KeytipLayer\n        // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n        this.shouldEnterKeytipMode = true;\n        // Boolean to indicate whether to delay firing an event to update subscribers of\n        // keytip data changed.\n        this.delayUpdatingKeytipChange = false;\n    }\n    /**\n     * Static function to get singleton KeytipManager instance\n     *\n     * @returns Singleton KeytipManager instance\n     */\n    KeytipManager.getInstance = function () {\n        return this._instance;\n    };\n    /**\n     * Initialization code to set set parameters to define\n     * how the KeytipManager handles keytip data.\n     *\n     * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n     * of keytip changes\n     */\n    KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n        this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n    };\n    /**\n     * Registers a keytip\n     *\n     * @param keytipProps - Keytip to register\n     * @param persisted - T/F if this keytip should be persisted, default is false\n     * @returns Unique ID for this keytip\n     */\n    KeytipManager.prototype.register = function (keytipProps, persisted) {\n        if (persisted === void 0) { persisted = false; }\n        var props = keytipProps;\n        if (!persisted) {\n            // Add the overflowSetSequence if necessary\n            props = this.addParentOverflow(keytipProps);\n            this.sequenceMapping[props.keySequences.toString()] = props;\n        }\n        // Create a unique keytip\n        var uniqueKeytip = this._getUniqueKtp(props);\n        // Add to dictionary\n        persisted\n            ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n            : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n        // We only want to add something new if we are currently showing keytip mode\n        if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n            var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n            EventGroup.raise(this, event_1, {\n                keytip: props,\n                uniqueID: uniqueKeytip.uniqueID,\n            });\n        }\n        return uniqueKeytip.uniqueID;\n    };\n    /**\n     * Update a keytip\n     *\n     * @param keytipProps - Keytip to update\n     * @param uniqueID - Unique ID of this keytip\n     */\n    KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n        var newKeytipProps = this.addParentOverflow(keytipProps);\n        var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n        var oldKeyTip = this.keytips[uniqueID];\n        if (oldKeyTip) {\n            // Update everything except 'visible'\n            uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n            // Update keytip in this.keytips\n            this.keytips[uniqueID] = uniqueKeytip;\n            // Update the sequence to be up to date\n            delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n            this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n            // Raise event only if we are currently in keytip mode\n            if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n                EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n                    keytip: uniqueKeytip.keytip,\n                    uniqueID: uniqueKeytip.uniqueID,\n                });\n            }\n        }\n    };\n    /**\n     * Unregisters a keytip\n     *\n     * @param keytipToRemove - IKeytipProps of the keytip to remove\n     * @param uniqueID - Unique ID of this keytip\n     * @param persisted - T/F if this keytip should be persisted, default is false\n     */\n    KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n        if (persisted === void 0) { persisted = false; }\n        persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n        !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n        var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n        // Update keytips only if we're in keytip mode\n        if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n            EventGroup.raise(this, event, {\n                keytip: keytipToRemove,\n                uniqueID: uniqueID,\n            });\n        }\n    };\n    /**\n     * Manual call to enter keytip mode\n     */\n    KeytipManager.prototype.enterKeytipMode = function () {\n        EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n    };\n    /**\n     * Manual call to exit keytip mode\n     */\n    KeytipManager.prototype.exitKeytipMode = function () {\n        EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n    };\n    /**\n     * Gets all IKeytipProps from this.keytips\n     *\n     * @returns All keytips stored in the manager\n     */\n    KeytipManager.prototype.getKeytips = function () {\n        var _this = this;\n        return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n    };\n    /**\n     * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n     *\n     * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n     * @returns - Modified keytip props, if needed to be modified\n     */\n    KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n        var fullSequence = __spreadArray([], keytipProps.keySequences, true);\n        fullSequence.pop();\n        if (fullSequence.length !== 0) {\n            var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n            if (parentKeytip && parentKeytip.overflowSetSequence) {\n                return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n            }\n        }\n        return keytipProps;\n    };\n    /**\n     * Public function to bind for overflow items that have a submenu\n     */\n    KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n        EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n            overflowButtonSequences: overflowButtonSequences,\n            keytipSequences: keytipSequences,\n        });\n    };\n    /**\n     * Creates an IUniqueKeytip object\n     *\n     * @param keytipProps - IKeytipProps\n     * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n     * @returns IUniqueKeytip object\n     */\n    KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n        if (uniqueID === void 0) { uniqueID = getId(); }\n        return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n    };\n    KeytipManager._instance = new KeytipManager();\n    return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n    RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n    RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n    RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n    RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n    Position[Position[\"top\"] = 0] = \"top\";\n    Position[Position[\"bottom\"] = 1] = \"bottom\";\n    Position[Position[\"start\"] = 2] = \"start\";\n    Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","export function getAllSelectedOptions(options, selectedIndices) {\n    var selectedOptions = [];\n    for (var _i = 0, selectedIndices_1 = selectedIndices; _i < selectedIndices_1.length; _i++) {\n        var index = selectedIndices_1[_i];\n        var option = options[index];\n        if (option) {\n            selectedOptions.push(option);\n        }\n    }\n    return selectedOptions;\n}\n//# sourceMappingURL=SelectableOption.js.map","export var SelectableOptionMenuItemType;\n(function (SelectableOptionMenuItemType) {\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Normal\"] = 0] = \"Normal\";\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Divider\"] = 1] = \"Divider\";\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Header\"] = 2] = \"Header\";\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"SelectAll\"] = 3] = \"SelectAll\";\n})(SelectableOptionMenuItemType || (SelectableOptionMenuItemType = {}));\n//# sourceMappingURL=SelectableOption.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, KeyCodes, elementContains, findScrollableParent, getParent, getDocument, getWindow, isElementTabbable, css, initializeComponentRef, FocusRects, } from '../../Utilities';\nimport { SelectionMode } from './interfaces';\n// Selection definitions:\n//\n// Anchor index: the point from which a range selection starts.\n// Focus index: the point from which layout movement originates from.\n//\n// These two can differ. Tests:\n//\n// If you start at index 5\n// Shift click to index 10\n//    The focus is 10, the anchor is 5.\n// If you shift click at index 0\n//    The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.\n// If you click index 8\n//    The anchor and focus are set to 8.\nvar SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';\nvar SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';\nvar SELECTION_SPAN_ATTRIBUTE_NAME = 'data-selection-span';\nvar SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';\nvar SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';\nvar SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME = 'data-selection-touch-invoke';\nvar SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';\nvar SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';\n/**\n * {@docCategory Selection}\n */\nvar SelectionZone = /** @class */ (function (_super) {\n    __extends(SelectionZone, _super);\n    function SelectionZone(props) {\n        var _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        /**\n         * In some cases, the consuming scenario requires to set focus on a row without having SelectionZone\n         * react to the event. Note that focus events in IE \\<= 11 will occur asynchronously after .focus() has\n         * been called on an element, so we need a flag to store the idea that we will bypass the \"next\"\n         * focus event that occurs. This method does that.\n         */\n        _this.ignoreNextFocus = function () {\n            _this._handleNextFocus(false);\n        };\n        _this._onSelectionChange = function () {\n            var selection = _this.props.selection;\n            var isModal = selection.isModal && selection.isModal();\n            _this.setState({\n                isModal: isModal,\n            });\n        };\n        _this._onMouseDownCapture = function (ev) {\n            var target = ev.target;\n            if (document.activeElement !== target && !elementContains(document.activeElement, target)) {\n                _this.ignoreNextFocus();\n                return;\n            }\n            if (!elementContains(target, _this._root.current)) {\n                return;\n            }\n            while (target !== _this._root.current) {\n                if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n                    _this.ignoreNextFocus();\n                    break;\n                }\n                target = getParent(target);\n            }\n        };\n        /**\n         * When we focus an item, for single/multi select scenarios, we should try to select it immediately\n         * as long as the focus did not originate from a mouse down/touch event. For those cases, we handle them\n         * specially.\n         */\n        _this._onFocus = function (ev) {\n            var target = ev.target;\n            var selection = _this.props.selection;\n            var isToggleModifierPressed = _this._isCtrlPressed || _this._isMetaPressed;\n            var selectionMode = _this._getSelectionMode();\n            if (_this._shouldHandleFocus && selectionMode !== SelectionMode.none) {\n                var isToggle = _this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME);\n                var itemRoot = _this._findItemRoot(target);\n                if (!isToggle && itemRoot) {\n                    var index = _this._getItemIndex(itemRoot);\n                    var span = _this._getItemSpan(itemRoot);\n                    if (span === undefined) {\n                        if (isToggleModifierPressed) {\n                            // set anchor only.\n                            selection.setIndexSelected(index, selection.isIndexSelected(index), true);\n                            if (_this.props.enterModalOnTouch && _this._isTouch && selection.setModal) {\n                                selection.setModal(true);\n                                _this._setIsTouch(false);\n                            }\n                        }\n                        else {\n                            if (_this.props.isSelectedOnFocus) {\n                                _this._onItemSurfaceClick('focus', index);\n                            }\n                        }\n                    }\n                }\n            }\n            _this._handleNextFocus(false);\n        };\n        _this._onMouseDown = function (ev) {\n            _this._updateModifiers(ev);\n            var toggleWithoutModifierPressed = _this.props.toggleWithoutModifierPressed;\n            var target = ev.target;\n            var itemRoot = _this._findItemRoot(target);\n            // No-op if selection is disabled\n            if (_this._isSelectionDisabled(target)) {\n                return;\n            }\n            while (target !== _this._root.current) {\n                if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n                    break;\n                }\n                else if (itemRoot) {\n                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n                        break;\n                    }\n                    else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n                        break;\n                    }\n                    else if ((target === itemRoot || _this._shouldAutoSelect(target)) &&\n                        !_this._isShiftPressed &&\n                        !_this._isCtrlPressed &&\n                        !_this._isMetaPressed &&\n                        !toggleWithoutModifierPressed) {\n                        _this._onInvokeMouseDown(ev, _this._getItemIndex(itemRoot), _this._getItemSpan(itemRoot));\n                        break;\n                    }\n                    else if (_this.props.disableAutoSelectOnInputElements &&\n                        (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT')) {\n                        return;\n                    }\n                }\n                target = getParent(target);\n            }\n        };\n        _this._onTouchStartCapture = function (ev) {\n            _this._setIsTouch(true);\n        };\n        _this._onClick = function (ev) {\n            var _a = _this.props.enableTouchInvocationTarget, enableTouchInvocationTarget = _a === void 0 ? false : _a;\n            _this._updateModifiers(ev);\n            var target = ev.target;\n            var itemRoot = _this._findItemRoot(target);\n            var isSelectionDisabled = _this._isSelectionDisabled(target);\n            while (target !== _this._root.current) {\n                if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n                    if (!isSelectionDisabled) {\n                        _this._onToggleAllClick(ev);\n                    }\n                    break;\n                }\n                else if (itemRoot) {\n                    var index = _this._getItemIndex(itemRoot);\n                    var span = _this._getItemSpan(itemRoot);\n                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n                        if (!isSelectionDisabled) {\n                            if (_this._isShiftPressed) {\n                                _this._onItemSurfaceClick('click', index, span);\n                            }\n                            else {\n                                _this._onToggleClick(ev, index, span);\n                            }\n                        }\n                        break;\n                    }\n                    else if ((_this._isTouch &&\n                        enableTouchInvocationTarget &&\n                        _this._hasAttribute(target, SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME)) ||\n                        _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n                        if (span === undefined) {\n                            // Items should be invokable even if selection is disabled.\n                            _this._onInvokeClick(ev, index);\n                        }\n                        break;\n                    }\n                    else if (target === itemRoot) {\n                        if (!isSelectionDisabled) {\n                            _this._onItemSurfaceClick('click', index, span);\n                        }\n                        break;\n                    }\n                    else if (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT') {\n                        return;\n                    }\n                }\n                target = getParent(target);\n            }\n        };\n        _this._onContextMenu = function (ev) {\n            var target = ev.target;\n            var _a = _this.props, onItemContextMenu = _a.onItemContextMenu, selection = _a.selection;\n            if (onItemContextMenu) {\n                var itemRoot = _this._findItemRoot(target);\n                if (itemRoot) {\n                    var index = _this._getItemIndex(itemRoot);\n                    _this._onInvokeMouseDown(ev, index);\n                    var skipPreventDefault = onItemContextMenu(selection.getItems()[index], index, ev.nativeEvent);\n                    // In order to keep back compat, if the value here is undefined, then we should still\n                    // call preventDefault(). Only in the case where true is explicitly returned should\n                    // the call be skipped.\n                    if (!skipPreventDefault) {\n                        ev.preventDefault();\n                    }\n                }\n            }\n        };\n        /**\n         * In multi selection, if you double click within an item's root (but not within the invoke element or\n         * input elements), we should execute the invoke handler.\n         */\n        _this._onDoubleClick = function (ev) {\n            var target = ev.target;\n            var onItemInvoked = _this.props.onItemInvoked;\n            var itemRoot = _this._findItemRoot(target);\n            if (itemRoot && onItemInvoked && !_this._isInputElement(target)) {\n                var index = _this._getItemIndex(itemRoot);\n                while (target !== _this._root.current) {\n                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME) ||\n                        _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n                        break;\n                    }\n                    else if (target === itemRoot) {\n                        _this._onInvokeClick(ev, index);\n                        break;\n                    }\n                    target = getParent(target);\n                }\n                target = getParent(target);\n            }\n        };\n        _this._onKeyDownCapture = function (ev) {\n            _this._updateModifiers(ev);\n            _this._handleNextFocus(true);\n        };\n        _this._onKeyDown = function (ev) {\n            _this._updateModifiers(ev);\n            var target = ev.target;\n            var isSelectionDisabled = _this._isSelectionDisabled(target);\n            var _a = _this.props, selection = _a.selection, selectionClearedOnEscapePress = _a.selectionClearedOnEscapePress;\n            // eslint-disable-next-line deprecation/deprecation\n            var isSelectAllKey = ev.which === KeyCodes.a && (_this._isCtrlPressed || _this._isMetaPressed);\n            // eslint-disable-next-line deprecation/deprecation\n            var isClearSelectionKey = ev.which === KeyCodes.escape;\n            // Ignore key downs from input elements.\n            if (_this._isInputElement(target)) {\n                // A key was pressed while an item in this zone was focused.\n                return;\n            }\n            var selectionMode = _this._getSelectionMode();\n            // If ctrl-a is pressed, select all (if all are not already selected.)\n            if (isSelectAllKey && selectionMode === SelectionMode.multiple && !selection.isAllSelected()) {\n                if (!isSelectionDisabled) {\n                    selection.setAllSelected(true);\n                }\n                ev.stopPropagation();\n                ev.preventDefault();\n                return;\n            }\n            // If escape is pressed and the component is configured to clear on escape press,\n            // clear selection (if any are selected.)\n            if (selectionClearedOnEscapePress && isClearSelectionKey && selection.getSelectedCount() > 0) {\n                if (!isSelectionDisabled) {\n                    selection.setAllSelected(false);\n                }\n                ev.stopPropagation();\n                ev.preventDefault();\n                return;\n            }\n            var itemRoot = _this._findItemRoot(target);\n            // If a key was pressed within an item, we should treat \"enters\" as invokes and \"space\" as toggle\n            if (itemRoot) {\n                var index = _this._getItemIndex(itemRoot);\n                var span = _this._getItemSpan(itemRoot);\n                while (target !== _this._root.current) {\n                    if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n                        // For toggle elements, assuming they are rendered as buttons, they will generate a click event,\n                        // so we can no-op for any keydowns in this case.\n                        break;\n                    }\n                    else if (_this._shouldAutoSelect(target)) {\n                        if (!isSelectionDisabled && span === undefined) {\n                            // If the event went to an element which should trigger auto-select, select it and then let\n                            // the default behavior kick in.\n                            _this._onInvokeMouseDown(ev, index, span);\n                        }\n                        break;\n                    }\n                    else if (\n                    // eslint-disable-next-line deprecation/deprecation\n                    (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) &&\n                        (target.tagName === 'BUTTON' ||\n                            target.tagName === 'A' ||\n                            target.tagName === 'INPUT' ||\n                            target.tagName === 'SUMMARY')) {\n                        return false;\n                    }\n                    else if (target === itemRoot) {\n                        // eslint-disable-next-line deprecation/deprecation\n                        if (ev.which === KeyCodes.enter) {\n                            if (span === undefined) {\n                                // Items should be invokable even if selection is disabled.\n                                _this._onInvokeClick(ev, index);\n                                ev.preventDefault();\n                            }\n                            return;\n                            // eslint-disable-next-line deprecation/deprecation\n                        }\n                        else if (ev.which === KeyCodes.space) {\n                            if (!isSelectionDisabled) {\n                                _this._onToggleClick(ev, index, span);\n                            }\n                            ev.preventDefault();\n                            return;\n                        }\n                        break;\n                    }\n                    target = getParent(target);\n                }\n            }\n        };\n        _this._events = new EventGroup(_this);\n        _this._async = new Async(_this);\n        initializeComponentRef(_this);\n        var selection = _this.props.selection;\n        // Reflect the initial modal state of selection into the state.\n        var isModal = selection.isModal && selection.isModal();\n        _this.state = {\n            isModal: isModal,\n        };\n        return _this;\n    }\n    SelectionZone.getDerivedStateFromProps = function (nextProps, prevState) {\n        var isModal = nextProps.selection.isModal && nextProps.selection.isModal();\n        return __assign(__assign({}, prevState), { isModal: isModal });\n    };\n    SelectionZone.prototype.componentDidMount = function () {\n        var win = getWindow(this._root.current);\n        // Track the latest modifier keys globally.\n        this._events.on(win, 'keydown, keyup', this._updateModifiers, true);\n        this._events.on(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n        this._events.on(document.body, 'touchstart', this._onTouchStartCapture, true);\n        this._events.on(document.body, 'touchend', this._onTouchStartCapture, true);\n        // Subscribe to the selection to keep modal state updated.\n        this._events.on(this.props.selection, 'change', this._onSelectionChange);\n    };\n    SelectionZone.prototype.render = function () {\n        var isModal = this.state.isModal;\n        return (React.createElement(\"div\", { className: css('ms-SelectionZone', this.props.className, {\n                'ms-SelectionZone--modal': !!isModal,\n            }), ref: this._root, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onKeyDownCapture: this._onKeyDownCapture, onClick: this._onClick, role: \"presentation\", onDoubleClick: this._onDoubleClick, onContextMenu: this._onContextMenu, onMouseDownCapture: this._onMouseDownCapture, onFocusCapture: this._onFocus, \"data-selection-is-modal\": isModal ? true : undefined },\n            this.props.children,\n            React.createElement(FocusRects, null)));\n    };\n    SelectionZone.prototype.componentDidUpdate = function (previousProps) {\n        var selection = this.props.selection;\n        if (selection !== previousProps.selection) {\n            // Whenever selection changes, update the subscripton to keep modal state updated.\n            this._events.off(previousProps.selection);\n            this._events.on(selection, 'change', this._onSelectionChange);\n        }\n    };\n    SelectionZone.prototype.componentWillUnmount = function () {\n        this._events.dispose();\n        this._async.dispose();\n    };\n    SelectionZone.prototype._isSelectionDisabled = function (target) {\n        if (this._getSelectionMode() === SelectionMode.none) {\n            return true;\n        }\n        while (target !== this._root.current) {\n            if (this._hasAttribute(target, SELECTION_DISABLED_ATTRIBUTE_NAME)) {\n                return true;\n            }\n            target = getParent(target);\n        }\n        return false;\n    };\n    SelectionZone.prototype._onToggleAllClick = function (ev) {\n        var selection = this.props.selection;\n        var selectionMode = this._getSelectionMode();\n        if (selectionMode === SelectionMode.multiple) {\n            selection.toggleAllSelected();\n            ev.stopPropagation();\n            ev.preventDefault();\n        }\n    };\n    SelectionZone.prototype._onToggleClick = function (ev, index, span) {\n        var selection = this.props.selection;\n        var selectionMode = this._getSelectionMode();\n        selection.setChangeEvents(false);\n        if (this.props.enterModalOnTouch &&\n            this._isTouch &&\n            (span !== undefined ? !selection.isRangeSelected(index, span) : !selection.isIndexSelected(index)) &&\n            selection.setModal) {\n            selection.setModal(true);\n            this._setIsTouch(false);\n        }\n        if (selectionMode === SelectionMode.multiple) {\n            if (span !== undefined) {\n                selection.toggleRangeSelected(index, span);\n            }\n            else {\n                selection.toggleIndexSelected(index);\n            }\n        }\n        else if (selectionMode === SelectionMode.single) {\n            if (span === undefined || span === 1) {\n                var isSelected = selection.isIndexSelected(index);\n                var isModal = selection.isModal && selection.isModal();\n                selection.setAllSelected(false);\n                selection.setIndexSelected(index, !isSelected, true);\n                if (isModal && selection.setModal) {\n                    // Since the above call to setAllSelected(false) clears modal state,\n                    // restore it. This occurs because the SelectionMode of the Selection\n                    // may differ from the SelectionZone.\n                    selection.setModal(true);\n                }\n            }\n        }\n        else {\n            selection.setChangeEvents(true);\n            return;\n        }\n        selection.setChangeEvents(true);\n        ev.stopPropagation();\n        // NOTE: ev.preventDefault is not called for toggle clicks, because this will kill the browser behavior\n        // for checkboxes if you use a checkbox for the toggle.\n    };\n    SelectionZone.prototype._onInvokeClick = function (ev, index) {\n        var _a = this.props, selection = _a.selection, onItemInvoked = _a.onItemInvoked;\n        if (onItemInvoked) {\n            onItemInvoked(selection.getItems()[index], index, ev.nativeEvent);\n            ev.preventDefault();\n            ev.stopPropagation();\n        }\n    };\n    SelectionZone.prototype._onItemSurfaceClick = function (type, index, span) {\n        var _a;\n        var _b = this.props, selection = _b.selection, toggleWithoutModifierPressed = _b.toggleWithoutModifierPressed;\n        var isToggleModifierPressed = this._isCtrlPressed || this._isMetaPressed;\n        var selectionMode = this._getSelectionMode();\n        if (selectionMode === SelectionMode.multiple) {\n            if (this._isShiftPressed && !this._isTabPressed) {\n                if (span !== undefined) {\n                    (_a = selection.selectToRange) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, !isToggleModifierPressed);\n                }\n                else {\n                    selection.selectToIndex(index, !isToggleModifierPressed);\n                }\n            }\n            else if (type === 'click' && (isToggleModifierPressed || toggleWithoutModifierPressed)) {\n                if (span !== undefined) {\n                    selection.toggleRangeSelected(index, span);\n                }\n                else {\n                    selection.toggleIndexSelected(index);\n                }\n            }\n            else {\n                this._clearAndSelectIndex(index, span);\n            }\n        }\n        else if (selectionMode === SelectionMode.single) {\n            this._clearAndSelectIndex(index, span);\n        }\n    };\n    SelectionZone.prototype._onInvokeMouseDown = function (ev, index, span) {\n        var selection = this.props.selection;\n        if (span !== undefined) {\n            if (selection.isRangeSelected(index, span)) {\n                return;\n            }\n        }\n        else {\n            // Only do work if item is not selected.\n            if (selection.isIndexSelected(index)) {\n                return;\n            }\n        }\n        this._clearAndSelectIndex(index, span);\n    };\n    /**\n     * To avoid high startup cost of traversing the DOM on component mount,\n     * defer finding the scrollable parent until a click interaction.\n     *\n     * The styles will probably already calculated since we're running in a click handler,\n     * so this is less likely to cause layout thrashing then doing it in mount.\n     */\n    SelectionZone.prototype._findScrollParentAndTryClearOnEmptyClick = function (ev) {\n        var scrollParent = findScrollableParent(this._root.current);\n        // unbind this handler and replace binding with a binding on the actual scrollable parent\n        this._events.off(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n        this._events.on(scrollParent, 'click', this._tryClearOnEmptyClick);\n        // If we clicked inside the scrollable parent, call through to the handler on this click.\n        if ((scrollParent && ev.target instanceof Node && scrollParent.contains(ev.target)) || scrollParent === ev.target) {\n            this._tryClearOnEmptyClick(ev);\n        }\n    };\n    SelectionZone.prototype._tryClearOnEmptyClick = function (ev) {\n        if (!this.props.selectionPreservedOnEmptyClick && this._isNonHandledClick(ev.target)) {\n            this.props.selection.setAllSelected(false);\n        }\n    };\n    SelectionZone.prototype._clearAndSelectIndex = function (index, span) {\n        var _a;\n        var _b = this.props, selection = _b.selection, _c = _b.selectionClearedOnSurfaceClick, selectionClearedOnSurfaceClick = _c === void 0 ? true : _c;\n        var isAlreadySingleSelected = (span === undefined || span === 1) && selection.getSelectedCount() === 1 && selection.isIndexSelected(index);\n        if (!isAlreadySingleSelected && selectionClearedOnSurfaceClick) {\n            var isModal = selection.isModal && selection.isModal();\n            selection.setChangeEvents(false);\n            selection.setAllSelected(false);\n            if (span !== undefined) {\n                (_a = selection.setRangeSelected) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, true, true);\n            }\n            else {\n                selection.setIndexSelected(index, true, true);\n            }\n            if (isModal || (this.props.enterModalOnTouch && this._isTouch)) {\n                if (selection.setModal) {\n                    selection.setModal(true);\n                }\n                if (this._isTouch) {\n                    this._setIsTouch(false);\n                }\n            }\n            selection.setChangeEvents(true);\n        }\n    };\n    /**\n     * We need to track the modifier key states so that when focus events occur, which do not contain\n     * modifier states in the Event object, we know how to behave.\n     */\n    SelectionZone.prototype._updateModifiers = function (ev) {\n        this._isShiftPressed = ev.shiftKey;\n        this._isCtrlPressed = ev.ctrlKey;\n        this._isMetaPressed = ev.metaKey;\n        // eslint-disable-next-line deprecation/deprecation\n        var keyCode = ev.keyCode;\n        this._isTabPressed = keyCode ? keyCode === KeyCodes.tab : false;\n    };\n    SelectionZone.prototype._findItemRoot = function (target) {\n        var selection = this.props.selection;\n        while (target !== this._root.current) {\n            var indexValue = target.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME);\n            var index = Number(indexValue);\n            if (indexValue !== null && index >= 0 && index < selection.getItems().length) {\n                break;\n            }\n            target = getParent(target);\n        }\n        if (target === this._root.current) {\n            return undefined;\n        }\n        return target;\n    };\n    SelectionZone.prototype._getItemIndex = function (itemRoot) {\n        var _a;\n        var indexValue = parseInt((_a = itemRoot.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n        return isNaN(indexValue) ? -1 : indexValue;\n    };\n    SelectionZone.prototype._getItemSpan = function (itemRoot) {\n        var _a;\n        var spanValue = parseInt((_a = itemRoot.getAttribute(SELECTION_SPAN_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n        return isNaN(spanValue) ? undefined : spanValue;\n    };\n    SelectionZone.prototype._shouldAutoSelect = function (element) {\n        return this._hasAttribute(element, SELECTION_SELECT_ATTRIBUTE_NAME);\n    };\n    SelectionZone.prototype._hasAttribute = function (element, attributeName) {\n        var isToggle = false;\n        while (!isToggle && element !== this._root.current) {\n            var value = element.getAttribute(attributeName);\n            if (value === 'false') {\n                isToggle = false;\n                break;\n            }\n            isToggle = value === 'true';\n            element = getParent(element);\n        }\n        return isToggle;\n    };\n    SelectionZone.prototype._isInputElement = function (element) {\n        return (element.tagName === 'INPUT' ||\n            element.tagName === 'TEXTAREA' ||\n            element.getAttribute('contenteditable') === 'true' ||\n            element.getAttribute('contenteditable') === '');\n    };\n    SelectionZone.prototype._isNonHandledClick = function (element) {\n        var doc = getDocument();\n        if (doc && element) {\n            while (element && element !== doc.documentElement) {\n                if (isElementTabbable(element) || element.hasAttribute('data-selection-index')) {\n                    return false;\n                }\n                element = getParent(element);\n            }\n        }\n        return true;\n    };\n    SelectionZone.prototype._handleNextFocus = function (handleFocus) {\n        var _this = this;\n        if (this._shouldHandleFocusTimeoutId) {\n            this._async.clearTimeout(this._shouldHandleFocusTimeoutId);\n            this._shouldHandleFocusTimeoutId = undefined;\n        }\n        this._shouldHandleFocus = handleFocus;\n        if (handleFocus) {\n            this._async.setTimeout(function () {\n                _this._shouldHandleFocus = false;\n            }, 100);\n        }\n    };\n    SelectionZone.prototype._setIsTouch = function (isTouch) {\n        var _this = this;\n        if (this._isTouchTimeoutId) {\n            this._async.clearTimeout(this._isTouchTimeoutId);\n            this._isTouchTimeoutId = undefined;\n        }\n        this._isTouch = true;\n        if (isTouch) {\n            this._async.setTimeout(function () {\n                _this._isTouch = false;\n            }, 300);\n        }\n    };\n    SelectionZone.prototype._getSelectionMode = function () {\n        var selection = this.props.selection;\n        var _a = this.props.selectionMode, selectionMode = _a === void 0 ? selection ? selection.mode : SelectionMode.none : _a;\n        return selectionMode;\n    };\n    SelectionZone.defaultProps = {\n        isSelectedOnFocus: true,\n        toggleWithoutModifierPressed: false,\n        selectionMode: SelectionMode.multiple,\n        selectionClearedOnEscapePress: true,\n    };\n    return SelectionZone;\n}(React.Component));\nexport { SelectionZone };\n//# sourceMappingURL=SelectionZone.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    function Async(parent, onError) {\n        this._timeoutIds = null;\n        this._immediateIds = null;\n        this._intervalIds = null;\n        this._animationFrameIds = null;\n        this._isDisposed = false;\n        this._parent = parent || null;\n        this._onErrorHandler = onError;\n        this._noop = function () {\n            /* do nothing */\n        };\n    }\n    /**\n     * Dispose function, clears all async operations.\n     */\n    Async.prototype.dispose = function () {\n        var id;\n        this._isDisposed = true;\n        this._parent = null;\n        // Clear timeouts.\n        if (this._timeoutIds) {\n            for (id in this._timeoutIds) {\n                if (this._timeoutIds.hasOwnProperty(id)) {\n                    this.clearTimeout(parseInt(id, 10));\n                }\n            }\n            this._timeoutIds = null;\n        }\n        // Clear immediates.\n        if (this._immediateIds) {\n            for (id in this._immediateIds) {\n                if (this._immediateIds.hasOwnProperty(id)) {\n                    this.clearImmediate(parseInt(id, 10));\n                }\n            }\n            this._immediateIds = null;\n        }\n        // Clear intervals.\n        if (this._intervalIds) {\n            for (id in this._intervalIds) {\n                if (this._intervalIds.hasOwnProperty(id)) {\n                    this.clearInterval(parseInt(id, 10));\n                }\n            }\n            this._intervalIds = null;\n        }\n        // Clear animation frames.\n        if (this._animationFrameIds) {\n            for (id in this._animationFrameIds) {\n                if (this._animationFrameIds.hasOwnProperty(id)) {\n                    this.cancelAnimationFrame(parseInt(id, 10));\n                }\n            }\n            this._animationFrameIds = null;\n        }\n    };\n    /**\n     * SetTimeout override, which will auto cancel the timeout during dispose.\n     * @param callback - Callback to execute.\n     * @param duration - Duration in milliseconds.\n     * @returns The setTimeout id.\n     */\n    Async.prototype.setTimeout = function (callback, duration) {\n        var _this = this;\n        var timeoutId = 0;\n        if (!this._isDisposed) {\n            if (!this._timeoutIds) {\n                this._timeoutIds = {};\n            }\n            timeoutId = setTimeout(function () {\n                // Time to execute the timeout, enqueue it as a foreground task to be executed.\n                try {\n                    // Now delete the record and call the callback.\n                    if (_this._timeoutIds) {\n                        delete _this._timeoutIds[timeoutId];\n                    }\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            }, duration);\n            this._timeoutIds[timeoutId] = true;\n        }\n        return timeoutId;\n    };\n    /**\n     * Clears the timeout.\n     * @param id - Id to cancel.\n     */\n    Async.prototype.clearTimeout = function (id) {\n        if (this._timeoutIds && this._timeoutIds[id]) {\n            clearTimeout(id);\n            delete this._timeoutIds[id];\n        }\n    };\n    /**\n     * SetImmediate override, which will auto cancel the immediate during dispose.\n     * @param callback - Callback to execute.\n     * @param targetElement - Optional target element to use for identifying the correct window.\n     * @returns The setTimeout id.\n     */\n    Async.prototype.setImmediate = function (callback, targetElement) {\n        var _this = this;\n        var immediateId = 0;\n        var win = getWindow(targetElement);\n        if (!this._isDisposed) {\n            if (!this._immediateIds) {\n                this._immediateIds = {};\n            }\n            var setImmediateCallback = function () {\n                // Time to execute the timeout, enqueue it as a foreground task to be executed.\n                try {\n                    // Now delete the record and call the callback.\n                    if (_this._immediateIds) {\n                        delete _this._immediateIds[immediateId];\n                    }\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            };\n            immediateId = win.setTimeout(setImmediateCallback, 0);\n            this._immediateIds[immediateId] = true;\n        }\n        return immediateId;\n    };\n    /**\n     * Clears the immediate.\n     * @param id - Id to cancel.\n     * @param targetElement - Optional target element to use for identifying the correct window.\n     */\n    Async.prototype.clearImmediate = function (id, targetElement) {\n        var win = getWindow(targetElement);\n        if (this._immediateIds && this._immediateIds[id]) {\n            win.clearTimeout(id);\n            delete this._immediateIds[id];\n        }\n    };\n    /**\n     * SetInterval override, which will auto cancel the timeout during dispose.\n     * @param callback - Callback to execute.\n     * @param duration - Duration in milliseconds.\n     * @returns The setTimeout id.\n     */\n    Async.prototype.setInterval = function (callback, duration) {\n        var _this = this;\n        var intervalId = 0;\n        if (!this._isDisposed) {\n            if (!this._intervalIds) {\n                this._intervalIds = {};\n            }\n            intervalId = setInterval(function () {\n                // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n                try {\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            }, duration);\n            this._intervalIds[intervalId] = true;\n        }\n        return intervalId;\n    };\n    /**\n     * Clears the interval.\n     * @param id - Id to cancel.\n     */\n    Async.prototype.clearInterval = function (id) {\n        if (this._intervalIds && this._intervalIds[id]) {\n            clearInterval(id);\n            delete this._intervalIds[id];\n        }\n    };\n    /**\n     * Creates a function that, when executed, will only call the func function at most once per\n     * every wait milliseconds. Provide an options object to indicate that func should be invoked\n     * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n     * function will return the result of the last func call.\n     *\n     * Note: If leading and trailing options are true func will be called on the trailing edge of\n     * the timeout only if the throttled function is invoked more than once during the wait timeout.\n     *\n     * @param func - The function to throttle.\n     * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n     * @param options - The options object.\n     * @returns The new throttled function.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    Async.prototype.throttle = function (func, wait, options) {\n        var _this = this;\n        if (this._isDisposed) {\n            return this._noop;\n        }\n        var waitMS = wait || 0;\n        var leading = true;\n        var trailing = true;\n        var lastExecuteTime = 0;\n        var lastResult;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var lastArgs;\n        var timeoutId = null;\n        if (options && typeof options.leading === 'boolean') {\n            leading = options.leading;\n        }\n        if (options && typeof options.trailing === 'boolean') {\n            trailing = options.trailing;\n        }\n        var callback = function (userCall) {\n            var now = Date.now();\n            var delta = now - lastExecuteTime;\n            var waitLength = leading ? waitMS - delta : waitMS;\n            if (delta >= waitMS && (!userCall || leading)) {\n                lastExecuteTime = now;\n                if (timeoutId) {\n                    _this.clearTimeout(timeoutId);\n                    timeoutId = null;\n                }\n                lastResult = func.apply(_this._parent, lastArgs);\n            }\n            else if (timeoutId === null && trailing) {\n                timeoutId = _this.setTimeout(callback, waitLength);\n            }\n            return lastResult;\n        };\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var resultFunction = (function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            lastArgs = args;\n            return callback(true);\n        });\n        return resultFunction;\n    };\n    /**\n     * Creates a function that will delay the execution of func until after wait milliseconds have\n     * elapsed since the last time it was invoked. Provide an options object to indicate that func\n     * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n     * to the debounced function will return the result of the last func call.\n     *\n     * Note: If leading and trailing options are true func will be called on the trailing edge of\n     * the timeout only if the debounced function is invoked more than once during the wait\n     * timeout.\n     *\n     * @param func - The function to debounce.\n     * @param wait - The number of milliseconds to delay.\n     * @param options - The options object.\n     * @returns The new debounced function.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    Async.prototype.debounce = function (func, wait, options) {\n        var _this = this;\n        if (this._isDisposed) {\n            var noOpFunction = (function () {\n                /** Do nothing */\n            });\n            noOpFunction.cancel = function () {\n                return;\n            };\n            noOpFunction.flush = (function () { return null; });\n            noOpFunction.pending = function () { return false; };\n            return noOpFunction;\n        }\n        var waitMS = wait || 0;\n        var leading = false;\n        var trailing = true;\n        var maxWait = null;\n        var lastCallTime = 0;\n        var lastExecuteTime = Date.now();\n        var lastResult;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var lastArgs;\n        var timeoutId = null;\n        if (options && typeof options.leading === 'boolean') {\n            leading = options.leading;\n        }\n        if (options && typeof options.trailing === 'boolean') {\n            trailing = options.trailing;\n        }\n        if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n            maxWait = options.maxWait;\n        }\n        var markExecuted = function (time) {\n            if (timeoutId) {\n                _this.clearTimeout(timeoutId);\n                timeoutId = null;\n            }\n            lastExecuteTime = time;\n        };\n        var invokeFunction = function (time) {\n            markExecuted(time);\n            lastResult = func.apply(_this._parent, lastArgs);\n        };\n        var callback = function (userCall) {\n            var now = Date.now();\n            var executeImmediately = false;\n            if (userCall) {\n                if (leading && now - lastCallTime >= waitMS) {\n                    executeImmediately = true;\n                }\n                lastCallTime = now;\n            }\n            var delta = now - lastCallTime;\n            var waitLength = waitMS - delta;\n            var maxWaitDelta = now - lastExecuteTime;\n            var maxWaitExpired = false;\n            if (maxWait !== null) {\n                // maxWait only matters when there is a pending callback\n                if (maxWaitDelta >= maxWait && timeoutId) {\n                    maxWaitExpired = true;\n                }\n                else {\n                    waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n                }\n            }\n            if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n                invokeFunction(now);\n            }\n            else if ((timeoutId === null || !userCall) && trailing) {\n                timeoutId = _this.setTimeout(callback, waitLength);\n            }\n            return lastResult;\n        };\n        var pending = function () {\n            return !!timeoutId;\n        };\n        var cancel = function () {\n            if (pending()) {\n                // Mark the debounced function as having executed\n                markExecuted(Date.now());\n            }\n        };\n        var flush = function () {\n            if (pending()) {\n                invokeFunction(Date.now());\n            }\n            return lastResult;\n        };\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var resultFunction = (function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            lastArgs = args;\n            return callback(true);\n        });\n        resultFunction.cancel = cancel;\n        resultFunction.flush = flush;\n        resultFunction.pending = pending;\n        return resultFunction;\n    };\n    Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n        var _this = this;\n        var animationFrameId = 0;\n        var win = getWindow(targetElement);\n        if (!this._isDisposed) {\n            if (!this._animationFrameIds) {\n                this._animationFrameIds = {};\n            }\n            var animationFrameCallback = function () {\n                try {\n                    // Now delete the record and call the callback.\n                    if (_this._animationFrameIds) {\n                        delete _this._animationFrameIds[animationFrameId];\n                    }\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            };\n            animationFrameId = win.requestAnimationFrame\n                ? win.requestAnimationFrame(animationFrameCallback)\n                : win.setTimeout(animationFrameCallback, 0);\n            this._animationFrameIds[animationFrameId] = true;\n        }\n        return animationFrameId;\n    };\n    Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n        var win = getWindow(targetElement);\n        if (this._animationFrameIds && this._animationFrameIds[id]) {\n            win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n            delete this._animationFrameIds[id];\n        }\n    };\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    Async.prototype._logError = function (e) {\n        if (this._onErrorHandler) {\n            this._onErrorHandler(e);\n        }\n    };\n    return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n    __extends(BaseComponent, _super);\n    /**\n     * BaseComponent constructor\n     * @param props - The props for the component.\n     * @param context - The context for the component.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    function BaseComponent(props, context) {\n        var _this = _super.call(this, props, context) || this;\n        // eslint-disable-next-line deprecation/deprecation\n        _makeAllSafe(_this, BaseComponent.prototype, [\n            'componentDidMount',\n            'shouldComponentUpdate',\n            'getSnapshotBeforeUpdate',\n            'render',\n            'componentDidUpdate',\n            'componentWillUnmount',\n        ]);\n        return _this;\n    }\n    /**\n     * When the component receives props, make sure the componentRef is updated.\n     */\n    BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n        this._updateComponentRef(prevProps, this.props);\n    };\n    /**\n     * When the component has mounted, update the componentRef.\n     */\n    BaseComponent.prototype.componentDidMount = function () {\n        this._setComponentRef(this.props.componentRef, this);\n    };\n    /**\n     * If we have disposables, dispose them automatically on unmount.\n     */\n    BaseComponent.prototype.componentWillUnmount = function () {\n        this._setComponentRef(this.props.componentRef, null);\n        if (this.__disposables) {\n            for (var i = 0, len = this._disposables.length; i < len; i++) {\n                var disposable = this.__disposables[i];\n                if (disposable.dispose) {\n                    disposable.dispose();\n                }\n            }\n            this.__disposables = null;\n        }\n    };\n    Object.defineProperty(BaseComponent.prototype, \"className\", {\n        /**\n         * Gets the object's class name.\n         */\n        get: function () {\n            if (!this.__className) {\n                var funcNameRegex = /function (.{1,})\\(/;\n                var results = funcNameRegex.exec(this.constructor.toString());\n                this.__className = results && results.length > 1 ? results[1] : '';\n            }\n            return this.__className;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n        /**\n         * Allows subclasses to push things to this._disposables to be auto disposed.\n         */\n        get: function () {\n            if (!this.__disposables) {\n                this.__disposables = [];\n            }\n            return this.__disposables;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BaseComponent.prototype, \"_async\", {\n        /**\n         * Gets the async instance associated with the component, created on demand. The async instance gives\n         * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n         * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n         * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n         */\n        get: function () {\n            if (!this.__async) {\n                this.__async = new Async(this);\n                this._disposables.push(this.__async);\n            }\n            return this.__async;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BaseComponent.prototype, \"_events\", {\n        /**\n         * Gets the event group instance assocaited with the component, created on demand. The event instance\n         * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n         * will be automatically disconnected after unmounting. The helpers within the events object also\n         * preserve the this reference so that you don't need to \"bind\" the callbacks.\n         */\n        get: function () {\n            if (!this.__events) {\n                this.__events = new EventGroup(this);\n                this._disposables.push(this.__events);\n            }\n            return this.__events;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Helper to return a memoized ref resolver function.\n     * @param refName - Name of the member to assign the ref to.\n     * @returns A function instance keyed from the given refname.\n     * @deprecated Use `createRef` from React.createRef.\n     */\n    BaseComponent.prototype._resolveRef = function (refName) {\n        var _this = this;\n        if (!this.__resolves) {\n            this.__resolves = {};\n        }\n        if (!this.__resolves[refName]) {\n            this.__resolves[refName] = function (ref) {\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                return (_this[refName] = ref);\n            };\n        }\n        return this.__resolves[refName];\n    };\n    /**\n     * Updates the componentRef (by calling it with \"this\" when necessary.)\n     */\n    BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n        if (newProps === void 0) { newProps = {}; }\n        // currentProps *should* always be defined, but verify that just in case a subclass is manually\n        // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n        if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n            this._setComponentRef(currentProps.componentRef, null);\n            this._setComponentRef(newProps.componentRef, this);\n        }\n    };\n    /**\n     * Warns when a deprecated props are being used.\n     *\n     * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n     * either null or a replacement prop name.\n     */\n    BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n        warnDeprecations(this.className, this.props, deprecationMap);\n    };\n    /**\n     * Warns when props which are mutually exclusive with each other are both used.\n     *\n     * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n     */\n    BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n        warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n    };\n    /**\n     * Warns when props are required if a condition is met.\n     *\n     * @param requiredProps - The name of the props that are required when the condition is met.\n     * @param conditionalPropName - The name of the prop that the condition is based on.\n     * @param condition - Whether the condition is met.\n     */\n    BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n        warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n    };\n    BaseComponent.prototype._setComponentRef = function (ref, value) {\n        if (!this._skipComponentRefResolution && ref) {\n            if (typeof ref === 'function') {\n                ref(value);\n            }\n            if (typeof ref === 'object') {\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                ref.current = value;\n            }\n        }\n    };\n    return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n    for (var i = 0, len = methodNames.length; i < len; i++) {\n        _makeSafe(obj, prototype, methodNames[i]);\n    }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n    /* eslint-disable @typescript-eslint/no-explicit-any */\n    var classMethod = obj[methodName];\n    var prototypeMethod = prototype[methodName];\n    if (classMethod || prototypeMethod) {\n        obj[methodName] = function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            /* eslint-enable @typescript-eslint/no-explicit-any */\n            var retVal;\n            if (prototypeMethod) {\n                retVal = prototypeMethod.apply(this, args);\n            }\n            if (classMethod !== prototypeMethod) {\n                retVal = classMethod.apply(this, args);\n            }\n            return retVal;\n        };\n    }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n    return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getWindow } from './dom/getWindow';\n/**\n * Utility component for delaying the render of a child component after a given delay. This component\n * requires a single child component; don't pass in many components. Wrap multiple components in a DIV\n * if necessary.\n *\n * @public\n * {@docCategory DelayedRender}\n */\nvar DelayedRender = /** @class */ (function (_super) {\n    __extends(DelayedRender, _super);\n    function DelayedRender(props) {\n        var _this = _super.call(this, props) || this;\n        _this.state = {\n            isRendered: getWindow() === undefined,\n        };\n        return _this;\n    }\n    DelayedRender.prototype.componentDidMount = function () {\n        var _this = this;\n        var delay = this.props.delay;\n        this._timeoutId = window.setTimeout(function () {\n            _this.setState({\n                isRendered: true,\n            });\n        }, delay);\n    };\n    DelayedRender.prototype.componentWillUnmount = function () {\n        if (this._timeoutId) {\n            clearTimeout(this._timeoutId);\n        }\n    };\n    DelayedRender.prototype.render = function () {\n        return this.state.isRendered ? React.Children.only(this.props.children) : null;\n    };\n    DelayedRender.defaultProps = {\n        delay: 0,\n    };\n    return DelayedRender;\n}(React.Component));\nexport { DelayedRender };\n//# sourceMappingURL=DelayedRender.js.map","import { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n *  If the target is an HTMLElement, the event will be attached to the element and can be\n *  triggered as usual (like clicking for onClick).\n *  The event can be triggered by calling EventGroup.raise() here. If the target is an\n *  HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n *  handled here in EventGroup, and the handler is called in the context of the parent\n *  (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nvar EventGroup = /** @class */ (function () {\n    /** parent: the context in which events attached to non-HTMLElements are called */\n    function EventGroup(parent) {\n        this._id = EventGroup._uniqueId++;\n        this._parent = parent;\n        this._eventRecords = [];\n    }\n    /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n     *  Events raised here by default have bubbling set to false and cancelable set to true.\n     *  This applies also to built-in events being raised manually here on HTMLElements,\n     *  which may lead to unexpected behavior if it differs from the defaults.\n     *\n     */\n    EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent) {\n        var retVal;\n        if (EventGroup._isElement(target)) {\n            if (typeof document !== 'undefined' && document.createEvent) {\n                var ev = document.createEvent('HTMLEvents');\n                // eslint-disable-next-line deprecation/deprecation\n                ev.initEvent(eventName, bubbleEvent || false, true);\n                assign(ev, eventArgs);\n                retVal = target.dispatchEvent(ev);\n            }\n            else if (typeof document !== 'undefined' && document.createEventObject) {\n                // IE8\n                var evObj = document.createEventObject(eventArgs);\n                // cannot set cancelBubble on evObj, fireEvent will overwrite it\n                target.fireEvent('on' + eventName, evObj);\n            }\n        }\n        else {\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n            // @ts-ignore  -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n            while (target && retVal !== false) {\n                var events = target.__events__;\n                var eventRecords = events ? events[eventName] : null;\n                if (eventRecords) {\n                    for (var id in eventRecords) {\n                        if (eventRecords.hasOwnProperty(id)) {\n                            var eventRecordList = eventRecords[id];\n                            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                            // @ts-ignore  -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n                            for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n                                var record = eventRecordList[listIndex];\n                                if (record.objectCallback) {\n                                    retVal = record.objectCallback.call(record.parent, eventArgs);\n                                }\n                            }\n                        }\n                    }\n                }\n                // If the target has a parent, bubble the event up.\n                target = bubbleEvent ? target.parent : null;\n            }\n        }\n        return retVal;\n    };\n    EventGroup.isObserved = function (target, eventName) {\n        var events = target && target.__events__;\n        return !!events && !!events[eventName];\n    };\n    /** Check to see if the target has declared support of the given event. */\n    EventGroup.isDeclared = function (target, eventName) {\n        var declaredEvents = target && target.__declaredEvents;\n        return !!declaredEvents && !!declaredEvents[eventName];\n    };\n    EventGroup.stopPropagation = function (event) {\n        if (event.stopPropagation) {\n            event.stopPropagation();\n        }\n        else {\n            // IE8\n            event.cancelBubble = true;\n        }\n    };\n    EventGroup._isElement = function (target) {\n        return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n    };\n    EventGroup.prototype.dispose = function () {\n        if (!this._isDisposed) {\n            this._isDisposed = true;\n            this.off();\n            this._parent = null;\n        }\n    };\n    /** On the target, attach a set of events, where the events object is a name to function mapping. */\n    EventGroup.prototype.onAll = function (target, events, useCapture) {\n        for (var eventName in events) {\n            if (events.hasOwnProperty(eventName)) {\n                this.on(target, eventName, events[eventName], useCapture);\n            }\n        }\n    };\n    /**\n     * On the target, attach an event whose handler will be called in the context of the parent\n     * of this instance of EventGroup.\n     */\n    EventGroup.prototype.on = function (target, eventName, callback, options) {\n        var _this = this;\n        if (eventName.indexOf(',') > -1) {\n            var events = eventName.split(/[ ,]+/);\n            for (var i = 0; i < events.length; i++) {\n                this.on(target, events[i], callback, options);\n            }\n        }\n        else {\n            var parent_1 = this._parent;\n            var eventRecord = {\n                target: target,\n                eventName: eventName,\n                parent: parent_1,\n                callback: callback,\n                options: options,\n            };\n            // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n            var events = (target.__events__ = target.__events__ || {});\n            events[eventName] =\n                events[eventName] ||\n                    {\n                        count: 0,\n                    };\n            events[eventName][this._id] = events[eventName][this._id] || [];\n            events[eventName][this._id].push(eventRecord);\n            events[eventName].count++;\n            if (EventGroup._isElement(target)) {\n                var processElementEvent = function () {\n                    var args = [];\n                    for (var _i = 0; _i < arguments.length; _i++) {\n                        args[_i] = arguments[_i];\n                    }\n                    if (_this._isDisposed) {\n                        return;\n                    }\n                    var result;\n                    try {\n                        result = callback.apply(parent_1, args);\n                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                        // @ts-ignore  -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n                        if (result === false && args[0]) {\n                            var e = args[0];\n                            if (e.preventDefault) {\n                                e.preventDefault();\n                            }\n                            if (e.stopPropagation) {\n                                e.stopPropagation();\n                            }\n                            e.cancelBubble = true;\n                        }\n                    }\n                    catch (e) {\n                        // ignore\n                    }\n                    return result;\n                };\n                eventRecord.elementCallback = processElementEvent;\n                if (target.addEventListener) {\n                    target.addEventListener(eventName, processElementEvent, options);\n                }\n                else if (target.attachEvent) {\n                    // IE8\n                    target.attachEvent('on' + eventName, processElementEvent);\n                }\n            }\n            else {\n                var processObjectEvent = function () {\n                    var args = [];\n                    for (var _i = 0; _i < arguments.length; _i++) {\n                        args[_i] = arguments[_i];\n                    }\n                    if (_this._isDisposed) {\n                        return;\n                    }\n                    return callback.apply(parent_1, args);\n                };\n                eventRecord.objectCallback = processObjectEvent;\n            }\n            // Remember the record locally, so that it can be removed.\n            this._eventRecords.push(eventRecord);\n        }\n    };\n    EventGroup.prototype.off = function (target, eventName, callback, options) {\n        for (var i = 0; i < this._eventRecords.length; i++) {\n            var eventRecord = this._eventRecords[i];\n            if ((!target || target === eventRecord.target) &&\n                (!eventName || eventName === eventRecord.eventName) &&\n                (!callback || callback === eventRecord.callback) &&\n                (typeof options !== 'boolean' || options === eventRecord.options)) {\n                var events = eventRecord.target.__events__;\n                var targetArrayLookup = events[eventRecord.eventName];\n                var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n                // We may have already target's entries, so check for null.\n                if (targetArray) {\n                    if (targetArray.length === 1 || !callback) {\n                        targetArrayLookup.count -= targetArray.length;\n                        delete events[eventRecord.eventName][this._id];\n                    }\n                    else {\n                        targetArrayLookup.count--;\n                        targetArray.splice(targetArray.indexOf(eventRecord), 1);\n                    }\n                    if (!targetArrayLookup.count) {\n                        delete events[eventRecord.eventName];\n                    }\n                }\n                if (eventRecord.elementCallback) {\n                    if (eventRecord.target.removeEventListener) {\n                        eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n                    }\n                    else if (eventRecord.target.detachEvent) {\n                        // IE8\n                        eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n                    }\n                }\n                this._eventRecords.splice(i--, 1);\n            }\n        }\n    };\n    /** Trigger the given event in the context of this instance of EventGroup. */\n    EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n        return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n    };\n    /** Declare an event as being supported by this instance of EventGroup. */\n    EventGroup.prototype.declare = function (event) {\n        var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n        if (typeof event === 'string') {\n            declaredEvents[event] = true;\n        }\n        else {\n            for (var i = 0; i < event.length; i++) {\n                declaredEvents[event[i]] = true;\n            }\n        }\n    };\n    EventGroup._uniqueId = 0;\n    return EventGroup;\n}());\nexport { EventGroup };\n//# sourceMappingURL=EventGroup.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n    var ariaAttributes = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        ariaAttributes[_i] = arguments[_i];\n    }\n    var mergedAttribute = ariaAttributes\n        .filter(function (arg) { return arg; })\n        .join(' ')\n        .trim();\n    return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n    if (fromIndex === void 0) { fromIndex = 0; }\n    var index = -1;\n    for (var i = fromIndex; array && i < array.length; i++) {\n        if (cb(array[i], i)) {\n            index = i;\n            break;\n        }\n    }\n    return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n    var index = findIndex(array, cb);\n    if (index < 0) {\n        return undefined;\n    }\n    return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n    var array = [];\n    for (var i = 0; i < size; i++) {\n        array.push(getItem(i));\n    }\n    return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n    return items.reduce(function (rows, currentValue, index) {\n        if (index % columnCount === 0) {\n            rows.push([currentValue]);\n        }\n        else {\n            rows[rows.length - 1].push(currentValue);\n        }\n        return rows;\n    }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n    return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n    var copy = array.slice();\n    copy[index] = newElement;\n    return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n    var copy = array.slice();\n    copy.splice(index, 0, itemToAdd);\n    return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n    var result = [];\n    array.forEach(function (item) { return (result = result.concat(item)); });\n    return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n    if (array1.length !== array2.length) {\n        return false;\n    }\n    for (var i = 0; i < array1.length; i++) {\n        if (array1[i] !== array2[i]) {\n            return false;\n        }\n    }\n    return true;\n}\n//# sourceMappingURL=array.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n    var Outer = outer;\n    var outerMemoizer = createMemoizer(function (inner) {\n        if (outer === inner) {\n            throw new Error('Attempted to compose a component with itself.');\n        }\n        var Inner = inner;\n        var innerMemoizer = createMemoizer(function (defaultRender) {\n            var InnerWithDefaultRender = function (innerProps) {\n                return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n            };\n            return InnerWithDefaultRender;\n        });\n        var OuterWithDefaultRender = function (outerProps) {\n            var defaultRender = outerProps.defaultRender;\n            return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n        };\n        return OuterWithDefaultRender;\n    });\n    return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n    return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) {\n    return function (newValue) {\n        for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n            var ref = _a[_i];\n            if (typeof ref === 'function') {\n                ref(newValue);\n            }\n            else if (ref) {\n                // work around the immutability of the React.Ref type\n                ref.current = newValue;\n            }\n        }\n    };\n};\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n    var local = {\n        refs: [],\n    };\n    return function () {\n        var newRefs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newRefs[_i] = arguments[_i];\n        }\n        if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n            local.resolver = createResolver(local);\n        }\n        local.refs = newRefs;\n        return local.resolver;\n    };\n};\n//# sourceMappingURL=createMergedRef.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var classes = [];\n    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n        var arg = args_1[_a];\n        if (arg) {\n            if (typeof arg === 'string') {\n                classes.push(arg);\n            }\n            else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n                classes.push(arg.toString());\n            }\n            else {\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                for (var key in arg) {\n                    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                    if (arg[key]) {\n                        classes.push(key);\n                    }\n                }\n            }\n        }\n    }\n    return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets } from '@fluentui/merge-styles';\nexport function customizable(scope, fields, concatStyles) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return function customizableFactory(ComposedComponent) {\n        var _a;\n        var resultClass = (_a = /** @class */ (function (_super) {\n                __extends(ComponentWithInjectedProps, _super);\n                function ComponentWithInjectedProps(props) {\n                    var _this = _super.call(this, props) || this;\n                    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                    _this._styleCache = {};\n                    _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n                    return _this;\n                }\n                ComponentWithInjectedProps.prototype.componentDidMount = function () {\n                    Customizations.observe(this._onSettingChanged);\n                };\n                ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n                    Customizations.unobserve(this._onSettingChanged);\n                };\n                ComponentWithInjectedProps.prototype.render = function () {\n                    var _this = this;\n                    return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n                        var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n                        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                        var componentProps = _this.props;\n                        // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n                        if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n                            defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n                        }\n                        // If concatStyles is true and custom styles have been defined compute those styles\n                        if (concatStyles && defaultProps.styles) {\n                            if (_this._styleCache.default !== defaultProps.styles ||\n                                _this._styleCache.component !== componentProps.styles) {\n                                var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n                                _this._styleCache.default = defaultProps.styles;\n                                _this._styleCache.component = componentProps.styles;\n                                _this._styleCache.merged = mergedStyles;\n                            }\n                            return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged }));\n                        }\n                        return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps));\n                    }));\n                };\n                ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n                    this.forceUpdate();\n                };\n                return ComponentWithInjectedProps;\n            }(React.Component)),\n            _a.displayName = 'Customized' + scope,\n            _a);\n        return hoistStatics(ComposedComponent, resultClass);\n    };\n}\n//# sourceMappingURL=customizable.js.map","/**\n * Helper to get bounding client rect. Passing in window will get the window size.\n *\n * @public\n */\nexport function getRect(element) {\n    var rect;\n    if (element) {\n        if (element === window) {\n            rect = {\n                left: 0,\n                top: 0,\n                width: window.innerWidth,\n                height: window.innerHeight,\n                right: window.innerWidth,\n                bottom: window.innerHeight,\n            };\n        }\n        else if (element.getBoundingClientRect) {\n            rect = element.getBoundingClientRect();\n        }\n    }\n    return rect;\n}\n//# sourceMappingURL=getRect.js.map","export function on(element, eventName, callback, options) {\n    element.addEventListener(eventName, callback, options);\n    return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n    var functions = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        functions[_i - 1] = arguments[_i];\n    }\n    if (functions.length < 2) {\n        return functions[0];\n    }\n    return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        functions.forEach(function (f) { return f && f.apply(parent, args); });\n    };\n}\n//# sourceMappingURL=appendFunction.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n    for (var name_1 in methods) {\n        if (methods.hasOwnProperty(name_1)) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n        }\n    }\n}\n//# sourceMappingURL=extendComponent.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n    return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n    return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at.  This element is the first one checked,\n * and iteration continues forward.  Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n    if (checkNode === void 0) { checkNode = true; }\n    return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at.  This element is the first one checked,\n * and iteration continues in reverse.  Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n    if (checkNode === void 0) { checkNode = true; }\n    return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement, bypassHiddenElements) {\n    var element = getNextElement(rootElement, rootElement, true, false, false, true, undefined, undefined, bypassHiddenElements);\n    if (element) {\n        focusAsync(element);\n        return true;\n    }\n    return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n    if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n        return null;\n    }\n    var isCurrentElementVisible = isElementVisible(currentElement);\n    // Check its children.\n    if (traverseChildren &&\n        isCurrentElementVisible &&\n        (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n        var childMatch = getPreviousElement(rootElement, currentElement.lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n        if (childMatch) {\n            if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n                return childMatch;\n            }\n            var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n            if (childMatchSiblingMatch) {\n                return childMatchSiblingMatch;\n            }\n            var childMatchParent = childMatch.parentElement;\n            // At this point if we have not found any potential matches\n            // start looking at the rest of the subtree under the currentParent.\n            // NOTE: We do not want to recurse here because doing so could\n            // cause elements to get skipped.\n            while (childMatchParent && childMatchParent !== currentElement) {\n                var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n                if (childMatchParentMatch) {\n                    return childMatchParentMatch;\n                }\n                childMatchParent = childMatchParent.parentElement;\n            }\n        }\n    }\n    // Check the current node, if it's not the first traversal.\n    if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n        return currentElement;\n    }\n    // Check its previous sibling.\n    var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n    if (siblingMatch) {\n        return siblingMatch;\n    }\n    // Check its parent.\n    if (!suppressParentTraversal) {\n        return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n    }\n    return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements) {\n    if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n        return null;\n    }\n    var checkElementVisibility = bypassHiddenElements ? isElementVisibleAndNotHidden : isElementVisible;\n    var isCurrentElementVisible = checkElementVisibility(currentElement);\n    // Check the current node, if it's not the first traversal.\n    if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n        return currentElement;\n    }\n    // Check its children.\n    if (!suppressChildTraversal &&\n        isCurrentElementVisible &&\n        (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n        var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n        if (childMatch) {\n            return childMatch;\n        }\n    }\n    if (currentElement === rootElement) {\n        return null;\n    }\n    // Check its sibling.\n    var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n    if (siblingMatch) {\n        return siblingMatch;\n    }\n    if (!suppressParentTraversal) {\n        return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n    }\n    return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n    // If the element is not valid, return false.\n    if (!element || !element.getAttribute) {\n        return false;\n    }\n    var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n    // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n    if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n        return visibilityAttribute === 'true';\n    }\n    // Fallback to other methods of determining actual visibility.\n    return (element.offsetHeight !== 0 ||\n        element.offsetParent !== null ||\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element) {\n    return (!!element &&\n        isElementVisible(element) &&\n        !element.hidden &&\n        window.getComputedStyle(element).visibility !== 'hidden');\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex) {\n    // If this element is null or is disabled, it is not considered tabbable.\n    if (!element || element.disabled) {\n        return false;\n    }\n    var tabIndex = 0;\n    var tabIndexAttributeValue = null;\n    if (element && element.getAttribute) {\n        tabIndexAttributeValue = element.getAttribute('tabIndex');\n        if (tabIndexAttributeValue) {\n            tabIndex = parseInt(tabIndexAttributeValue, 10);\n        }\n    }\n    var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n    var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n    var result = !!element &&\n        isFocusableAttribute !== 'false' &&\n        (element.tagName === 'A' ||\n            element.tagName === 'BUTTON' ||\n            element.tagName === 'INPUT' ||\n            element.tagName === 'TEXTAREA' ||\n            element.tagName === 'SELECT' ||\n            isFocusableAttribute === 'true' ||\n            isTabIndexSet);\n    return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n    return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n    return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n    var document = getDocument(element);\n    var currentActiveElement = document && document.activeElement;\n    if (currentActiveElement && elementContains(element, currentActiveElement)) {\n        return true;\n    }\n    return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute) {\n    return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\nvar animationId = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n    if (element) {\n        var win = getWindow(element);\n        if (win) {\n            // cancel any previous focus queues\n            if (animationId !== undefined) {\n                win.cancelAnimationFrame(animationId);\n            }\n            // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n            animationId = win.requestAnimationFrame(function () {\n                element && element.focus();\n                // We are done focusing for this frame, so reset the queued focus element\n                animationId = undefined;\n            });\n        }\n    }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n    var element = parent;\n    for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n        var index = path_1[_i];\n        var nextChild = element.children[Math.min(index, element.children.length - 1)];\n        if (!nextChild) {\n            break;\n        }\n        element = nextChild;\n    }\n    element =\n        isElementTabbable(element) && isElementVisible(element)\n            ? element\n            : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n    return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n    var path = [];\n    while (toElement && fromElement && toElement !== fromElement) {\n        var parent_1 = getParent(toElement, true);\n        if (parent_1 === null) {\n            return [];\n        }\n        path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n        toElement = parent_1;\n    }\n    return path;\n}\n//# sourceMappingURL=focus.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute) {\n    var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); });\n    return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n    var props = __assign({}, propsWithoutDefaults);\n    for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n        var key = _a[_i];\n        if (props[key] === undefined) {\n            props[key] = defaultProps[key];\n        }\n    }\n    return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n    for (var name_1 in source) {\n        if (source.hasOwnProperty(name_1)) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            dest[name_1] = source[name_1];\n        }\n    }\n    return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","import { getWindow } from './dom/getWindow';\nexport var isIE11 = function () {\n    var _a;\n    var win = getWindow();\n    if (!((_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)) {\n        return false;\n    }\n    return win.navigator.userAgent.indexOf('rv:11.0') > -1;\n};\n//# sourceMappingURL=ie11Detector.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n    extendComponent(obj, {\n        componentDidMount: _onMount,\n        componentDidUpdate: _onUpdate,\n        componentWillUnmount: _onUnmount,\n    });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onMount() {\n    _setComponentRef(this.props.componentRef, this);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUpdate(prevProps) {\n    if (prevProps.componentRef !== this.props.componentRef) {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        _setComponentRef(prevProps.componentRef, null);\n        _setComponentRef(this.props.componentRef, this);\n    }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUnmount() {\n    _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n    if (componentRef) {\n        if (typeof componentRef === 'object') {\n            componentRef.current = value;\n        }\n        else if (typeof componentRef === 'function') {\n            componentRef(value);\n        }\n    }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","/**\n * Regular expressions matching characters to ignore when calculating the initials.\n */\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n *  so for example, (xyz) [xyz] {xyz} <xyz> all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{\\<][^\\)\\]\\}\\>]*[\\)\\]\\}\\>]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic:   Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean:   Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK:      CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n *             CJK Unified Ideographs Extension B\n */\nvar UNSUPPORTED_TEXT_REGEX = \n// eslint-disable-next-line @fluentui/max-len\n/[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\nfunction getInitialsLatin(displayName, isRtl) {\n    var initials = '';\n    var splits = displayName.split(' ');\n    if (splits.length === 2) {\n        initials += splits[0].charAt(0).toUpperCase();\n        initials += splits[1].charAt(0).toUpperCase();\n    }\n    else if (splits.length === 3) {\n        initials += splits[0].charAt(0).toUpperCase();\n        initials += splits[2].charAt(0).toUpperCase();\n    }\n    else if (splits.length !== 0) {\n        initials += splits[0].charAt(0).toUpperCase();\n    }\n    if (isRtl && initials.length > 1) {\n        return initials.charAt(1) + initials.charAt(0);\n    }\n    return initials;\n}\nfunction cleanupDisplayName(displayName) {\n    displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n    displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n    displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n    displayName = displayName.trim();\n    return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n    if (!displayName) {\n        return '';\n    }\n    displayName = cleanupDisplayName(displayName);\n    // For names containing CJK characters, and phone numbers, we don't display initials\n    if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {\n        return '';\n    }\n    return getInitialsLatin(displayName, isRtl);\n}\n//# sourceMappingURL=initials.js.map","/**\n * Determines the distance between two points.\n *\n * @public\n */\n/* eslint-disable deprecation/deprecation */\nexport function getDistanceBetweenPoints(point1, point2) {\n    var left1 = point1.left || point1.x || 0;\n    var top1 = point1.top || point1.y || 0;\n    var left2 = point2.left || point2.x || 0;\n    var top2 = point2.top || point2.y || 0;\n    /* eslint-enable deprecation/deprecation */\n    var distance = Math.sqrt(Math.pow(left1 - left2, 2) + Math.pow(top1 - top2, 2));\n    return distance;\n}\n/**\n * Produces a proportionally-scaled version of an input content size when fit to a bounding size.\n * Given a `contentSize` and a `boundsSize`, this function scales `contentSize` proportionally\n * using either `contain` or `cover` fit behaviors.\n * Use this function to pre-calculate the layout for the CSS `object-fit` and `background-fit` behaviors.\n * With `contain`, the output size must be the largest it can be while completely within the `boundsSize`.\n * With `cover`, the output size must be the smallest it can be while completely around the `boundsSize`.\n * By default, there is a `maxScale` value of 1, which prevents the `contentSize` from being scaled larger.\n *\n * @param options - the options for the bounds fit operation\n */\nexport function fitContentToBounds(options) {\n    var contentSize = options.contentSize, boundsSize = options.boundsSize, _a = options.mode, mode = _a === void 0 ? 'contain' : _a, _b = options.maxScale, maxScale = _b === void 0 ? 1 : _b;\n    var contentAspectRatio = contentSize.width / contentSize.height;\n    var boundsAspectRatio = boundsSize.width / boundsSize.height;\n    var scale;\n    if (mode === 'contain' ? contentAspectRatio > boundsAspectRatio : contentAspectRatio < boundsAspectRatio) {\n        scale = boundsSize.width / contentSize.width;\n    }\n    else {\n        scale = boundsSize.height / contentSize.height;\n    }\n    var finalScale = Math.min(maxScale, scale);\n    return {\n        width: contentSize.width * finalScale,\n        height: contentSize.height * finalScale,\n    };\n}\n/**\n * Calculates a number's precision based on the number of trailing\n * zeros if the number does not have a decimal indicated by a negative\n * precision. Otherwise, it calculates the number of digits after\n * the decimal point indicated by a positive precision.\n * @param value - the value to determine the precision of\n */\nexport function calculatePrecision(value) {\n    /**\n     * Group 1:\n     * [1-9]([0]+$) matches trailing zeros\n     * Group 2:\n     * \\.([0-9]*) matches all digits after a decimal point.\n     */\n    var groups = /[1-9]([0]+$)|\\.([0-9]*)/.exec(String(value));\n    if (!groups) {\n        return 0;\n    }\n    if (groups[1]) {\n        return -groups[1].length;\n    }\n    if (groups[2]) {\n        return groups[2].length;\n    }\n    return 0;\n}\n/**\n * Rounds a number to a certain level of precision. Accepts negative precision.\n * @param value - The value that is being rounded.\n * @param precision - The number of decimal places to round the number to\n */\nexport function precisionRound(value, precision, base) {\n    if (base === void 0) { base = 10; }\n    var exp = Math.pow(base, precision);\n    return Math.round(value * exp) / exp;\n}\n//# sourceMappingURL=math.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n    if (!window || !window.navigator || !window.navigator.userAgent) {\n        return false;\n    }\n    return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/** Tag names to ignore when modalizing */\nvar tagsToIgnore = ['TEMPLATE', 'STYLE', 'SCRIPT'];\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n    var targetDocument = getDocument(target);\n    if (!targetDocument) {\n        // can't do this in SSR\n        return function () { return undefined; };\n    }\n    var affectedNodes = [];\n    // start at target, then recurse and do the same for parent, until we reach <body>\n    while (target !== targetDocument.body && target.parentElement) {\n        // grab all siblings of current element\n        for (var _i = 0, _a = target.parentElement.children; _i < _a.length; _i++) {\n            var sibling = _a[_i];\n            // but ignore elements that are already aria-hidden\n            var ariaHidden = sibling.getAttribute('aria-hidden');\n            if (sibling !== target && (ariaHidden === null || ariaHidden === void 0 ? void 0 : ariaHidden.toLowerCase()) !== 'true' && tagsToIgnore.indexOf(sibling.tagName) === -1) {\n                affectedNodes.push([sibling, ariaHidden]);\n            }\n        }\n        target = target.parentElement;\n    }\n    // take all those elements and set aria-hidden=true on them\n    affectedNodes.forEach(function (_a) {\n        var node = _a[0];\n        node.setAttribute('aria-hidden', 'true');\n    });\n    return function () {\n        unmodalize(affectedNodes);\n        affectedNodes = []; // dispose\n    };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n    affectedNodes.forEach(function (_a) {\n        var node = _a[0], originalValue = _a[1];\n        // Restore the original value (false or unset)\n        if (originalValue) {\n            node.setAttribute('aria-hidden', originalValue);\n        }\n        else {\n            node.removeAttribute('aria-hidden');\n        }\n    });\n}\n//# sourceMappingURL=modalize.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n    if (!a || !b) {\n        // only return true if both a and b are falsy\n        return !a && !b;\n    }\n    for (var propName in a) {\n        if (a.hasOwnProperty(propName)) {\n            if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n                return false;\n            }\n        }\n    }\n    for (var propName in b) {\n        if (b.hasOwnProperty(propName)) {\n            if (!a.hasOwnProperty(propName)) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    target = target || {};\n    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n        var sourceObject = args_1[_a];\n        if (sourceObject) {\n            for (var propName in sourceObject) {\n                if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n                    target[propName] = sourceObject[propName];\n                }\n            }\n        }\n    }\n    return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n    // map<any> to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n    return Object.keys(theEnum)\n        .map(function (p) {\n        // map on each property name as a string\n        if (String(Number(p)) !== p) {\n            // if the property is not just a number (because enums in TypeScript will map both ways)\n            return callback(p, theEnum[p]);\n        }\n        return undefined;\n    })\n        .filter(function (v) { return !!v; }); // only return elements with values\n}\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj) {\n    return Object.keys(obj).reduce(function (arr, key) {\n        arr.push(obj[key]);\n        return arr;\n    }, []);\n}\n/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit(obj, exclusions) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    var result = {};\n    for (var key in obj) {\n        if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n            result[key] = obj[key];\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=object.js.map","import { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n    var _a;\n    if (typeof isMacResult === 'undefined' || reset) {\n        var win = getWindow();\n        // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n        var userAgent = (_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\n        isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n    }\n    return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","var toObjectMap = function () {\n    var items = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        items[_i] = arguments[_i];\n    }\n    var result = {};\n    for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {\n        var item = items_1[_a];\n        var keys = Array.isArray(item) ? item : Object.keys(item);\n        for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {\n            var key = keys_1[_b];\n            result[key] = 1;\n        }\n    }\n    return result;\n};\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementEvents = toObjectMap([\n    'onCopy',\n    'onCut',\n    'onPaste',\n    'onCompositionEnd',\n    'onCompositionStart',\n    'onCompositionUpdate',\n    'onFocus',\n    'onFocusCapture',\n    'onBlur',\n    'onBlurCapture',\n    'onChange',\n    'onInput',\n    'onSubmit',\n    'onLoad',\n    'onError',\n    'onKeyDown',\n    'onKeyDownCapture',\n    'onKeyPress',\n    'onKeyUp',\n    'onAbort',\n    'onCanPlay',\n    'onCanPlayThrough',\n    'onDurationChange',\n    'onEmptied',\n    'onEncrypted',\n    'onEnded',\n    'onLoadedData',\n    'onLoadedMetadata',\n    'onLoadStart',\n    'onPause',\n    'onPlay',\n    'onPlaying',\n    'onProgress',\n    'onRateChange',\n    'onSeeked',\n    'onSeeking',\n    'onStalled',\n    'onSuspend',\n    'onTimeUpdate',\n    'onVolumeChange',\n    'onWaiting',\n    'onClick',\n    'onClickCapture',\n    'onContextMenu',\n    'onDoubleClick',\n    'onDrag',\n    'onDragEnd',\n    'onDragEnter',\n    'onDragExit',\n    'onDragLeave',\n    'onDragOver',\n    'onDragStart',\n    'onDrop',\n    'onMouseDown',\n    'onMouseDownCapture',\n    'onMouseEnter',\n    'onMouseLeave',\n    'onMouseMove',\n    'onMouseOut',\n    'onMouseOver',\n    'onMouseUp',\n    'onMouseUpCapture',\n    'onSelect',\n    'onTouchCancel',\n    'onTouchEnd',\n    'onTouchMove',\n    'onTouchStart',\n    'onScroll',\n    'onWheel',\n    'onPointerCancel',\n    'onPointerDown',\n    'onPointerEnter',\n    'onPointerLeave',\n    'onPointerMove',\n    'onPointerOut',\n    'onPointerOver',\n    'onPointerUp',\n    'onGotPointerCapture',\n    'onLostPointerCapture',\n]);\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementProperties = toObjectMap([\n    'accessKey',\n    'children',\n    'className',\n    'contentEditable',\n    'dir',\n    'draggable',\n    'hidden',\n    'htmlFor',\n    'id',\n    'lang',\n    'ref',\n    'role',\n    'style',\n    'tabIndex',\n    'title',\n    'translate',\n    'spellCheck',\n    'name', // global\n]);\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport var htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport var labelProperties = toObjectMap(htmlElementProperties, [\n    'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport var audioProperties = toObjectMap(htmlElementProperties, [\n    'height',\n    'loop',\n    'muted',\n    'preload',\n    'src',\n    'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport var videoProperties = toObjectMap(audioProperties, [\n    'poster', // video\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport var olProperties = toObjectMap(htmlElementProperties, [\n    'start', // ol\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport var liProperties = toObjectMap(htmlElementProperties, [\n    'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport var anchorProperties = toObjectMap(htmlElementProperties, [\n    'download',\n    'href',\n    'hrefLang',\n    'media',\n    'rel',\n    'target',\n    'type', // a, button, input, link, menu, object, script, source, style\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport var buttonProperties = toObjectMap(htmlElementProperties, [\n    'autoFocus',\n    'disabled',\n    'form',\n    'formAction',\n    'formEncType',\n    'formMethod',\n    'formNoValidate',\n    'formTarget',\n    'type',\n    'value', // button, input, li, option, meter, progress, param,\n]);\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport var inputProperties = toObjectMap(buttonProperties, [\n    'accept',\n    'alt',\n    'autoCapitalize',\n    'autoComplete',\n    'checked',\n    'dirname',\n    'form',\n    'height',\n    'inputMode',\n    'list',\n    'max',\n    'maxLength',\n    'min',\n    'minLength',\n    'multiple',\n    'pattern',\n    'placeholder',\n    'readOnly',\n    'required',\n    'src',\n    'step',\n    'size',\n    'type',\n    'value',\n    'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport var textAreaProperties = toObjectMap(buttonProperties, [\n    'autoCapitalize',\n    'cols',\n    'dirname',\n    'form',\n    'maxLength',\n    'minLength',\n    'placeholder',\n    'readOnly',\n    'required',\n    'rows',\n    'wrap', // textarea\n]);\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport var selectProperties = toObjectMap(buttonProperties, [\n    'form',\n    'multiple',\n    'required', // input, select, textarea\n]);\nexport var optionProperties = toObjectMap(htmlElementProperties, [\n    'selected',\n    'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport var tableProperties = toObjectMap(htmlElementProperties, [\n    'cellPadding',\n    'cellSpacing', // table\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport var trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport var thProperties = toObjectMap(htmlElementProperties, [\n    'rowSpan',\n    'scope', // th\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport var tdProperties = toObjectMap(htmlElementProperties, [\n    'colSpan',\n    'headers',\n    'rowSpan',\n    'scope', // th\n]);\nexport var colGroupProperties = toObjectMap(htmlElementProperties, [\n    'span', // col, colgroup\n]);\nexport var colProperties = toObjectMap(htmlElementProperties, [\n    'span', // col, colgroup\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport var formProperties = toObjectMap(htmlElementProperties, [\n    'acceptCharset',\n    'action',\n    'encType',\n    'encType',\n    'method',\n    'noValidate',\n    'target', // form\n]);\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport var iframeProperties = toObjectMap(htmlElementProperties, [\n    'allow',\n    'allowFullScreen',\n    'allowPaymentRequest',\n    'allowTransparency',\n    'csp',\n    'height',\n    'importance',\n    'referrerPolicy',\n    'sandbox',\n    'src',\n    'srcDoc',\n    'width', // canvas, embed, iframe, img, input, object, video,\n]);\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport var imgProperties = toObjectMap(htmlElementProperties, [\n    'alt',\n    'crossOrigin',\n    'height',\n    'src',\n    'srcSet',\n    'useMap',\n    'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport var imageProperties = imgProperties;\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport var divProperties = htmlElementProperties;\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, allowedPropNames, excludedPropNames) {\n    // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n    // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n    // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n    // return native props.\n    // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n    var isArray = Array.isArray(allowedPropNames);\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    var result = {};\n    var keys = Object.keys(props);\n    for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n        var key = keys_2[_i];\n        var isNativeProp = (!isArray && allowedPropNames[key]) ||\n            (isArray && allowedPropNames.indexOf(key) >= 0) ||\n            key.indexOf('data-') === 0 ||\n            key.indexOf('aria-') === 0;\n        if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            result[key] = props[key];\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=properties.js.map","import { createMemoizer } from '../memoize';\nfunction createComposedRenderFunction(outer) {\n    var outerMemoizer = createMemoizer(function (inner) {\n        var innerMemoizer = createMemoizer(function (defaultRender) {\n            return function (innerProps) {\n                return inner(innerProps, defaultRender);\n            };\n        });\n        return function (outerProps, defaultRender) {\n            return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n        };\n    });\n    return outerMemoizer;\n}\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\nexport function composeRenderFunction(outer, inner) {\n    return memoizer(outer)(inner);\n}\n//# sourceMappingURL=composeRenderFunction.js.map","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getWindow } from './dom/getWindow';\nvar _scrollbarWidth;\nvar _bodyScrollDisabledCount = 0;\nvar DisabledScrollClassName = mergeStyles({\n    overflow: 'hidden !important',\n});\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport var allowScrollOnElement = function (element, events) {\n    if (!element) {\n        return;\n    }\n    var _previousClientY = 0;\n    var _element = null;\n    // remember the clientY for future calls of _preventOverscrolling\n    var _saveClientY = function (event) {\n        if (event.targetTouches.length === 1) {\n            _previousClientY = event.targetTouches[0].clientY;\n        }\n    };\n    // prevent the body from scrolling when the user attempts\n    // to scroll past the top or bottom of the element\n    var _preventOverscrolling = function (event) {\n        // only respond to a single-finger touch\n        if (event.targetTouches.length !== 1) {\n            return;\n        }\n        // prevent the body touchmove handler from firing\n        // so that scrolling is allowed within the element\n        event.stopPropagation();\n        if (!_element) {\n            return;\n        }\n        var clientY = event.targetTouches[0].clientY - _previousClientY;\n        var scrollableParent = findScrollableParent(event.target);\n        if (scrollableParent) {\n            _element = scrollableParent;\n        }\n        // if the element is scrolled to the top,\n        // prevent the user from scrolling up\n        if (_element.scrollTop === 0 && clientY > 0) {\n            event.preventDefault();\n        }\n        // if the element is scrolled to the bottom,\n        // prevent the user from scrolling down\n        if (_element.scrollHeight - Math.ceil(_element.scrollTop) <= _element.clientHeight && clientY < 0) {\n            event.preventDefault();\n        }\n    };\n    events.on(element, 'touchstart', _saveClientY, { passive: false });\n    events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n    _element = element;\n};\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport var allowOverscrollOnElement = function (element, events) {\n    if (!element) {\n        return;\n    }\n    var _allowElementScroll = function (event) {\n        event.stopPropagation();\n    };\n    events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\nvar _disableIosBodyScroll = function (event) {\n    event.preventDefault();\n};\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll() {\n    var doc = getDocument();\n    if (doc && doc.body && !_bodyScrollDisabledCount) {\n        doc.body.classList.add(DisabledScrollClassName);\n        doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n    }\n    _bodyScrollDisabledCount++;\n}\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll() {\n    if (_bodyScrollDisabledCount > 0) {\n        var doc = getDocument();\n        if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n            doc.body.classList.remove(DisabledScrollClassName);\n            doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n        }\n        _bodyScrollDisabledCount--;\n    }\n}\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth() {\n    if (_scrollbarWidth === undefined) {\n        var scrollDiv = document.createElement('div');\n        scrollDiv.style.setProperty('width', '100px');\n        scrollDiv.style.setProperty('height', '100px');\n        scrollDiv.style.setProperty('overflow', 'scroll');\n        scrollDiv.style.setProperty('position', 'absolute');\n        scrollDiv.style.setProperty('top', '-9999px');\n        document.body.appendChild(scrollDiv);\n        // Get the scrollbar width\n        _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n        // Delete the DIV\n        document.body.removeChild(scrollDiv);\n    }\n    return _scrollbarWidth;\n}\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement) {\n    var el = startingElement;\n    var doc = getDocument(startingElement);\n    // First do a quick scan for the scrollable attribute.\n    while (el && el !== doc.body) {\n        if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n            return el;\n        }\n        el = el.parentElement;\n    }\n    // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n    el = startingElement;\n    while (el && el !== doc.body) {\n        if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n            var computedStyles = getComputedStyle(el);\n            var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n            if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n                return el;\n            }\n        }\n        el = el.parentElement;\n    }\n    // Fall back to window scroll.\n    if (!el || el === doc.body) {\n        el = getWindow(startingElement);\n    }\n    return el;\n}\n//# sourceMappingURL=scroll.js.map","import { SELECTION_CHANGE, SelectionMode, SELECTION_ITEMS_CHANGE } from './Selection.types';\nimport { EventGroup } from '../EventGroup';\n/**\n * {@docCategory Selection}\n */\nvar Selection = /** @class */ (function () {\n    /**\n     * Create a new Selection. If `TItem` does not have a `key` property, you must provide an options\n     * object with a `getKey` implementation. Providing options is optional otherwise.\n     * (At most one `options` object is accepted.)\n     */\n    function Selection() {\n        var options = []; // Otherwise, arguments require options with `getKey`.\n        for (var _i = 0 // Otherwise, arguments require options with `getKey`.\n        ; _i < arguments.length // Otherwise, arguments require options with `getKey`.\n        ; _i++ // Otherwise, arguments require options with `getKey`.\n        ) {\n            options[_i] = arguments[_i]; // Otherwise, arguments require options with `getKey`.\n        }\n        var _a = options[0] || {}, onSelectionChanged = _a.onSelectionChanged, onItemsChanged = _a.onItemsChanged, getKey = _a.getKey, _b = _a.canSelectItem, canSelectItem = _b === void 0 ? function () { return true; } : _b, items = _a.items, _c = _a.selectionMode, selectionMode = _c === void 0 ? SelectionMode.multiple : _c;\n        this.mode = selectionMode;\n        this._getKey = getKey || defaultGetKey;\n        this._changeEventSuppressionCount = 0;\n        this._exemptedCount = 0;\n        this._anchoredIndex = 0;\n        this._unselectableCount = 0;\n        this._onSelectionChanged = onSelectionChanged;\n        this._onItemsChanged = onItemsChanged;\n        this._canSelectItem = canSelectItem;\n        this._keyToIndexMap = {};\n        this._isModal = false;\n        this.setItems(items || [], true);\n        this.count = this.getSelectedCount();\n    }\n    Selection.prototype.canSelectItem = function (item, index) {\n        if (typeof index === 'number' && index < 0) {\n            return false;\n        }\n        return this._canSelectItem(item, index);\n    };\n    Selection.prototype.getKey = function (item, index) {\n        var key = this._getKey(item, index);\n        return typeof key === 'number' || key ? \"\".concat(key) : '';\n    };\n    Selection.prototype.setChangeEvents = function (isEnabled, suppressChange) {\n        this._changeEventSuppressionCount += isEnabled ? -1 : 1;\n        if (this._changeEventSuppressionCount === 0 && this._hasChanged) {\n            this._hasChanged = false;\n            if (!suppressChange) {\n                this._change();\n            }\n        }\n    };\n    Selection.prototype.isModal = function () {\n        return this._isModal;\n    };\n    Selection.prototype.setModal = function (isModal) {\n        if (this._isModal !== isModal) {\n            this.setChangeEvents(false);\n            this._isModal = isModal;\n            if (!isModal) {\n                this.setAllSelected(false);\n            }\n            this._change();\n            this.setChangeEvents(true);\n        }\n    };\n    /**\n     * Selection needs the items, call this method to set them. If the set\n     * of items is the same, this will re-evaluate selection and index maps.\n     * Otherwise, shouldClear should be set to true, so that selection is\n     * cleared.\n     */\n    Selection.prototype.setItems = function (items, shouldClear) {\n        if (shouldClear === void 0) { shouldClear = true; }\n        var newKeyToIndexMap = {};\n        var newUnselectableIndices = {};\n        var hasSelectionChanged = false;\n        this.setChangeEvents(false);\n        // Reset the unselectable count.\n        this._unselectableCount = 0;\n        var haveItemsChanged = false;\n        // Build lookup table for quick selection evaluation.\n        for (var i = 0; i < items.length; i++) {\n            var item = items[i];\n            if (item) {\n                var key = this.getKey(item, i);\n                if (key) {\n                    if (!haveItemsChanged && (!(key in this._keyToIndexMap) || this._keyToIndexMap[key] !== i)) {\n                        haveItemsChanged = true;\n                    }\n                    newKeyToIndexMap[key] = i;\n                }\n            }\n            newUnselectableIndices[i] = item && !this.canSelectItem(item);\n            if (newUnselectableIndices[i]) {\n                this._unselectableCount++;\n            }\n        }\n        if (shouldClear || items.length === 0) {\n            this._setAllSelected(false, true);\n        }\n        // Check the exemption list for discrepencies.\n        var newExemptedIndicies = {};\n        var newExemptedCount = 0;\n        for (var indexProperty in this._exemptedIndices) {\n            if (this._exemptedIndices.hasOwnProperty(indexProperty)) {\n                var index = Number(indexProperty);\n                var item = this._items[index];\n                var exemptKey = item ? this.getKey(item, Number(index)) : undefined;\n                var newIndex = exemptKey ? newKeyToIndexMap[exemptKey] : index;\n                if (newIndex === undefined) {\n                    // The item has likely been replaced or removed.\n                    hasSelectionChanged = true;\n                }\n                else {\n                    // We know the new index of the item. update the existing exemption table.\n                    newExemptedIndicies[newIndex] = true;\n                    newExemptedCount++;\n                    hasSelectionChanged = hasSelectionChanged || newIndex !== index;\n                }\n            }\n        }\n        if (this._items && this._exemptedCount === 0 && items.length !== this._items.length && this._isAllSelected) {\n            // If everything was selected but the number of items has changed, selection has changed.\n            hasSelectionChanged = true;\n        }\n        if (!haveItemsChanged) {\n            for (var _i = 0, _a = Object.keys(this._keyToIndexMap); _i < _a.length; _i++) {\n                var key = _a[_i];\n                if (!(key in newKeyToIndexMap)) {\n                    haveItemsChanged = true;\n                    break;\n                }\n            }\n        }\n        this._exemptedIndices = newExemptedIndicies;\n        this._exemptedCount = newExemptedCount;\n        this._keyToIndexMap = newKeyToIndexMap;\n        this._unselectableIndices = newUnselectableIndices;\n        this._items = items;\n        this._selectedItems = null;\n        if (hasSelectionChanged) {\n            this._updateCount();\n        }\n        if (haveItemsChanged) {\n            EventGroup.raise(this, SELECTION_ITEMS_CHANGE);\n            if (this._onItemsChanged) {\n                this._onItemsChanged();\n            }\n        }\n        if (hasSelectionChanged) {\n            this._change();\n        }\n        this.setChangeEvents(true);\n    };\n    Selection.prototype.getItems = function () {\n        return this._items;\n    };\n    Selection.prototype.getSelection = function () {\n        if (!this._selectedItems) {\n            this._selectedItems = [];\n            var items = this._items;\n            if (items) {\n                for (var i = 0; i < items.length; i++) {\n                    if (this.isIndexSelected(i)) {\n                        this._selectedItems.push(items[i]);\n                    }\n                }\n            }\n        }\n        return this._selectedItems;\n    };\n    Selection.prototype.getSelectedCount = function () {\n        return this._isAllSelected\n            ? this._items.length - this._exemptedCount - this._unselectableCount\n            : this._exemptedCount;\n    };\n    Selection.prototype.getSelectedIndices = function () {\n        if (!this._selectedIndices) {\n            this._selectedIndices = [];\n            var items = this._items;\n            if (items) {\n                for (var i = 0; i < items.length; i++) {\n                    if (this.isIndexSelected(i)) {\n                        this._selectedIndices.push(i);\n                    }\n                }\n            }\n        }\n        return this._selectedIndices;\n    };\n    Selection.prototype.getItemIndex = function (key) {\n        var index = this._keyToIndexMap[key];\n        return index !== null && index !== void 0 ? index : -1;\n    };\n    Selection.prototype.isRangeSelected = function (fromIndex, count) {\n        if (count === 0) {\n            return false;\n        }\n        var endIndex = fromIndex + count;\n        for (var i = fromIndex; i < endIndex; i++) {\n            if (!this.isIndexSelected(i)) {\n                return false;\n            }\n        }\n        return true;\n    };\n    Selection.prototype.isAllSelected = function () {\n        var selectableCount = this._items.length - this._unselectableCount;\n        // In single mode, we can only have a max of 1 item.\n        if (this.mode === SelectionMode.single) {\n            selectableCount = Math.min(selectableCount, 1);\n        }\n        return ((this.count > 0 && this._isAllSelected && this._exemptedCount === 0) ||\n            (!this._isAllSelected && this._exemptedCount === selectableCount && selectableCount > 0));\n    };\n    Selection.prototype.isKeySelected = function (key) {\n        var index = this._keyToIndexMap[key];\n        return this.isIndexSelected(index);\n    };\n    Selection.prototype.isIndexSelected = function (index) {\n        return !!((this.count > 0 && this._isAllSelected && !this._exemptedIndices[index] && !this._unselectableIndices[index]) ||\n            (!this._isAllSelected && this._exemptedIndices[index]));\n    };\n    Selection.prototype.setAllSelected = function (isAllSelected) {\n        if (isAllSelected && this.mode !== SelectionMode.multiple) {\n            return;\n        }\n        var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n        this.setChangeEvents(false);\n        if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n            this._exemptedIndices = {};\n            if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n                this._exemptedCount = 0;\n                this._isAllSelected = isAllSelected;\n                this._change();\n            }\n            this._updateCount();\n        }\n        this.setChangeEvents(true);\n    };\n    Selection.prototype.setKeySelected = function (key, isSelected, shouldAnchor) {\n        var index = this._keyToIndexMap[key];\n        if (index >= 0) {\n            this.setIndexSelected(index, isSelected, shouldAnchor);\n        }\n    };\n    Selection.prototype.setIndexSelected = function (index, isSelected, shouldAnchor) {\n        if (this.mode === SelectionMode.none) {\n            return;\n        }\n        // Clamp the index.\n        index = Math.min(Math.max(0, index), this._items.length - 1);\n        // No-op on out of bounds selections.\n        if (index < 0 || index >= this._items.length) {\n            return;\n        }\n        this.setChangeEvents(false);\n        var isExempt = this._exemptedIndices[index];\n        var canSelect = !this._unselectableIndices[index];\n        if (canSelect) {\n            if (isSelected && this.mode === SelectionMode.single) {\n                // If this is single-select, the previous selection should be removed.\n                this._setAllSelected(false, true);\n            }\n            // Determine if we need to remove the exemption.\n            if (isExempt && ((isSelected && this._isAllSelected) || (!isSelected && !this._isAllSelected))) {\n                delete this._exemptedIndices[index];\n                this._exemptedCount--;\n            }\n            // Determine if we need to add the exemption.\n            if (!isExempt && ((isSelected && !this._isAllSelected) || (!isSelected && this._isAllSelected))) {\n                this._exemptedIndices[index] = true;\n                this._exemptedCount++;\n            }\n            if (shouldAnchor) {\n                this._anchoredIndex = index;\n            }\n        }\n        this._updateCount();\n        this.setChangeEvents(true);\n    };\n    Selection.prototype.setRangeSelected = function (fromIndex, count, isSelected, shouldAnchor) {\n        if (this.mode === SelectionMode.none) {\n            return;\n        }\n        // Clamp the index.\n        fromIndex = Math.min(Math.max(0, fromIndex), this._items.length - 1);\n        // Clamp the range.\n        count = Math.min(Math.max(0, count), this._items.length - fromIndex);\n        // No-op on out of bounds selections.\n        if (fromIndex < 0 || fromIndex >= this._items.length || count === 0) {\n            return;\n        }\n        this.setChangeEvents(false);\n        var anchorIndex = this._anchoredIndex || 0;\n        var startIndex = fromIndex;\n        var endIndex = fromIndex + count - 1;\n        var newAnchorIndex = anchorIndex >= endIndex ? startIndex : endIndex;\n        for (; startIndex <= endIndex; startIndex++) {\n            this.setIndexSelected(startIndex, isSelected, shouldAnchor ? startIndex === newAnchorIndex : false);\n        }\n        this.setChangeEvents(true);\n    };\n    Selection.prototype.selectToKey = function (key, clearSelection) {\n        this.selectToIndex(this._keyToIndexMap[key], clearSelection);\n    };\n    Selection.prototype.selectToRange = function (fromIndex, count, clearSelection) {\n        if (this.mode === SelectionMode.none) {\n            return;\n        }\n        if (this.mode === SelectionMode.single) {\n            if (count === 1) {\n                this.setIndexSelected(fromIndex, true, true);\n            }\n            return;\n        }\n        var anchorIndex = this._anchoredIndex || 0;\n        var startIndex = Math.min(fromIndex, anchorIndex);\n        var endIndex = Math.max(fromIndex + count - 1, anchorIndex);\n        this.setChangeEvents(false);\n        if (clearSelection) {\n            this._setAllSelected(false, true);\n        }\n        for (; startIndex <= endIndex; startIndex++) {\n            this.setIndexSelected(startIndex, true, false);\n        }\n        this.setChangeEvents(true);\n    };\n    Selection.prototype.selectToIndex = function (index, clearSelection) {\n        if (this.mode === SelectionMode.none) {\n            return;\n        }\n        if (this.mode === SelectionMode.single) {\n            this.setIndexSelected(index, true, true);\n            return;\n        }\n        var anchorIndex = this._anchoredIndex || 0;\n        var startIndex = Math.min(index, anchorIndex);\n        var endIndex = Math.max(index, anchorIndex);\n        this.setChangeEvents(false);\n        if (clearSelection) {\n            this._setAllSelected(false, true);\n        }\n        for (; startIndex <= endIndex; startIndex++) {\n            this.setIndexSelected(startIndex, true, false);\n        }\n        this.setChangeEvents(true);\n    };\n    Selection.prototype.toggleAllSelected = function () {\n        this.setAllSelected(!this.isAllSelected());\n    };\n    Selection.prototype.toggleKeySelected = function (key) {\n        this.setKeySelected(key, !this.isKeySelected(key), true);\n    };\n    Selection.prototype.toggleIndexSelected = function (index) {\n        this.setIndexSelected(index, !this.isIndexSelected(index), true);\n    };\n    Selection.prototype.toggleRangeSelected = function (fromIndex, count) {\n        if (this.mode === SelectionMode.none) {\n            return;\n        }\n        var isRangeSelected = this.isRangeSelected(fromIndex, count);\n        var endIndex = fromIndex + count;\n        if (this.mode === SelectionMode.single && count > 1) {\n            return;\n        }\n        this.setChangeEvents(false);\n        for (var i = fromIndex; i < endIndex; i++) {\n            this.setIndexSelected(i, !isRangeSelected, false);\n        }\n        this.setChangeEvents(true);\n    };\n    Selection.prototype._updateCount = function (preserveModalState) {\n        if (preserveModalState === void 0) { preserveModalState = false; }\n        var count = this.getSelectedCount();\n        if (count !== this.count) {\n            this.count = count;\n            this._change();\n        }\n        if (!this.count && !preserveModalState) {\n            this.setModal(false);\n        }\n    };\n    Selection.prototype._setAllSelected = function (isAllSelected, preserveModalState) {\n        if (preserveModalState === void 0) { preserveModalState = false; }\n        if (isAllSelected && this.mode !== SelectionMode.multiple) {\n            return;\n        }\n        var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n        this.setChangeEvents(false);\n        if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n            this._exemptedIndices = {};\n            if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n                this._exemptedCount = 0;\n                this._isAllSelected = isAllSelected;\n                this._change();\n            }\n            this._updateCount(preserveModalState);\n        }\n        this.setChangeEvents(true);\n    };\n    Selection.prototype._change = function () {\n        if (this._changeEventSuppressionCount === 0) {\n            this._selectedItems = null;\n            this._selectedIndices = undefined;\n            EventGroup.raise(this, SELECTION_CHANGE);\n            if (this._onSelectionChanged) {\n                this._onSelectionChanged();\n            }\n        }\n        else {\n            this._hasChanged = true;\n        }\n    };\n    return Selection;\n}());\nexport { Selection };\nfunction defaultGetKey(item, index) {\n    // 0 may be used as a key\n    var _a = (item || {}).key, key = _a === void 0 ? \"\".concat(index) : _a;\n    return key;\n}\n//# sourceMappingURL=Selection.js.map","export var SELECTION_CHANGE = 'change';\nexport var SELECTION_ITEMS_CHANGE = 'items-change';\n/**\n * {@docCategory Selection}\n */\nexport var SelectionMode;\n(function (SelectionMode) {\n    SelectionMode[SelectionMode[\"none\"] = 0] = \"none\";\n    SelectionMode[SelectionMode[\"single\"] = 1] = \"single\";\n    SelectionMode[SelectionMode[\"multiple\"] = 2] = \"multiple\";\n})(SelectionMode || (SelectionMode = {}));\n/**\n * {@docCategory Selection}\n */\nexport var SelectionDirection;\n(function (SelectionDirection) {\n    SelectionDirection[SelectionDirection[\"horizontal\"] = 0] = \"horizontal\";\n    SelectionDirection[SelectionDirection[\"vertical\"] = 1] = \"vertical\";\n})(SelectionDirection || (SelectionDirection = {}));\n//# sourceMappingURL=Selection.types.js.map","// Regex that finds { and } so they can be removed on a lookup for string format\nvar FORMAT_ARGS_REGEX = /[\\{\\}]/g;\n// Regex that finds {#} so it can be replaced by the arguments in string format\nvar FORMAT_REGEX = /\\{\\d+\\}/g;\n/**\n * String format method, used for scenarios where at runtime you\n * need to evaluate a formatted string given a tokenized string. This\n * usually only is needed in localization scenarios.\n\n * @example\n * ```tsx\n * \"I love {0} every {1}\".format(\"CXP\")\n * ```\n * will result in a Debug Exception.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function format(s) {\n    var values = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        values[_i - 1] = arguments[_i];\n    }\n    var args = values;\n    // Callback match function\n    function replaceFunc(match) {\n        // looks up in the args\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var replacement = args[match.replace(FORMAT_ARGS_REGEX, '')];\n        // catches undefined in nondebug and null in debug and nondebug\n        if (replacement === null || replacement === undefined) {\n            replacement = '';\n        }\n        return replacement;\n    }\n    return s.replace(FORMAT_REGEX, replaceFunc);\n}\n//# sourceMappingURL=string.js.map","var _a;\nimport { KeyCodes } from './KeyCodes';\nvar DirectionalKeyCodes = (_a = {},\n    _a[KeyCodes.up] = 1,\n    _a[KeyCodes.down] = 1,\n    _a[KeyCodes.left] = 1,\n    _a[KeyCodes.right] = 1,\n    _a[KeyCodes.home] = 1,\n    _a[KeyCodes.end] = 1,\n    _a[KeyCodes.tab] = 1,\n    _a[KeyCodes.pageUp] = 1,\n    _a[KeyCodes.pageDown] = 1,\n    _a);\n/**\n * Returns true if the keycode is a directional keyboard key.\n */\nexport function isDirectionalKeyCode(which) {\n    return !!DirectionalKeyCodes[which];\n}\n/**\n * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to add global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function addDirectionalKeyCode(which) {\n    DirectionalKeyCodes[which] = 1;\n}\n/**\n * Removes a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to remove global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function removeDirectionalKeyCode(which) {\n    delete DirectionalKeyCodes[which];\n}\n//# sourceMappingURL=keyboard.js.map","import * as React from 'react';\nimport { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\nvar mountCounters = new WeakMap();\nvar callbackMap = new WeakMap();\nfunction setMountCounters(key, delta) {\n    var newValue;\n    var currValue = mountCounters.get(key);\n    if (currValue) {\n        newValue = currValue + delta;\n    }\n    else {\n        newValue = 1;\n    }\n    mountCounters.set(key, newValue);\n    return newValue;\n}\nfunction setCallbackMap(context) {\n    var callbacks = callbackMap.get(context);\n    if (callbacks) {\n        return callbacks;\n    }\n    var onMouseDown = function (ev) { return _onMouseDown(ev, context.registeredProviders); };\n    var onPointerDown = function (ev) { return _onPointerDown(ev, context.registeredProviders); };\n    var onKeyDown = function (ev) { return _onKeyDown(ev, context.registeredProviders); };\n    var onKeyUp = function (ev) { return _onKeyUp(ev, context.registeredProviders); };\n    callbacks = { onMouseDown: onMouseDown, onPointerDown: onPointerDown, onKeyDown: onKeyDown, onKeyUp: onKeyUp };\n    callbackMap.set(context, callbacks);\n    return callbacks;\n}\nexport var FocusRectsContext = React.createContext(undefined);\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown, keyup, mousedown and pointerdown events. (It will only do it once for the current element of\n *    the FocusRectsContext providerRef or once per window if no such element is provided via context, so it's safe to\n *    call this method multiple times.)\n * 2. When the user presses triggers a keydown or keyup event via directional keyboard keys, adds the\n *    'ms-Fabric--isFocusVisible' classname to the current element of the FocusRectsContext providerRef or the document\n *    body if no such element is provided via context, and removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user triggers a mousedown or pointerdown event, adds the 'ms-Fabric-isFocusHidden' classname to the\n *    current element of the FocusRectsContext providerRef or the document body if no such element is provided via\n *    context, and removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param rootRef - A Ref object. Focus rectangle can be applied on itself and all its children.\n */\nexport function useFocusRects(rootRef) {\n    var context = React.useContext(FocusRectsContext);\n    React.useEffect(function () {\n        var _a, _b, _c, _d;\n        var win = getWindow(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current);\n        if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n            return undefined;\n        }\n        var el = win;\n        var onMouseDown;\n        var onPointerDown;\n        var onKeyDown;\n        var onKeyUp;\n        if (((_b = context === null || context === void 0 ? void 0 : context.providerRef) === null || _b === void 0 ? void 0 : _b.current) &&\n            ((_d = (_c = context === null || context === void 0 ? void 0 : context.providerRef) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.addEventListener)) {\n            el = context.providerRef.current;\n            // The NOINLINE directive tells terser not to move the setCallbackMap implementation into the call site during\n            // minification.\n            // This prevents the function from capturing additional variables in the closure, which can cause memory leaks.\n            var callbacks = /*@__NOINLINE__*/ setCallbackMap(context);\n            onMouseDown = callbacks.onMouseDown;\n            onPointerDown = callbacks.onPointerDown;\n            onKeyDown = callbacks.onKeyDown;\n            onKeyUp = callbacks.onKeyUp;\n        }\n        else {\n            onMouseDown = _onMouseDown;\n            onPointerDown = _onPointerDown;\n            onKeyDown = _onKeyDown;\n            onKeyUp = _onKeyUp;\n        }\n        var count = setMountCounters(el, 1);\n        if (count <= 1) {\n            el.addEventListener('mousedown', onMouseDown, true);\n            el.addEventListener('pointerdown', onPointerDown, true);\n            el.addEventListener('keydown', onKeyDown, true);\n            el.addEventListener('keyup', onKeyUp, true);\n        }\n        return function () {\n            var _a;\n            if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n                return;\n            }\n            count = setMountCounters(el, -1);\n            if (count === 0) {\n                el.removeEventListener('mousedown', onMouseDown, true);\n                el.removeEventListener('pointerdown', onPointerDown, true);\n                el.removeEventListener('keydown', onKeyDown, true);\n                el.removeEventListener('keyup', onKeyUp, true);\n            }\n        };\n    }, [context, rootRef]);\n}\n/**\n * Function Component wrapper which enables calling `useFocusRects` hook.\n * Renders nothing.\n */\nexport var FocusRects = function (props) {\n    useFocusRects(props.rootRef);\n    return null;\n};\nfunction _onMouseDown(ev, registeredProviders) {\n    setFocusVisibility(false, ev.target, registeredProviders);\n}\nfunction _onPointerDown(ev, registeredProviders) {\n    if (ev.pointerType !== 'mouse') {\n        setFocusVisibility(false, ev.target, registeredProviders);\n    }\n}\n// You need both a keydown and a keyup listener that sets focus visibility to true to handle two distinct scenarios when\n// attaching the listeners and classnames to the provider instead of the document body.\n// If you only have a keydown listener, then the focus rectangles will not show when moving from outside of the provider\n// to inside it. That is why a keyup listener is needed, since it will always trigger after the focus event is fired.\n// If you only have a keyup listener, then the focus rectangles will not show moving between different tabbable elements\n// if the tab key is pressed without being released. That's is why we need a keydown listener, since it will trigger for\n// every element that is being tabbed into.\n// This works because `classList.add` is smart and will not duplicate a classname that already exists on the classList\n// when focus visibility is turned on.\nfunction _onKeyDown(ev, registeredProviders) {\n    // eslint-disable-next-line deprecation/deprecation\n    if (isDirectionalKeyCode(ev.which)) {\n        setFocusVisibility(true, ev.target, registeredProviders);\n    }\n}\nfunction _onKeyUp(ev, registeredProviders) {\n    // eslint-disable-next-line deprecation/deprecation\n    if (isDirectionalKeyCode(ev.which)) {\n        setFocusVisibility(true, ev.target, registeredProviders);\n    }\n}\n//# sourceMappingURL=useFocusRects.js.map","import * as React from 'react';\nimport { canUseDOM } from './dom/canUseDOM';\n/**\n * React currently throws a warning when using `useLayoutEffect` on the server. To get around it,\n * this hook calls `useEffect` on the server (no-op) and `useLayoutEffect` in the browser.\n *\n * Prefer `useEffect` unless you have a specific need to do something after mount and before paint,\n * such as to avoid a render flash for certain operations.\n *\n * Server-side rendering is detected based on `canUseDOM` from `@fluentui/utilities`.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n */\n// eslint-disable-next-line no-restricted-properties\nexport var useIsomorphicLayoutEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {\n    if (condition === true && process.env.NODE_ENV !== 'production') {\n        for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {\n            var requiredPropName = requiredProps_1[_i];\n            if (!(requiredPropName in props)) {\n                warn(\"\".concat(componentName, \" property '\").concat(requiredPropName, \"' is required when '\").concat(conditionalPropName, \"' is used.'\"));\n            }\n        }\n    }\n}\n//# sourceMappingURL=warnConditionallyRequiredProps.js.map","import { warn } from './warn';\n/**\n * Warns when a deprecated props are being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\nexport function warnDeprecations(componentName, props, deprecationMap) {\n    if (process.env.NODE_ENV !== 'production') {\n        for (var propName in deprecationMap) {\n            if (props && propName in props) {\n                var deprecationMessage = \"\".concat(componentName, \" property '\").concat(propName, \"' was used but has been deprecated.\");\n                var replacementPropName = deprecationMap[propName];\n                if (replacementPropName) {\n                    deprecationMessage += \" Use '\".concat(replacementPropName, \"' instead.\");\n                }\n                warn(deprecationMessage);\n            }\n        }\n    }\n}\n//# sourceMappingURL=warnDeprecations.js.map","import { warn } from './warn';\n/**\n * Warns when two props which are mutually exclusive are both being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param exclusiveMap - A map where the key is a parameter, and the value is the other parameter.\n */\nexport function warnMutuallyExclusive(componentName, props, exclusiveMap) {\n    if (process.env.NODE_ENV !== 'production') {\n        for (var propName in exclusiveMap) {\n            if (props && props[propName] !== undefined) {\n                var propInExclusiveMapValue = exclusiveMap[propName];\n                if (propInExclusiveMapValue && props[propInExclusiveMapValue] !== undefined) {\n                    warn(\"\".concat(componentName, \" property '\").concat(propName, \"' is mutually exclusive with '\").concat(exclusiveMap[propName], \"'. \") +\n                        \"Use one or the other.\");\n                }\n            }\n        }\n    }\n}\n//# sourceMappingURL=warnMutuallyExclusive.js.map","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information. */\\r\\n/**\\n * Office UI Fabric Core 11.0.1\\n * The front-end framework for building experiences for Office 365.\\n **/\\n@charset 'UTF-8';@keyframes ms-motion-fadeIn{from{opacity:0}to{opacity:1}}@keyframes ms-motion-fadeOut{from{opacity:1}to{opacity:0}}@keyframes ms-motion-scaleDownIn{from{transform:scale3d(1.15,1.15,1)}to{transform:scale3d(1,1,1)}}@keyframes ms-motion-scaleDownOut{from{transform:scale3d(1,1,1)}to{transform:scale3d(.9,.9,1)}}@keyframes ms-motion-slideLeftOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(-48px,0,0)}}@keyframes ms-motion-slideRightOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(48px,0,0)}}@keyframes ms-motion-slideLeftIn{from{transform:translate3d(48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideRightIn{from{transform:translate3d(-48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideUpOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-48px,0)}}@keyframes ms-motion-slideDownOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,48px,0)}}@keyframes ms-motion-slideUpIn{from{transform:translate3d(0,48px,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideDownIn{from{transform:translate3d(0,-48px,0)}to{transform:translate3d(0,0,0)}}.ms-motion-fadeIn{animation:ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-fadeOut{animation:ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownIn{animation:ms-motion-scaleDownIn .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownOut{animation:ms-motion-scaleDownOut .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpOut{animation:ms-motion-slideUpOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownOut{animation:ms-motion-slideDownOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpIn{animation:ms-motion-slideUpIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownIn{animation:ms-motion-slideDownIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/zip.png)}.ms-BrandIcon--icon16{background-size:100% 100%;width:16px;height:16px}.ms-BrandIcon--icon48{background-size:100% 100%;width:48px;height:48px}.ms-BrandIcon--icon96{background-size:100% 100%;width:96px;height:96px}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1_5.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/zip.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x2.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/zip.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x3.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/zip.png)}}.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-bgColor-themeDark,.ms-bgColor-themeDark--hover:hover{background-color:#005a9e}.ms-bgColor-themeDarkAlt,.ms-bgColor-themeDarkAlt--hover:hover{background-color:#106ebe}.ms-bgColor-themeDarker,.ms-bgColor-themeDarker--hover:hover{background-color:#004578}.ms-bgColor-themePrimary,.ms-bgColor-themePrimary--hover:hover{background-color:#0078d4}.ms-bgColor-themeSecondary,.ms-bgColor-themeSecondary--hover:hover{background-color:#2b88d8}.ms-bgColor-themeTertiary,.ms-bgColor-themeTertiary--hover:hover{background-color:#71afe5}.ms-bgColor-themeLight,.ms-bgColor-themeLight--hover:hover{background-color:#c7e0f4}.ms-bgColor-themeLighter,.ms-bgColor-themeLighter--hover:hover{background-color:#deecf9}.ms-bgColor-themeLighterAlt,.ms-bgColor-themeLighterAlt--hover:hover{background-color:#eff6fc}.ms-borderColor-themeDark,.ms-borderColor-themeDark--hover:hover{border-color:#005a9e}.ms-borderColor-themeDarkAlt,.ms-borderColor-themeDarkAlt--hover:hover{border-color:#106ebe}.ms-borderColor-themeDarker,.ms-borderColor-themeDarker--hover:hover{border-color:#004578}.ms-borderColor-themePrimary,.ms-borderColor-themePrimary--hover:hover{border-color:#0078d4}.ms-borderColor-themeSecondary,.ms-borderColor-themeSecondary--hover:hover{border-color:#2b88d8}.ms-borderColor-themeTertiary,.ms-borderColor-themeTertiary--hover:hover{border-color:#71afe5}.ms-borderColor-themeLight,.ms-borderColor-themeLight--hover:hover{border-color:#c7e0f4}.ms-borderColor-themeLighter,.ms-borderColor-themeLighter--hover:hover{border-color:#deecf9}.ms-borderColor-themeLighterAlt,.ms-borderColor-themeLighterAlt--hover:hover{border-color:#eff6fc}.ms-fontColor-themeDarker,.ms-fontColor-themeDarker--hover:hover{color:#004578}.ms-fontColor-themeDark,.ms-fontColor-themeDark--hover:hover{color:#005a9e}.ms-fontColor-themeDarkAlt,.ms-fontColor-themeDarkAlt--hover:hover{color:#106ebe}.ms-fontColor-themePrimary,.ms-fontColor-themePrimary--hover:hover{color:#0078d4}.ms-fontColor-themeSecondary,.ms-fontColor-themeSecondary--hover:hover{color:#2b88d8}.ms-fontColor-themeTertiary,.ms-fontColor-themeTertiary--hover:hover{color:#71afe5}.ms-fontColor-themeLight,.ms-fontColor-themeLight--hover:hover{color:#c7e0f4}.ms-fontColor-themeLighter,.ms-fontColor-themeLighter--hover:hover{color:#deecf9}.ms-fontColor-themeLighterAlt,.ms-fontColor-themeLighterAlt--hover:hover{color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-neutralDark,.ms-bgColor-neutralDark--hover:hover{background-color:#201f1e}.ms-bgColor-neutralPrimary,.ms-bgColor-neutralPrimary--hover:hover{background-color:#323130}.ms-bgColor-neutralPrimaryAlt,.ms-bgColor-neutralPrimaryAlt--hover:hover{background-color:#3b3a39}.ms-bgColor-neutralSecondary,.ms-bgColor-neutralSecondary--hover:hover{background-color:#605e5c}.ms-bgColor-neutralSecondaryAlt,.ms-bgColor-neutralSecondaryAlt--hover:hover{background-color:#797775}.ms-bgColor-neutralTertiary,.ms-bgColor-neutralTertiary--hover:hover{background-color:#a19f9d}.ms-bgColor-neutralTertiaryAlt,.ms-bgColor-neutralTertiaryAlt--hover:hover{background-color:#c8c6c4}.ms-bgColor-neutralQuaternary,.ms-bgColor-neutralQuaternary--hover:hover{background-color:#d2d0ce}.ms-bgColor-neutralQuaternaryAlt,.ms-bgColor-neutralQuaternaryAlt--hover:hover{background-color:#e1dfdd}.ms-bgColor-neutralLight,.ms-bgColor-neutralLight--hover:hover{background-color:#edebe9}.ms-bgColor-neutralLighter,.ms-bgColor-neutralLighter--hover:hover{background-color:#f3f2f1}.ms-bgColor-neutralLighterAlt,.ms-bgColor-neutralLighterAlt--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-neutralDark,.ms-borderColor-neutralDark--hover:hover{border-color:#201f1e}.ms-borderColor-neutralPrimary,.ms-borderColor-neutralPrimary--hover:hover{border-color:#323130}.ms-borderColor-neutralPrimaryAlt,.ms-borderColor-neutralPrimaryAlt--hover:hover{border-color:#3b3a39}.ms-borderColor-neutralSecondary,.ms-borderColor-neutralSecondary--hover:hover{border-color:#605e5c}.ms-borderColor-neutralSecondaryAlt,.ms-borderColor-neutralSecondaryAlt--hover:hover{border-color:#797775}.ms-borderColor-neutralTertiary,.ms-borderColor-neutralTertiary--hover:hover{border-color:#a19f9d}.ms-borderColor-neutralTertiaryAlt,.ms-borderColor-neutralTertiaryAlt--hover:hover{border-color:#c8c6c4}.ms-borderColor-neutralQuaternary,.ms-borderColor-neutralQuaternary--hover:hover{border-color:#d2d0ce}.ms-borderColor-neutralQuaternaryAlt,.ms-borderColor-neutralQuaternaryAlt--hover:hover{border-color:#e1dfdd}.ms-borderColor-neutralLight,.ms-borderColor-neutralLight--hover:hover{border-color:#edebe9}.ms-borderColor-neutralLighter,.ms-borderColor-neutralLighter--hover:hover{border-color:#f3f2f1}.ms-borderColor-neutralLighterAlt,.ms-borderColor-neutralLighterAlt--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-neutralDark,.ms-fontColor-neutralDark--hover:hover{color:#201f1e}.ms-fontColor-neutralPrimary,.ms-fontColor-neutralPrimary--hover:hover{color:#323130}.ms-fontColor-neutralPrimaryAlt,.ms-fontColor-neutralPrimaryAlt--hover:hover{color:#3b3a39}.ms-fontColor-neutralSecondary,.ms-fontColor-neutralSecondary--hover:hover{color:#605e5c}.ms-fontColor-neutralSecondaryAlt,.ms-fontColor-neutralSecondaryAlt--hover:hover{color:#797775}.ms-fontColor-neutralTertiary,.ms-fontColor-neutralTertiary--hover:hover{color:#a19f9d}.ms-fontColor-neutralTertiaryAlt,.ms-fontColor-neutralTertiaryAlt--hover:hover{color:#c8c6c4}.ms-fontColor-neutralQuaternary,.ms-fontColor-neutralQuaternary--hover:hover{color:#d2d0ce}.ms-fontColor-neutralQuaternaryAlt,.ms-fontColor-neutralQuaternaryAlt--hover:hover{color:#e1dfdd}.ms-fontColor-neutralLight,.ms-fontColor-neutralLight--hover:hover{color:#edebe9}.ms-fontColor-neutralLighter,.ms-fontColor-neutralLighter--hover:hover{color:#f3f2f1}.ms-fontColor-neutralLighterAlt,.ms-fontColor-neutralLighterAlt--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-bgColor-yellow,.ms-bgColor-yellow--hover:hover{background-color:#ffb900}.ms-bgColor-yellowLight,.ms-bgColor-yellowLight--hover:hover{background-color:#fff100}.ms-bgColor-orange,.ms-bgColor-orange--hover:hover{background-color:#d83b01}.ms-bgColor-orangeLight,.ms-bgColor-orangeLight--hover:hover{background-color:#ea4300}.ms-bgColor-orangeLighter,.ms-bgColor-orangeLighter--hover:hover{background-color:#ff8c00}.ms-bgColor-redDark,.ms-bgColor-redDark--hover:hover{background-color:#a80000}.ms-bgColor-red,.ms-bgColor-red--hover:hover{background-color:#e81123}.ms-bgColor-magentaDark,.ms-bgColor-magentaDark--hover:hover{background-color:#5c005c}.ms-bgColor-magenta,.ms-bgColor-magenta--hover:hover{background-color:#b4009e}.ms-bgColor-magentaLight,.ms-bgColor-magentaLight--hover:hover{background-color:#e3008c}.ms-bgColor-purpleDark,.ms-bgColor-purpleDark--hover:hover{background-color:#32145a}.ms-bgColor-purple,.ms-bgColor-purple--hover:hover{background-color:#5c2d91}.ms-bgColor-purpleLight,.ms-bgColor-purpleLight--hover:hover{background-color:#b4a0ff}.ms-bgColor-blueDark,.ms-bgColor-blueDark--hover:hover{background-color:#002050}.ms-bgColor-blueMid,.ms-bgColor-blueMid--hover:hover{background-color:#00188f}.ms-bgColor-blue,.ms-bgColor-blue--hover:hover{background-color:#0078d4}.ms-bgColor-blueLight,.ms-bgColor-blueLight--hover:hover{background-color:#00bcf2}.ms-bgColor-tealDark,.ms-bgColor-tealDark--hover:hover{background-color:#004b50}.ms-bgColor-teal,.ms-bgColor-teal--hover:hover{background-color:#008272}.ms-bgColor-tealLight,.ms-bgColor-tealLight--hover:hover{background-color:#00b294}.ms-bgColor-greenDark,.ms-bgColor-greenDark--hover:hover{background-color:#004b1c}.ms-bgColor-green,.ms-bgColor-green--hover:hover{background-color:#107c10}.ms-bgColor-greenLight,.ms-bgColor-greenLight--hover:hover{background-color:#bad80a}.ms-borderColor-yellow,.ms-borderColor-yellow--hover:hover{border-color:#ffb900}.ms-borderColor-yellowLight,.ms-borderColor-yellowLight--hover:hover{border-color:#fff100}.ms-borderColor-orange,.ms-borderColor-orange--hover:hover{border-color:#d83b01}.ms-borderColor-orangeLight,.ms-borderColor-orangeLight--hover:hover{border-color:#ea4300}.ms-borderColor-orangeLighter,.ms-borderColor-orangeLighter--hover:hover{border-color:#ff8c00}.ms-borderColor-redDark,.ms-borderColor-redDark--hover:hover{border-color:#a80000}.ms-borderColor-red,.ms-borderColor-red--hover:hover{border-color:#e81123}.ms-borderColor-magentaDark,.ms-borderColor-magentaDark--hover:hover{border-color:#5c005c}.ms-borderColor-magenta,.ms-borderColor-magenta--hover:hover{border-color:#b4009e}.ms-borderColor-magentaLight,.ms-borderColor-magentaLight--hover:hover{border-color:#e3008c}.ms-borderColor-purpleDark,.ms-borderColor-purpleDark--hover:hover{border-color:#32145a}.ms-borderColor-purple,.ms-borderColor-purple--hover:hover{border-color:#5c2d91}.ms-borderColor-purpleLight,.ms-borderColor-purpleLight--hover:hover{border-color:#b4a0ff}.ms-borderColor-blueDark,.ms-borderColor-blueDark--hover:hover{border-color:#002050}.ms-borderColor-blueMid,.ms-borderColor-blueMid--hover:hover{border-color:#00188f}.ms-borderColor-blue,.ms-borderColor-blue--hover:hover{border-color:#0078d4}.ms-borderColor-blueLight,.ms-borderColor-blueLight--hover:hover{border-color:#00bcf2}.ms-borderColor-tealDark,.ms-borderColor-tealDark--hover:hover{border-color:#004b50}.ms-borderColor-teal,.ms-borderColor-teal--hover:hover{border-color:#008272}.ms-borderColor-tealLight,.ms-borderColor-tealLight--hover:hover{border-color:#00b294}.ms-borderColor-greenDark,.ms-borderColor-greenDark--hover:hover{border-color:#004b1c}.ms-borderColor-green,.ms-borderColor-green--hover:hover{border-color:#107c10}.ms-borderColor-greenLight,.ms-borderColor-greenLight--hover:hover{border-color:#bad80a}.ms-fontColor-yellow,.ms-fontColor-yellow--hover:hover{color:#ffb900}.ms-fontColor-yellowLight,.ms-fontColor-yellowLight--hover:hover{color:#fff100}.ms-fontColor-orange,.ms-fontColor-orange--hover:hover{color:#d83b01}.ms-fontColor-orangeLight,.ms-fontColor-orangeLight--hover:hover{color:#ea4300}.ms-fontColor-orangeLighter,.ms-fontColor-orangeLighter--hover:hover{color:#ff8c00}.ms-fontColor-redDark,.ms-fontColor-redDark--hover:hover{color:#a80000}.ms-fontColor-red,.ms-fontColor-red--hover:hover{color:#e81123}.ms-fontColor-magentaDark,.ms-fontColor-magentaDark--hover:hover{color:#5c005c}.ms-fontColor-magenta,.ms-fontColor-magenta--hover:hover{color:#b4009e}.ms-fontColor-magentaLight,.ms-fontColor-magentaLight--hover:hover{color:#e3008c}.ms-fontColor-purpleDark,.ms-fontColor-purpleDark--hover:hover{color:#32145a}.ms-fontColor-purple,.ms-fontColor-purple--hover:hover{color:#5c2d91}.ms-fontColor-purpleLight,.ms-fontColor-purpleLight--hover:hover{color:#b4a0ff}.ms-fontColor-blueDark,.ms-fontColor-blueDark--hover:hover{color:#002050}.ms-fontColor-blueMid,.ms-fontColor-blueMid--hover:hover{color:#00188f}.ms-fontColor-blue,.ms-fontColor-blue--hover:hover{color:#0078d4}.ms-fontColor-blueLight,.ms-fontColor-blueLight--hover:hover{color:#00bcf2}.ms-fontColor-tealDark,.ms-fontColor-tealDark--hover:hover{color:#004b50}.ms-fontColor-teal,.ms-fontColor-teal--hover:hover{color:#008272}.ms-fontColor-tealLight,.ms-fontColor-tealLight--hover:hover{color:#00b294}.ms-fontColor-greenDark,.ms-fontColor-greenDark--hover:hover{color:#004b1c}.ms-fontColor-green,.ms-fontColor-green--hover:hover{color:#107c10}.ms-fontColor-greenLight,.ms-fontColor-greenLight--hover:hover{color:#bad80a}.ms-bgColor-info,.ms-bgColor-info--hover:hover{background-color:#f3f2f1}.ms-bgColor-success,.ms-bgColor-success--hover:hover{background-color:#dff6dd}.ms-bgColor-severeWarning,.ms-bgColor-severeWarning--hover:hover{background-color:#fed9cc}.ms-bgColor-warning,.ms-bgColor-warning--hover:hover{background-color:#fff4ce}.ms-bgColor-error,.ms-bgColor-error--hover:hover{background-color:#fde7e9}.ms-fontColor-info,.ms-fontColor-info--hover:hover{color:#797775}.ms-fontColor-success,.ms-fontColor-success--hover:hover{color:#107c10}.ms-fontColor-alert,.ms-fontColor-alert--hover:hover{color:#d83b01}.ms-fontColor-warning,.ms-fontColor-warning--hover:hover{color:#797775}.ms-fontColor-severeWarning,.ms-fontColor-severeWarning--hover:hover{color:#d83b01}.ms-fontColor-error,.ms-fontColor-error--hover:hover{color:#a80000}.ms-bgColor-contrastBlackDisabled,.ms-bgColor-contrastBlackDisabled--hover:hover{background-color:#0f0}.ms-bgColor-contrastWhiteDisabled,.ms-bgColor-contrastWhiteDisabled--hover:hover{background-color:#600000}.ms-bgColor-contrastBlackSelected,.ms-bgColor-contrastBlackSelected--hover:hover{background-color:#1aebff}.ms-bgColor-contrastWhiteSelected,.ms-bgColor-contrastWhiteSelected--hover:hover{background-color:#37006e}.ms-fontColor-contrastBlackDisabled,.ms-fontColor-contrastBlackDisabled--hover:hover{color:#0f0}.ms-fontColor-contrastWhiteDisabled,.ms-fontColor-contrastWhiteDisabled--hover:hover{color:#600000}.ms-fontColor-contrastBlackSelected,.ms-fontColor-contrastBlackSelected--hover:hover{color:#1aebff}.ms-fontColor-contrastWhiteSelected,.ms-fontColor-contrastWhiteSelected--hover:hover{color:#37006e}.ms-borderColor-contrastBlackDisabled,.ms-borderColor-contrastBlackDisabled--hover:hover{border-color:#0f0}.ms-borderColor-contrastWhiteDisabled,.ms-borderColor-contrastWhiteDisabled--hover:hover{border-color:#600000}.ms-borderColor-contrastBlackSelected,.ms-borderColor-contrastBlackSelected--hover:hover{border-color:#1aebff}.ms-borderColor-contrastWhiteSelected,.ms-borderColor-contrastWhiteSelected--hover:hover{border-color:#37006e}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-depth-0{box-shadow:0 0 0 0 transparent}.ms-depth-4{box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.132),0 .3px .9px 0 rgba(0,0,0,.108)}.ms-depth-8{box-shadow:0 3.2px 7.2px 0 rgba(0,0,0,.132),0 .6px 1.8px 0 rgba(0,0,0,.108)}.ms-depth-16{box-shadow:0 6.4px 14.4px 0 rgba(0,0,0,.132),0 1.2px 3.6px 0 rgba(0,0,0,.108)}.ms-depth-64{box-shadow:0 25.6px 57.6px 0 rgba(0,0,0,.22),0 4.8px 14.4px 0 rgba(0,0,0,.18)}.ms-fontSize-68{font-size:68px}.ms-fontSize-42{font-size:42px}.ms-fontSize-32{font-size:32px}.ms-fontSize-28{font-size:28px}.ms-fontSize-24{font-size:24px}.ms-fontSize-20{font-size:20px}.ms-fontSize-18{font-size:18px}.ms-fontSize-16{font-size:16px}.ms-fontSize-14{font-size:14px}.ms-fontSize-12{font-size:12px}.ms-fontSize-10{font-size:10px}.ms-fontWeight-regular{font-weight:400}.ms-fontWeight-semibold{font-weight:600}.ms-fontWeight-bold{font-weight:700}.ms-font-su{font-size:42px;font-weight:100}.ms-font-xxl{font-size:28px;font-weight:100}.ms-font-xl-plus{font-size:24px;font-weight:100}.ms-font-xl{font-size:21px;font-weight:100}.ms-font-l{font-size:17px;font-weight:300}.ms-font-m-plus{font-size:15px;font-weight:400}.ms-font-m{font-size:14px;font-weight:400}.ms-font-s-plus{font-size:13px;font-weight:400}.ms-font-s{font-size:12px;font-weight:400}.ms-font-xs{font-size:11px;font-weight:400}.ms-font-mi{font-size:10px;font-weight:600}.ms-fontWeight-light{font-weight:100}.ms-fontWeight-semilight{font-weight:300}.ms-fontSize-su{font-size:42px}.ms-fontSize-xxl{font-size:28px}.ms-fontSize-xlPlus{font-size:24px}.ms-fontSize-xl{font-size:21px}.ms-fontSize-l{font-size:17px}.ms-fontSize-mPlus{font-size:15px}.ms-fontSize-m{font-size:14px}.ms-fontSize-sPlus{font-size:13px}.ms-fontSize-s{font-size:12px}.ms-fontSize-xs{font-size:11px}.ms-fontSize-mi{font-size:10px}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:600;font-style:normal}.ms-Grid{box-sizing:border-box;zoom:1;padding:0 8px}.ms-Grid::after,.ms-Grid::before{display:table;content:'';line-height:0}.ms-Grid::after{clear:both}.ms-Grid-row{margin:0 -8px;box-sizing:border-box;zoom:1}.ms-Grid-row::after,.ms-Grid-row::before{display:table;content:'';line-height:0}.ms-Grid-row::after{clear:both}.ms-Grid-col{position:relative;min-height:1px;padding-left:8px;padding-right:8px;box-sizing:border-box}[dir=ltr] .ms-Grid-col{float:left}[dir=rtl] .ms-Grid-col{float:right}.ms-Grid-col .ms-Grid{padding:0}.ms-Icon{display:inline-block;font-family:FabricMDL2Icons;font-style:normal;font-weight:400;speak:none}.ms-Icon--circle{margin:0 .5em 0 0;position:relative;display:inline-block;font-size:1rem;width:1em;height:1em;padding:0;text-align:left}[dir=rtl] .ms-Icon--circle{margin:0 0 0 .5em}.ms-Icon--circle::after,.ms-Icon--circle::before{line-height:1;font-size:inherit}.ms-Icon--circle::before{display:block;width:100%;height:100%;margin:0;padding:0;position:absolute}.ms-Icon--circle::after{content:'\\\\e000';position:absolute;top:0;left:0;transform:scale(2);transform-origin:50% 50%;z-index:0}.ms-Icon--xs{font-size:10px}.ms-Icon--s{font-size:12px}.ms-Icon--m{font-size:16px}.ms-Icon--l{font-size:20px}.ms-Icon--12PointStar::before{content:''}.ms-Icon--6PointStar::before{content:''}.ms-Icon--AADLogo::before{content:''}.ms-Icon--Accept::before{content:''}.ms-Icon--AccessibiltyChecker::before{content:''}.ms-Icon--AccessLogo::before{content:''}.ms-Icon--AccessLogoFill::before{content:''}.ms-Icon--AccountActivity::before{content:''}.ms-Icon--AccountBrowser::before{content:''}.ms-Icon--AccountManagement::before{content:''}.ms-Icon--Accounts::before{content:''}.ms-Icon--ActionCenter::before{content:''}.ms-Icon--ActivateOrders::before{content:''}.ms-Icon--ActivityFeed::before{content:''}.ms-Icon--Add::before{content:''}.ms-Icon--AddBookmark::before{content:''}.ms-Icon--AddEvent::before{content:''}.ms-Icon--AddFavorite::before{content:''}.ms-Icon--AddFavoriteFill::before{content:''}.ms-Icon--AddFriend::before{content:''}.ms-Icon--AddGroup::before{content:''}.ms-Icon--AddHome::before{content:''}.ms-Icon--AddIn::before{content:''}.ms-Icon--AddLink::before{content:''}.ms-Icon--AddNotes::before{content:''}.ms-Icon--AddOnlineMeeting::before{content:''}.ms-Icon--AddPhone::before{content:''}.ms-Icon--AddReaction::before{content:''}.ms-Icon--AddSpaceAfter::before{content:''}.ms-Icon--AddSpaceBefore::before{content:''}.ms-Icon--AddTo::before{content:''}.ms-Icon--AddToShoppingList::before{content:''}.ms-Icon--AddWork::before{content:''}.ms-Icon--Admin::before{content:''}.ms-Icon--AdminALogo32::before{content:''}.ms-Icon--AdminALogoFill32::before{content:''}.ms-Icon--AdminALogoInverse32::before{content:''}.ms-Icon--AdminCLogoInverse32::before{content:''}.ms-Icon--AdminDLogoInverse32::before{content:''}.ms-Icon--AdminELogoInverse32::before{content:''}.ms-Icon--AdminLLogoInverse32::before{content:''}.ms-Icon--AdminMLogoInverse32::before{content:''}.ms-Icon--AdminOLogoInverse32::before{content:''}.ms-Icon--AdminPLogoInverse32::before{content:''}.ms-Icon--AdminSLogoInverse32::before{content:''}.ms-Icon--AdminYLogoInverse32::before{content:''}.ms-Icon--Airplane::before{content:''}.ms-Icon--AirplaneSolid::before{content:''}.ms-Icon--AirTickets::before{content:''}.ms-Icon--AlarmClock::before{content:''}.ms-Icon--Album::before{content:''}.ms-Icon--AlbumRemove::before{content:''}.ms-Icon--AlertSettings::before{content:''}.ms-Icon--AlertSolid::before{content:''}.ms-Icon--AlignCenter::before{content:''}.ms-Icon--AlignHorizontalCenter::before{content:''}.ms-Icon--AlignHorizontalLeft::before{content:''}.ms-Icon--AlignHorizontalRight::before{content:''}.ms-Icon--AlignJustify::before{content:''}.ms-Icon--AlignLeft::before{content:''}.ms-Icon--AlignRight::before{content:''}.ms-Icon--AlignVerticalBottom::before{content:''}.ms-Icon--AlignVerticalCenter::before{content:''}.ms-Icon--AlignVerticalTop::before{content:''}.ms-Icon--AllApps::before{content:''}[dir=rtl] .ms-Icon--AllApps::before{content:''}.ms-Icon--AllAppsMirrored::before{content:''}[dir=rtl] .ms-Icon--AllAppsMirrored::before{content:''}.ms-Icon--AllCurrency::before{content:''}.ms-Icon--AltText::before{content:''}.ms-Icon--AnalyticsLogo::before{content:''}.ms-Icon--AnalyticsQuery::before{content:''}.ms-Icon--AnalyticsReport::before{content:''}.ms-Icon--AnalyticsView::before{content:''}.ms-Icon--AnchorLock::before{content:''}.ms-Icon--Annotation::before{content:''}.ms-Icon--AppIconDefault::before{content:''}.ms-Icon--AppIconDefaultAdd::before{content:''}.ms-Icon--AppIconDefaultList::before{content:''}.ms-Icon--Archive::before{content:''}.ms-Icon--ArchiveUndo::before{content:''}.ms-Icon--AreaChart::before{content:''}.ms-Icon--ArrangeBringForward::before{content:''}.ms-Icon--ArrangeBringToFront::before{content:''}.ms-Icon--ArrangeByFrom::before{content:''}.ms-Icon--ArrangeSendBackward::before{content:''}.ms-Icon--ArrangeSendToBack::before{content:''}.ms-Icon--Arrivals::before{content:''}.ms-Icon--ArrowDownRight8::before{content:''}[dir=rtl] .ms-Icon--ArrowDownRight8::before{content:''}.ms-Icon--ArrowDownRightMirrored8::before{content:''}[dir=rtl] .ms-Icon--ArrowDownRightMirrored8::before{content:''}.ms-Icon--ArrowTallDownLeft::before{content:''}.ms-Icon--ArrowTallDownRight::before{content:''}.ms-Icon--ArrowTallUpLeft::before{content:''}.ms-Icon--ArrowTallUpRight::before{content:''}.ms-Icon--ArrowUpRight::before{content:''}.ms-Icon--ArrowUpRight8::before{content:''}[dir=rtl] .ms-Icon--ArrowUpRight8::before{content:''}.ms-Icon--ArrowUpRightMirrored8::before{content:''}[dir=rtl] .ms-Icon--ArrowUpRightMirrored8::before{content:''}.ms-Icon--Articles::before{content:''}.ms-Icon--Ascending::before{content:''}.ms-Icon--AspectRatio::before{content:''}.ms-Icon--AssessmentGroup::before{content:''}.ms-Icon--AssessmentGroupTemplate::before{content:''}.ms-Icon--AssetLibrary::before{content:''}.ms-Icon--Assign::before{content:''}.ms-Icon--Asterisk::before{content:''}.ms-Icon--AsteriskSolid::before{content:''}.ms-Icon--ATPLogo::before{content:''}.ms-Icon--Attach::before{content:''}.ms-Icon--AustralianRules::before{content:''}.ms-Icon--AuthenticatorApp::before{content:''}.ms-Icon--AutoDeploySettings::before{content:''}.ms-Icon--AutoEnhanceOff::before{content:''}.ms-Icon--AutoEnhanceOn::before{content:''}.ms-Icon--AutoFillTemplate::before{content:''}.ms-Icon--AutoFitContents::before{content:''}.ms-Icon--AutoFitWindow::before{content:''}.ms-Icon--AutoHeight::before{content:''}.ms-Icon--AutomateFlow::before{content:''}.ms-Icon--AutoRacing::before{content:''}.ms-Icon--AwayStatus::before{content:''}.ms-Icon--AzureAPIManagement::before{content:''}.ms-Icon--AzureKeyVault::before{content:''}.ms-Icon--AzureLogo::before{content:''}.ms-Icon--AzureServiceEndpoint::before{content:''}.ms-Icon--Back::before{content:''}.ms-Icon--BackgroundColor::before{content:''}.ms-Icon--Backlog::before{content:''}.ms-Icon--BacklogBoard::before{content:''}.ms-Icon--BacklogList::before{content:''}.ms-Icon--BackToWindow::before{content:''}.ms-Icon--Badge::before{content:''}.ms-Icon--Balloons::before{content:''}.ms-Icon--Bank::before{content:''}.ms-Icon--BankSolid::before{content:''}.ms-Icon--BarChart4::before{content:''}.ms-Icon--BarChartHorizontal::before{content:''}.ms-Icon--BarChartVertical::before{content:''}.ms-Icon--BarChartVerticalEdit::before{content:''}.ms-Icon--BarChartVerticalFill::before{content:''}.ms-Icon--BarChartVerticalFilter::before{content:''}.ms-Icon--BarChartVerticalFilterSolid::before{content:''}.ms-Icon--Baseball::before{content:''}.ms-Icon--BeerMug::before{content:''}.ms-Icon--BIDashboard::before{content:''}.ms-Icon--BidiLtr::before{content:''}.ms-Icon--BidiRtl::before{content:''}.ms-Icon--BingLogo::before{content:''}.ms-Icon--BirthdayCake::before{content:''}.ms-Icon--BlockContact::before{content:''}.ms-Icon--Blocked::before{content:''}.ms-Icon--Blocked12::before{content:''}.ms-Icon--Blocked2::before{content:''}.ms-Icon--Blocked2Solid::before{content:''}.ms-Icon--BlockedSite::before{content:''}.ms-Icon--BlockedSiteSolid12::before{content:''}.ms-Icon--BlockedSolid::before{content:''}.ms-Icon--Blog::before{content:''}.ms-Icon--BlowingSnow::before{content:''}.ms-Icon--Blur::before{content:''}.ms-Icon--Boards::before{content:''}.ms-Icon--Bold::before{content:''}.ms-Icon--BookAnswers::before{content:''}.ms-Icon--BookingsLogo::before{content:''}.ms-Icon--BookmarkReport::before{content:''}.ms-Icon--Bookmarks::before{content:''}[dir=rtl] .ms-Icon--Bookmarks::before{content:''}.ms-Icon--BookmarksMirrored::before{content:''}[dir=rtl] .ms-Icon--BookmarksMirrored::before{content:''}.ms-Icon--BorderDash::before{content:''}.ms-Icon--BorderDot::before{content:''}.ms-Icon--BoxAdditionSolid::before{content:''}.ms-Icon--BoxCheckmarkSolid::before{content:''}.ms-Icon--BoxMultiplySolid::before{content:''}.ms-Icon--BoxPlaySolid::before{content:''}.ms-Icon--BoxSubtractSolid::before{content:''}.ms-Icon--BranchCommit::before{content:''}.ms-Icon--BranchCompare::before{content:''}.ms-Icon--BranchFork::before{content:''}.ms-Icon--BranchFork2::before{content:''}.ms-Icon--BranchLocked::before{content:''}.ms-Icon--BranchMerge::before{content:''}.ms-Icon--BranchPullRequest::before{content:''}.ms-Icon--BranchSearch::before{content:''}.ms-Icon--BranchShelveset::before{content:''}.ms-Icon--Breadcrumb::before{content:''}.ms-Icon--Breakfast::before{content:''}.ms-Icon--Brightness::before{content:''}.ms-Icon--Broom::before{content:''}.ms-Icon--BrowserScreenShot::before{content:''}.ms-Icon--BrowserTab::before{content:''}.ms-Icon--BrowserTabScreenshot::before{content:''}.ms-Icon--Brunch::before{content:''}.ms-Icon--Brush::before{content:''}.ms-Icon--BucketColor::before{content:''}.ms-Icon--BucketColorFill::before{content:''}.ms-Icon--BufferTimeAfter::before{content:''}.ms-Icon--BufferTimeBefore::before{content:''}.ms-Icon--BufferTimeBoth::before{content:''}.ms-Icon--Bug::before{content:''}.ms-Icon--BugBlock::before{content:''}.ms-Icon--BugSolid::before{content:''}.ms-Icon--BugSync::before{content:''}.ms-Icon--Build::before{content:''}.ms-Icon--BuildDefinition::before{content:''}.ms-Icon--BuildIssue::before{content:''}.ms-Icon--BuildQueue::before{content:''}.ms-Icon--BuildQueueNew::before{content:''}.ms-Icon--BulkUpload::before{content:''}.ms-Icon--BulletedList2::before{content:''}[dir=rtl] .ms-Icon--BulletedList2::before{content:''}.ms-Icon--BulletedList2Mirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedList2Mirrored::before{content:''}.ms-Icon--BulletedListBullet::before{content:''}[dir=rtl] .ms-Icon--BulletedListBullet::before{content:''}.ms-Icon--BulletedListBulletMirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedListBulletMirrored::before{content:''}.ms-Icon--BulletedList::before{content:''}[dir=rtl] .ms-Icon--BulletedList::before{content:''}.ms-Icon--BulletedListMirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedListMirrored::before{content:''}.ms-Icon--BulletedListText::before{content:''}[dir=rtl] .ms-Icon--BulletedListText::before{content:''}.ms-Icon--BulletedListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedListTextMirrored::before{content:''}.ms-Icon--BulletedTreeList::before{content:''}.ms-Icon--Bullseye::before{content:''}.ms-Icon--BullseyeTarget::before{content:''}.ms-Icon--BullseyeTargetEdit::before{content:''}.ms-Icon--Bus::before{content:''}.ms-Icon--BusinessCenterLogo::before{content:''}.ms-Icon--BusinessHoursSign::before{content:''}.ms-Icon--BusSolid::before{content:''}.ms-Icon--ButtonControl::before{content:''}.ms-Icon--Cafe::before{content:''}.ms-Icon--Cake::before{content:''}.ms-Icon--Calculator::before{content:''}.ms-Icon--CalculatorAddition::before{content:''}.ms-Icon--CalculatorDelta::before{content:''}.ms-Icon--CalculatorEqualTo::before{content:''}.ms-Icon--CalculatorMultiply::before{content:''}.ms-Icon--CalculatorNotEqualTo::before{content:''}.ms-Icon--CalculatorPercentage::before{content:''}.ms-Icon--CalculatorSubtract::before{content:''}.ms-Icon--CalendarAgenda::before{content:''}.ms-Icon--CalendarDay::before{content:''}.ms-Icon--Calendar::before{content:''}[dir=rtl] .ms-Icon--Calendar::before{content:''}.ms-Icon--CalendarMirrored::before{content:''}[dir=rtl] .ms-Icon--CalendarMirrored::before{content:''}.ms-Icon--CalendarReply::before{content:''}.ms-Icon--CalendarSettings::before{content:''}[dir=rtl] .ms-Icon--CalendarSettings::before{content:''}.ms-Icon--CalendarSettingsMirrored::before{content:''}[dir=rtl] .ms-Icon--CalendarSettingsMirrored::before{content:''}.ms-Icon--CalendarWeek::before{content:''}.ms-Icon--CalendarWorkWeek::before{content:''}.ms-Icon--CalendarYear::before{content:''}.ms-Icon--Calories::before{content:''}.ms-Icon--CaloriesAdd::before{content:''}.ms-Icon--Camera::before{content:''}.ms-Icon--CampaignTemplate::before{content:''}.ms-Icon--Cancel::before{content:''}.ms-Icon--CannedChat::before{content:''}.ms-Icon--Car::before{content:''}.ms-Icon--CaretBottomLeftCenter8::before{content:''}.ms-Icon--CaretBottomLeftSolid8::before{content:''}.ms-Icon--CaretBottomRightCenter8::before{content:''}.ms-Icon--CaretBottomRightSolid8::before{content:''}.ms-Icon--CaretDown8::before{content:''}.ms-Icon--CaretDownSolid8::before{content:''}.ms-Icon--CaretHollow::before{content:''}[dir=rtl] .ms-Icon--CaretHollow::before{content:''}.ms-Icon--CaretHollowMirrored::before{content:''}[dir=rtl] .ms-Icon--CaretHollowMirrored::before{content:''}.ms-Icon--CaretLeft8::before{content:''}.ms-Icon--CaretLeftSolid8::before{content:''}.ms-Icon--CaretRight::before{content:''}.ms-Icon--CaretRight8::before{content:''}.ms-Icon--CaretRightSolid8::before{content:''}.ms-Icon--CaretSolid16::before{content:''}.ms-Icon--CaretSolidDown::before{content:''}.ms-Icon--CaretSolidLeft::before{content:''}.ms-Icon--CaretSolid::before{content:''}[dir=rtl] .ms-Icon--CaretSolid::before{content:''}.ms-Icon--CaretSolidMirrored::before{content:''}[dir=rtl] .ms-Icon--CaretSolidMirrored::before{content:''}.ms-Icon--CaretSolidRight::before{content:''}.ms-Icon--CaretSolidUp::before{content:''}.ms-Icon--CaretTopLeftCenter8::before{content:''}.ms-Icon--CaretTopLeftSolid8::before{content:''}.ms-Icon--CaretTopRightCenter8::before{content:''}.ms-Icon--CaretTopRightSolid8::before{content:''}.ms-Icon--CaretUp8::before{content:''}.ms-Icon--CaretUpSolid8::before{content:''}.ms-Icon--Cat::before{content:''}.ms-Icon--CellPhone::before{content:''}.ms-Icon--Certificate::before{content:''}.ms-Icon--CertifiedDatabase::before{content:''}.ms-Icon--ChangeEntitlements::before{content:''}.ms-Icon--Chart::before{content:''}.ms-Icon--ChartSeries::before{content:''}.ms-Icon--ChartTemplate::before{content:''}.ms-Icon--ChartXAngle::before{content:''}.ms-Icon--ChartYAngle::before{content:''}.ms-Icon--Chat::before{content:''}.ms-Icon--ChatBot::before{content:''}.ms-Icon--ChatInviteFriend::before{content:''}.ms-Icon--ChatSolid::before{content:''}.ms-Icon--Checkbox::before{content:''}.ms-Icon--CheckboxComposite::before{content:''}.ms-Icon--CheckboxCompositeReversed::before{content:''}.ms-Icon--CheckboxFill::before{content:''}.ms-Icon--CheckboxIndeterminate::before{content:''}.ms-Icon--CheckedOutByOther12::before{content:''}.ms-Icon--CheckedOutByYou12::before{content:''}.ms-Icon--CheckList::before{content:''}.ms-Icon--CheckListCheck::before{content:''}[dir=rtl] .ms-Icon--CheckListCheck::before{content:''}.ms-Icon--CheckListCheckMirrored::before{content:''}[dir=rtl] .ms-Icon--CheckListCheckMirrored::before{content:''}.ms-Icon--CheckListText::before{content:''}[dir=rtl] .ms-Icon--CheckListText::before{content:''}.ms-Icon--CheckListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--CheckListTextMirrored::before{content:''}.ms-Icon--CheckMark::before{content:''}.ms-Icon--ChevronDown::before{content:''}.ms-Icon--ChevronDownEnd6::before{content:''}.ms-Icon--ChevronDownMed::before{content:''}.ms-Icon--ChevronDownSmall::before{content:''}.ms-Icon--ChevronFold10::before{content:''}.ms-Icon--ChevronLeft::before{content:''}.ms-Icon--ChevronLeftEnd6::before{content:''}.ms-Icon--ChevronLeftMed::before{content:''}.ms-Icon--ChevronLeftSmall::before{content:''}.ms-Icon--ChevronRight::before{content:''}.ms-Icon--ChevronRightEnd6::before{content:''}.ms-Icon--ChevronRightMed::before{content:''}.ms-Icon--ChevronRightSmall::before{content:''}.ms-Icon--ChevronUnfold10::before{content:''}.ms-Icon--ChevronUp::before{content:''}.ms-Icon--ChevronUpEnd6::before{content:''}.ms-Icon--ChevronUpMed::before{content:''}.ms-Icon--ChevronUpSmall::before{content:''}.ms-Icon--Childof::before{content:''}.ms-Icon--Chopsticks::before{content:''}.ms-Icon--ChromeBack::before{content:''}[dir=rtl] .ms-Icon--ChromeBack::before{content:''}.ms-Icon--ChromeBackMirrored::before{content:''}[dir=rtl] .ms-Icon--ChromeBackMirrored::before{content:''}.ms-Icon--ChromeClose::before{content:''}.ms-Icon--ChromeFullScreen::before{content:''}.ms-Icon--ChromeMinimize::before{content:''}.ms-Icon--ChromeRestore::before{content:''}.ms-Icon--CircleAddition::before{content:''}.ms-Icon--CircleAdditionSolid::before{content:''}.ms-Icon--CircleFill::before{content:''}.ms-Icon--CircleHalfFull::before{content:''}.ms-Icon--CirclePause::before{content:''}.ms-Icon--CirclePauseSolid::before{content:''}.ms-Icon--CirclePlus::before{content:''}.ms-Icon--CircleRing::before{content:''}.ms-Icon--CircleShape::before{content:''}.ms-Icon--CircleShapeSolid::before{content:''}.ms-Icon--CircleStop::before{content:''}.ms-Icon--CircleStopSolid::before{content:''}.ms-Icon--CityNext::before{content:''}.ms-Icon--CityNext2::before{content:''}.ms-Icon--ClassNotebookLogo16::before{content:''}.ms-Icon--ClassNotebookLogo32::before{content:''}.ms-Icon--ClassNotebookLogoFill16::before{content:''}.ms-Icon--ClassNotebookLogoFill32::before{content:''}.ms-Icon--ClassNotebookLogoInverse::before{content:''}.ms-Icon--ClassNotebookLogoInverse16::before{content:''}.ms-Icon--ClassNotebookLogoInverse32::before{content:''}.ms-Icon--ClassroomLogo::before{content:''}.ms-Icon--Clear::before{content:''}.ms-Icon--ClearFilter::before{content:''}.ms-Icon--ClearFormatting::before{content:''}.ms-Icon--ClearFormattingA::before{content:''}.ms-Icon--ClearFormattingEraser::before{content:''}.ms-Icon--ClearNight::before{content:''}.ms-Icon--ClearSelection::before{content:''}[dir=rtl] .ms-Icon--ClearSelection::before{content:''}.ms-Icon--ClearSelectionMirrored::before{content:''}[dir=rtl] .ms-Icon--ClearSelectionMirrored::before{content:''}.ms-Icon--ClipboardList::before{content:''}[dir=rtl] .ms-Icon--ClipboardList::before{content:''}.ms-Icon--ClipboardListMirrored::before{content:''}[dir=rtl] .ms-Icon--ClipboardListMirrored::before{content:''}.ms-Icon--ClipboardSolid::before{content:''}.ms-Icon--Clock::before{content:''}.ms-Icon--CloneToDesktop::before{content:''}.ms-Icon--ClosedCaption::before{content:''}.ms-Icon--ClosePane::before{content:''}[dir=rtl] .ms-Icon--ClosePane::before{content:''}.ms-Icon--ClosePaneMirrored::before{content:''}[dir=rtl] .ms-Icon--ClosePaneMirrored::before{content:''}.ms-Icon--Cloud::before{content:''}.ms-Icon--CloudAdd::before{content:''}.ms-Icon--CloudDownload::before{content:''}.ms-Icon--CloudImportExport::before{content:''}.ms-Icon--CloudUpload::before{content:''}.ms-Icon--CloudWeather::before{content:''}.ms-Icon--Cloudy::before{content:''}.ms-Icon--Cocktails::before{content:''}.ms-Icon--Code::before{content:''}.ms-Icon--CodeEdit::before{content:''}.ms-Icon--Coffee::before{content:''}.ms-Icon--CoffeeScript::before{content:''}.ms-Icon--CollapseContent::before{content:''}.ms-Icon--CollapseContentSingle::before{content:''}.ms-Icon--CollapseMenu::before{content:''}.ms-Icon--CollegeFootball::before{content:''}.ms-Icon--CollegeHoops::before{content:''}.ms-Icon--Color::before{content:''}.ms-Icon--ColorSolid::before{content:''}.ms-Icon--ColumnLeftTwoThirds::before{content:''}.ms-Icon--ColumnLeftTwoThirdsEdit::before{content:''}.ms-Icon--ColumnOptions::before{content:''}.ms-Icon--ColumnRightTwoThirds::before{content:''}.ms-Icon--ColumnRightTwoThirdsEdit::before{content:''}.ms-Icon--ColumnVerticalSection::before{content:''}.ms-Icon--ColumnVerticalSectionEdit::before{content:''}.ms-Icon--Combine::before{content:''}.ms-Icon--Combobox::before{content:''}.ms-Icon--CommandPrompt::before{content:''}.ms-Icon--Comment::before{content:''}.ms-Icon--CommentActive::before{content:''}.ms-Icon--CommentAdd::before{content:''}.ms-Icon--CommentNext::before{content:''}.ms-Icon--CommentPrevious::before{content:''}.ms-Icon--CommentSolid::before{content:''}.ms-Icon--CommentUrgent::before{content:''}.ms-Icon--Commitments::before{content:''}.ms-Icon--CommonDataServiceCDS::before{content:''}.ms-Icon--Communications::before{content:''}.ms-Icon--CompanyDirectory::before{content:''}[dir=rtl] .ms-Icon--CompanyDirectory::before{content:''}.ms-Icon--CompanyDirectoryMirrored::before{content:''}[dir=rtl] .ms-Icon--CompanyDirectoryMirrored::before{content:''}.ms-Icon--Compare::before{content:''}.ms-Icon--CompareUneven::before{content:''}.ms-Icon--CompassNW::before{content:''}.ms-Icon--Completed::before{content:''}.ms-Icon--CompletedSolid::before{content:''}.ms-Icon--ComplianceAudit::before{content:''}.ms-Icon--ConfigurationSolid::before{content:''}.ms-Icon--ConnectContacts::before{content:''}.ms-Icon--ConnectVirtualMachine::before{content:''}.ms-Icon--ConstructionCone::before{content:''}.ms-Icon--ConstructionConeSolid::before{content:''}.ms-Icon--Contact::before{content:''}.ms-Icon--ContactCard::before{content:''}.ms-Icon--ContactCardSettings::before{content:''}[dir=rtl] .ms-Icon--ContactCardSettings::before{content:''}.ms-Icon--ContactCardSettingsMirrored::before{content:''}[dir=rtl] .ms-Icon--ContactCardSettingsMirrored::before{content:''}.ms-Icon--ContactHeart::before{content:''}.ms-Icon--ContactInfo::before{content:''}.ms-Icon--ContactLink::before{content:''}.ms-Icon--ContactList::before{content:''}.ms-Icon--ContactLock::before{content:''}.ms-Icon--ContentFeed::before{content:''}.ms-Icon--ContentSettings::before{content:''}.ms-Icon--ContextMenu::before{content:''}.ms-Icon--Contrast::before{content:''}.ms-Icon--Copy::before{content:''}.ms-Icon--CortanaLogoBeckonInner::before{content:''}.ms-Icon--CortanaLogoBeckonOuter::before{content:''}.ms-Icon--CortanaLogoInner::before{content:''}.ms-Icon--CortanaLogoOuter::before{content:''}.ms-Icon--CortanaLogoReadyInner::before{content:''}.ms-Icon--CortanaLogoReadyOuter::before{content:''}.ms-Icon--Cotton::before{content:''}.ms-Icon--Coupon::before{content:''}.ms-Icon--CPlusPlus::before{content:''}.ms-Icon--CPlusPlusLanguage::before{content:''}.ms-Icon--CreateMailRule::before{content:''}.ms-Icon--Cricket::before{content:''}.ms-Icon--CRMProcesses::before{content:''}.ms-Icon--CRMReport::before{content:''}.ms-Icon--CRMServices::before{content:''}.ms-Icon--Crop::before{content:''}.ms-Icon--Crown::before{content:''}.ms-Icon--CrownSolid::before{content:''}.ms-Icon--CSharp::before{content:''}.ms-Icon--CSharpLanguage::before{content:''}.ms-Icon--CSS::before{content:''}.ms-Icon--CubeShape::before{content:''}.ms-Icon--CubeShapeSolid::before{content:''}.ms-Icon--CustomizeToolbar::before{content:''}.ms-Icon--CustomList::before{content:''}[dir=rtl] .ms-Icon--CustomList::before{content:''}.ms-Icon--CustomListMirrored::before{content:''}[dir=rtl] .ms-Icon--CustomListMirrored::before{content:''}.ms-Icon--Cut::before{content:''}.ms-Icon--Cycling::before{content:''}.ms-Icon--D365CoreHR::before{content:''}.ms-Icon--D365CustomerInsights::before{content:''}.ms-Icon--D365ProjectOperations::before{content:''}.ms-Icon--D365TalentInsight::before{content:''}.ms-Icon--D365TalentLearn::before{content:''}.ms-Icon--DashboardAdd::before{content:''}.ms-Icon--Database::before{content:''}.ms-Icon--DatabaseSync::before{content:''}.ms-Icon--DataConnectionLibrary::before{content:''}.ms-Icon--Dataflows::before{content:''}.ms-Icon--DataflowsLink::before{content:''}.ms-Icon--DataManagementSettings::before{content:''}.ms-Icon--DateTime12::before{content:''}.ms-Icon--DateTime2::before{content:''}.ms-Icon--DateTime::before{content:''}[dir=rtl] .ms-Icon--DateTime::before{content:''}.ms-Icon--DateTimeMirrored::before{content:''}[dir=rtl] .ms-Icon--DateTimeMirrored::before{content:''}.ms-Icon--DeactivateOrders::before{content:''}.ms-Icon--Decimals::before{content:''}.ms-Icon--DecisionSolid::before{content:''}.ms-Icon--DeclineCall::before{content:''}.ms-Icon--DecreaseIndentArrow::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrow::before{content:''}.ms-Icon--DecreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrowMirrored::before{content:''}.ms-Icon--DecreaseIndentLegacy::before{content:''}.ms-Icon--DecreaseIndent::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndent::before{content:''}.ms-Icon--DecreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentMirrored::before{content:''}.ms-Icon--DecreaseIndentText::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentText::before{content:''}.ms-Icon--DecreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentTextMirrored::before{content:''}.ms-Icon--DefaultRatio::before{content:''}.ms-Icon--DefectSolid::before{content:''}.ms-Icon--DefenderTVM::before{content:''}.ms-Icon--Delete::before{content:''}.ms-Icon--DeleteColumns::before{content:''}.ms-Icon--DeleteRows::before{content:''}[dir=rtl] .ms-Icon--DeleteRows::before{content:''}.ms-Icon--DeleteRowsMirrored::before{content:''}[dir=rtl] .ms-Icon--DeleteRowsMirrored::before{content:''}.ms-Icon--DeleteTable::before{content:''}.ms-Icon--DeliveryTruck::before{content:''}.ms-Icon--DelveAnalytics::before{content:''}.ms-Icon--DelveAnalyticsLogo::before{content:''}.ms-Icon--DelveLogo::before{content:''}.ms-Icon--DelveLogoFill::before{content:''}.ms-Icon--DelveLogoInverse::before{content:''}.ms-Icon--DependencyAdd::before{content:''}.ms-Icon--DependencyRemove::before{content:''}.ms-Icon--Deploy::before{content:''}.ms-Icon--Descending::before{content:''}.ms-Icon--Design::before{content:''}.ms-Icon--DesktopScreenshot::before{content:''}.ms-Icon--DeveloperTools::before{content:''}.ms-Icon--DeviceBug::before{content:''}.ms-Icon--DeviceOff::before{content:''}.ms-Icon--DeviceRun::before{content:''}.ms-Icon--Devices2::before{content:''}.ms-Icon--Devices3::before{content:''}.ms-Icon--Devices4::before{content:''}.ms-Icon--Diagnostic::before{content:''}.ms-Icon--DiagnosticDataBarTooltip::before{content:''}.ms-Icon--Dialpad::before{content:''}.ms-Icon--Diamond::before{content:''}.ms-Icon--DiamondSolid::before{content:''}.ms-Icon--Dictionary::before{content:''}.ms-Icon--DictionaryRemove::before{content:''}.ms-Icon--DietPlanNotebook::before{content:''}.ms-Icon--DiffInline::before{content:''}.ms-Icon--DiffSideBySide::before{content:''}.ms-Icon--DisableUpdates::before{content:''}.ms-Icon--DisconnectVirtualMachine::before{content:''}.ms-Icon--Dislike::before{content:''}.ms-Icon--DislikeSolid::before{content:''}.ms-Icon--DistributeDown::before{content:''}.ms-Icon--DockLeft::before{content:''}[dir=rtl] .ms-Icon--DockLeft::before{content:''}.ms-Icon--DockLeftMirrored::before{content:''}[dir=rtl] .ms-Icon--DockLeftMirrored::before{content:''}.ms-Icon--DockRight::before{content:''}.ms-Icon--DocLibrary::before{content:''}.ms-Icon--DocsLogoInverse::before{content:''}.ms-Icon--Document::before{content:''}.ms-Icon--DocumentApproval::before{content:''}.ms-Icon--Documentation::before{content:''}.ms-Icon--DocumentManagement::before{content:''}.ms-Icon--DocumentReply::before{content:''}.ms-Icon--DocumentSearch::before{content:''}.ms-Icon--DocumentSet::before{content:''}.ms-Icon--DOM::before{content:''}.ms-Icon--DonutChart::before{content:''}.ms-Icon--Door::before{content:''}.ms-Icon--DoubleBookmark::before{content:''}.ms-Icon--DoubleChevronDown::before{content:''}.ms-Icon--DoubleChevronDown12::before{content:''}.ms-Icon--DoubleChevronDown8::before{content:''}.ms-Icon--DoubleChevronLeft::before{content:''}.ms-Icon--DoubleChevronLeft12::before{content:''}.ms-Icon--DoubleChevronLeft8::before{content:''}.ms-Icon--DoubleChevronLeftMed::before{content:''}[dir=rtl] .ms-Icon--DoubleChevronLeftMed::before{content:''}.ms-Icon--DoubleChevronLeftMedMirrored::before{content:''}[dir=rtl] .ms-Icon--DoubleChevronLeftMedMirrored::before{content:''}.ms-Icon--DoubleChevronRight::before{content:''}.ms-Icon--DoubleChevronRight12::before{content:''}.ms-Icon--DoubleChevronRight8::before{content:''}.ms-Icon--DoubleChevronUp::before{content:''}.ms-Icon--DoubleChevronUp12::before{content:''}.ms-Icon--DoubleChevronUp8::before{content:''}.ms-Icon--DoubleColumn::before{content:''}.ms-Icon--DoubleColumnEdit::before{content:''}.ms-Icon--DoubleDownArrow::before{content:''}.ms-Icon--Down::before{content:''}.ms-Icon--Download::before{content:''}.ms-Icon--DownloadDocument::before{content:''}.ms-Icon--DragObject::before{content:''}.ms-Icon--DrillDown::before{content:''}.ms-Icon--DrillDownSolid::before{content:''}.ms-Icon--DrillExpand::before{content:''}.ms-Icon--DrillShow::before{content:''}.ms-Icon--DrillThrough::before{content:''}.ms-Icon--DriverOff::before{content:''}.ms-Icon--DRM::before{content:''}.ms-Icon--Drop::before{content:''}.ms-Icon--Dropdown::before{content:''}.ms-Icon--DropShape::before{content:''}.ms-Icon--DropShapeSolid::before{content:''}.ms-Icon--DuplicateRow::before{content:''}.ms-Icon--Duststorm::before{content:''}.ms-Icon--Dynamics365Logo::before{content:''}.ms-Icon--DynamicSMBLogo::before{content:''}.ms-Icon--EaseOfAccess::before{content:''}.ms-Icon--EatDrink::before{content:''}.ms-Icon--EdgeOldLogo::before{content:''}.ms-Icon--eDiscovery::before{content:''}.ms-Icon--EditContact::before{content:''}.ms-Icon--EditCreate::before{content:''}.ms-Icon--EditMail::before{content:''}.ms-Icon--Edit::before{content:''}[dir=rtl] .ms-Icon--Edit::before{content:''}.ms-Icon--EditMirrored::before{content:''}[dir=rtl] .ms-Icon--EditMirrored::before{content:''}.ms-Icon--EditNote::before{content:''}.ms-Icon--EditPhoto::before{content:''}.ms-Icon--EditSolid12::before{content:''}[dir=rtl] .ms-Icon--EditSolid12::before{content:''}.ms-Icon--EditSolidMirrored12::before{content:''}[dir=rtl] .ms-Icon--EditSolidMirrored12::before{content:''}.ms-Icon--EditStyle::before{content:''}.ms-Icon--Education::before{content:''}.ms-Icon--Ellipse::before{content:''}.ms-Icon--Embed::before{content:''}.ms-Icon--EMI::before{content:''}.ms-Icon--Emoji::before{content:''}.ms-Icon--Emoji2::before{content:''}.ms-Icon--EmojiDisappointed::before{content:''}.ms-Icon--EmojiNeutral::before{content:''}.ms-Icon--EmojiTabSymbols::before{content:''}.ms-Icon--EmptyRecycleBin::before{content:''}.ms-Icon--Encryption::before{content:''}.ms-Icon--EndPointSolid::before{content:''}.ms-Icon--EngineeringGroup::before{content:''}.ms-Icon--EntitlementPolicy::before{content:''}.ms-Icon--EntitlementRedemption::before{content:''}.ms-Icon--EntryDecline::before{content:''}.ms-Icon--EntryView::before{content:''}.ms-Icon--Equalizer::before{content:''}.ms-Icon--EraseTool::before{content:''}.ms-Icon--Error::before{content:''}.ms-Icon--ErrorBadge::before{content:''}.ms-Icon--Event::before{content:''}.ms-Icon--Event12::before{content:''}.ms-Icon--EventAccepted::before{content:''}.ms-Icon--EventDate::before{content:''}.ms-Icon--EventDateMissed12::before{content:''}.ms-Icon--EventDeclined::before{content:''}.ms-Icon--EventInfo::before{content:''}.ms-Icon--EventTentative::before{content:''}[dir=rtl] .ms-Icon--EventTentative::before{content:''}.ms-Icon--EventTentativeMirrored::before{content:''}[dir=rtl] .ms-Icon--EventTentativeMirrored::before{content:''}.ms-Icon--EventToDoLogo::before{content:''}.ms-Icon--ExcelDocument::before{content:''}.ms-Icon--ExcelLogo::before{content:''}.ms-Icon--ExcelLogo16::before{content:''}.ms-Icon--ExcelLogoFill::before{content:''}.ms-Icon--ExcelLogoFill16::before{content:''}.ms-Icon--ExcelLogoInverse::before{content:''}.ms-Icon--ExcelLogoInverse16::before{content:''}.ms-Icon--ExchangeLogo::before{content:''}.ms-Icon--ExchangeLogoFill::before{content:''}.ms-Icon--ExchangeLogoInverse::before{content:''}.ms-Icon--ExerciseTracker::before{content:''}.ms-Icon--ExpandMenu::before{content:''}.ms-Icon--ExploreContent::before{content:''}.ms-Icon--ExploreContentSingle::before{content:''}.ms-Icon--ExploreData::before{content:''}.ms-Icon--Export::before{content:''}[dir=rtl] .ms-Icon--Export::before{content:''}.ms-Icon--ExportMirrored::before{content:''}[dir=rtl] .ms-Icon--ExportMirrored::before{content:''}.ms-Icon--ExternalBuild::before{content:''}.ms-Icon--ExternalTFVC::before{content:''}.ms-Icon--ExternalXAML::before{content:''}.ms-Icon--Eyedropper::before{content:''}.ms-Icon--EyeShadow::before{content:''}.ms-Icon--F12DevTools::before{content:''}.ms-Icon--FabricAssetLibrary::before{content:''}.ms-Icon--FabricDataConnectionLibrary::before{content:''}.ms-Icon--FabricDocLibrary::before{content:''}.ms-Icon--FabricFolder::before{content:''}.ms-Icon--FabricFolderConfirm::before{content:''}.ms-Icon--FabricFolderFill::before{content:''}.ms-Icon--FabricFolderSearch::before{content:''}.ms-Icon--FabricFolderUpload::before{content:''}.ms-Icon--FabricFormLibrary::before{content:''}[dir=rtl] .ms-Icon--FabricFormLibrary::before{content:''}.ms-Icon--FabricFormLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FabricFormLibraryMirrored::before{content:''}.ms-Icon--FabricMovetoFolder::before{content:''}.ms-Icon--FabricNetworkFolder::before{content:''}.ms-Icon--FabricNewFolder::before{content:''}.ms-Icon--FabricOpenFolderHorizontal::before{content:''}.ms-Icon--FabricPictureLibrary::before{content:''}.ms-Icon--FabricPublicFolder::before{content:''}.ms-Icon--FabricReportLibrary::before{content:''}[dir=rtl] .ms-Icon--FabricReportLibrary::before{content:''}.ms-Icon--FabricReportLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FabricReportLibraryMirrored::before{content:''}.ms-Icon--FabricSyncFolder::before{content:''}.ms-Icon--FabricTextHighlight::before{content:''}.ms-Icon--FabricTextHighlightComposite::before{content:''}.ms-Icon--FabricUnsyncFolder::before{content:''}.ms-Icon--FabricUserFolder::before{content:''}.ms-Icon--Family::before{content:''}.ms-Icon--FangBody::before{content:''}.ms-Icon--FastForward::before{content:''}.ms-Icon--FastMode::before{content:''}.ms-Icon--Favicon::before{content:''}.ms-Icon--FavoriteList::before{content:''}.ms-Icon--FavoriteStar::before{content:''}.ms-Icon--FavoriteStarFill::before{content:''}.ms-Icon--Fax::before{content:''}.ms-Icon--Feedback::before{content:''}.ms-Icon--FeedbackRequestSolid::before{content:''}[dir=rtl] .ms-Icon--FeedbackRequestSolid::before{content:''}.ms-Icon--FeedbackRequestMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--FeedbackRequestMirroredSolid::before{content:''}.ms-Icon--FeedbackResponseSolid::before{content:''}.ms-Icon--Ferry::before{content:''}.ms-Icon--FerrySolid::before{content:''}.ms-Icon--FieldChanged::before{content:''}.ms-Icon--FieldEmpty::before{content:''}.ms-Icon--FieldFilled::before{content:''}.ms-Icon--FieldNotChanged::before{content:''}.ms-Icon--FieldReadOnly::before{content:''}.ms-Icon--FieldRequired::before{content:''}.ms-Icon--FileASPX::before{content:''}.ms-Icon--FileBug::before{content:''}.ms-Icon--FileCode::before{content:''}.ms-Icon--FileComment::before{content:''}.ms-Icon--FileCSS::before{content:''}.ms-Icon--FileHTML::before{content:''}.ms-Icon--FileImage::before{content:''}.ms-Icon--FileJAVA::before{content:''}.ms-Icon--FileLess::before{content:''}.ms-Icon--FileOff::before{content:''}.ms-Icon--FilePDB::before{content:''}.ms-Icon--FileRequest::before{content:''}.ms-Icon--FileSass::before{content:''}.ms-Icon--FileSQL::before{content:''}.ms-Icon--FileSymlink::before{content:''}.ms-Icon--FileTemplate::before{content:''}.ms-Icon--FileTypeSolution::before{content:''}.ms-Icon--FileYML::before{content:''}.ms-Icon--Filter::before{content:''}.ms-Icon--FilterAscending::before{content:''}.ms-Icon--FilterDescending::before{content:''}.ms-Icon--Filters::before{content:''}.ms-Icon--FilterSettings::before{content:''}.ms-Icon--FilterSolid::before{content:''}.ms-Icon--FiltersSolid::before{content:''}.ms-Icon--Financial::before{content:''}.ms-Icon--FinancialSolid::before{content:''}[dir=rtl] .ms-Icon--FinancialSolid::before{content:''}.ms-Icon--FinancialMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--FinancialMirroredSolid::before{content:''}.ms-Icon--Fingerprint::before{content:''}.ms-Icon--FitPage::before{content:''}.ms-Icon--FitWidth::before{content:''}.ms-Icon--FiveTileGrid::before{content:''}.ms-Icon--FixedAssetManagement::before{content:''}.ms-Icon--FixedColumnWidth::before{content:''}.ms-Icon--Flag::before{content:''}.ms-Icon--FlameSolid::before{content:''}.ms-Icon--FlashAuto::before{content:''}.ms-Icon--Flashlight::before{content:''}.ms-Icon--FlashOff::before{content:''}.ms-Icon--FlickDown::before{content:''}.ms-Icon--FlickLeft::before{content:''}.ms-Icon--FlickRight::before{content:''}.ms-Icon--FlickUp::before{content:''}.ms-Icon--Flow::before{content:''}.ms-Icon--FlowChart::before{content:''}.ms-Icon--Flower::before{content:''}.ms-Icon--FocalPoint::before{content:''}.ms-Icon--Focus::before{content:''}.ms-Icon--FocusView::before{content:''}.ms-Icon--Fog::before{content:''}.ms-Icon--Folder::before{content:''}.ms-Icon--FolderFill::before{content:''}.ms-Icon--FolderHorizontal::before{content:''}.ms-Icon--FolderList::before{content:''}[dir=rtl] .ms-Icon--FolderList::before{content:''}.ms-Icon--FolderListMirrored::before{content:''}[dir=rtl] .ms-Icon--FolderListMirrored::before{content:''}.ms-Icon--FolderOpen::before{content:''}.ms-Icon--FolderQuery::before{content:''}.ms-Icon--FolderSearch::before{content:''}.ms-Icon--FollowUser::before{content:''}.ms-Icon--Font::before{content:''}.ms-Icon--FontColor::before{content:''}.ms-Icon--FontColorA::before{content:''}.ms-Icon--FontColorSwatch::before{content:''}.ms-Icon--FontDecrease::before{content:''}.ms-Icon--FontIncrease::before{content:''}.ms-Icon--FontSize::before{content:''}.ms-Icon--FontSize2::before{content:''}.ms-Icon--Footer::before{content:''}.ms-Icon--FormatPainter::before{content:''}.ms-Icon--FormLibrary::before{content:''}[dir=rtl] .ms-Icon--FormLibrary::before{content:''}.ms-Icon--FormLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FormLibraryMirrored::before{content:''}.ms-Icon--Forum::before{content:''}.ms-Icon--Forward::before{content:''}.ms-Icon--ForwardEvent::before{content:''}.ms-Icon--Freezing::before{content:''}.ms-Icon--Frigid::before{content:''}.ms-Icon--FrontCamera::before{content:''}.ms-Icon--FSharp::before{content:''}.ms-Icon--FSharpLanguage::before{content:''}.ms-Icon--FullCircleMask::before{content:''}.ms-Icon--FullHistory::before{content:''}.ms-Icon--FullScreen::before{content:''}.ms-Icon--FullView::before{content:''}.ms-Icon--FullWidth::before{content:''}.ms-Icon--FullWidthEdit::before{content:''}.ms-Icon--FunctionalManagerDashboard::before{content:''}.ms-Icon--FunnelChart::before{content:''}.ms-Icon--GallatinLogo::before{content:''}.ms-Icon--Game::before{content:''}.ms-Icon--Generate::before{content:''}.ms-Icon--GenericScan::before{content:''}.ms-Icon--GenericScanFilled::before{content:''}.ms-Icon--GIF::before{content:''}.ms-Icon--Giftbox::before{content:''}.ms-Icon--GiftboxOpen::before{content:''}.ms-Icon--GiftBoxSolid::before{content:''}.ms-Icon--GiftCard::before{content:''}.ms-Icon--GitGraph::before{content:''}.ms-Icon--Glasses::before{content:''}.ms-Icon--Glimmer::before{content:''}.ms-Icon--GlobalNavButton::before{content:''}.ms-Icon--GlobalNavButtonActive::before{content:''}.ms-Icon--Globe::before{content:''}.ms-Icon--Globe2::before{content:''}.ms-Icon--GlobeFavorite::before{content:''}.ms-Icon--Golf::before{content:''}.ms-Icon--Go::before{content:''}[dir=rtl] .ms-Icon--Go::before{content:''}.ms-Icon--GoMirrored::before{content:''}[dir=rtl] .ms-Icon--GoMirrored::before{content:''}.ms-Icon--GoToDashboard::before{content:''}.ms-Icon--GotoToday::before{content:''}.ms-Icon--GreetingCard::before{content:''}.ms-Icon--GridViewLarge::before{content:''}.ms-Icon--GridViewMedium::before{content:''}.ms-Icon--GridViewSmall::before{content:''}.ms-Icon--GripperBarHorizontal::before{content:''}.ms-Icon--GripperBarVertical::before{content:''}.ms-Icon--GripperDotsVertical::before{content:''}.ms-Icon--GripperTool::before{content:''}.ms-Icon--Group::before{content:''}.ms-Icon--GroupedAscending::before{content:''}.ms-Icon--GroupedDescending::before{content:''}.ms-Icon--GroupedList::before{content:''}.ms-Icon--GroupList::before{content:''}.ms-Icon--GroupObject::before{content:''}.ms-Icon--GUID::before{content:''}.ms-Icon--Guitar::before{content:''}.ms-Icon--HailDay::before{content:''}.ms-Icon--HailNight::before{content:''}.ms-Icon--HalfAlpha::before{content:''}.ms-Icon--HalfCircle::before{content:''}.ms-Icon--HandsFree::before{content:''}.ms-Icon--Handwriting::before{content:''}.ms-Icon--HardDrive::before{content:''}.ms-Icon--HardDriveGroup::before{content:''}.ms-Icon--HardDriveLock::before{content:''}.ms-Icon--HardDriveUnlock::before{content:''}.ms-Icon--Header::before{content:''}.ms-Icon--Header1::before{content:''}.ms-Icon--Header2::before{content:''}.ms-Icon--Header3::before{content:''}.ms-Icon--Header4::before{content:''}.ms-Icon--Headset::before{content:''}.ms-Icon--HeadsetSolid::before{content:''}.ms-Icon--Health::before{content:''}.ms-Icon--HealthRefresh::before{content:''}.ms-Icon--HealthSolid::before{content:''}.ms-Icon--Heart::before{content:''}.ms-Icon--HeartBroken::before{content:''}.ms-Icon--HeartFill::before{content:''}.ms-Icon--Help::before{content:''}[dir=rtl] .ms-Icon--Help::before{content:''}.ms-Icon--HelpMirrored::before{content:''}[dir=rtl] .ms-Icon--HelpMirrored::before{content:''}.ms-Icon--HexaditeInvestigation::before{content:''}.ms-Icon--HexaditeInvestigationCancel::before{content:''}.ms-Icon--HexaditeInvestigationSemiAuto::before{content:''}.ms-Icon--Hexagon::before{content:''}.ms-Icon--Hide::before{content:''}.ms-Icon--Hide2::before{content:''}.ms-Icon--Hide3::before{content:''}.ms-Icon--Highlight::before{content:''}.ms-Icon--HighlightMappedShapes::before{content:''}.ms-Icon--HintText::before{content:''}.ms-Icon--HistoricalWeather::before{content:''}.ms-Icon--History::before{content:''}.ms-Icon--Home::before{content:''}.ms-Icon--HomeDropdown::before{content:''}.ms-Icon--HomeGroup::before{content:''}.ms-Icon--HomeSolid::before{content:''}.ms-Icon--HomeVerify::before{content:''}.ms-Icon--HorizontalDistributeCenter::before{content:''}.ms-Icon--HorizontalTabKey::before{content:''}.ms-Icon--Hospital::before{content:''}.ms-Icon--Hotel::before{content:''}.ms-Icon--HourGlass::before{content:''}.ms-Icon--IconSetsFlag::before{content:''}.ms-Icon--IDBadge::before{content:''}.ms-Icon--IgnoreConversation::before{content:''}.ms-Icon--ImageCrosshair::before{content:''}.ms-Icon--ImageDiff::before{content:''}.ms-Icon--ImageInAR::before{content:''}.ms-Icon--ImagePixel::before{content:''}.ms-Icon--ImageSearch::before{content:''}[dir=rtl] .ms-Icon--ImportAll::before{content:''}.ms-Icon--ImportAllMirrored::before{content:''}.ms-Icon--Important::before{content:''}.ms-Icon--Import::before{content:''}[dir=rtl] .ms-Icon--Import::before{content:''}.ms-Icon--ImportMirrored::before{content:''}[dir=rtl] .ms-Icon--ImportMirrored::before{content:''}.ms-Icon--Inbox::before{content:''}.ms-Icon--InboxCheck::before{content:''}.ms-Icon--IncidentTriangle::before{content:''}.ms-Icon--IncomingCall::before{content:''}.ms-Icon--IncreaseIndentArrow::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentArrow::before{content:''}.ms-Icon--IncreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentArrowMirrored::before{content:''}.ms-Icon--IncreaseIndentHanging::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentHanging::before{content:''}.ms-Icon--IncreaseIndentHangingMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentHangingMirrored::before{content:''}.ms-Icon--IncreaseIndentLegacy::before{content:''}.ms-Icon--IncreaseIndent::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndent::before{content:''}.ms-Icon--IncreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentMirrored::before{content:''}.ms-Icon--IncreaseIndentText::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentText::before{content:''}.ms-Icon--IncreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentTextMirrored::before{content:''}.ms-Icon--IndentFirstLine::before{content:''}.ms-Icon--Info::before{content:''}.ms-Icon--Info2::before{content:''}.ms-Icon--InformationBarriers::before{content:''}.ms-Icon--InfoSolid::before{content:''}.ms-Icon--InkingTool::before{content:''}.ms-Icon--InputAddress::before{content:''}.ms-Icon--Insert::before{content:''}.ms-Icon--InsertColumnsLeft::before{content:''}.ms-Icon--InsertColumnsRight::before{content:''}.ms-Icon--InsertRowsAbove::before{content:''}.ms-Icon--InsertRowsBelow::before{content:''}.ms-Icon--InsertSignatureLine::before{content:''}.ms-Icon--InsertTextBox::before{content:''}.ms-Icon--Insights::before{content:''}.ms-Icon--Installation::before{content:''}.ms-Icon--InstallToDrive::before{content:''}.ms-Icon--InternalInvestigation::before{content:''}.ms-Icon--InternetSharing::before{content:''}.ms-Icon--IRMForward::before{content:''}[dir=rtl] .ms-Icon--IRMForward::before{content:''}.ms-Icon--IRMForwardMirrored::before{content:''}[dir=rtl] .ms-Icon--IRMForwardMirrored::before{content:''}.ms-Icon--IRMReply::before{content:''}[dir=rtl] .ms-Icon--IRMReply::before{content:''}.ms-Icon--IRMReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--IRMReplyMirrored::before{content:''}.ms-Icon--IssueSolid::before{content:''}.ms-Icon--IssueTracking::before{content:''}[dir=rtl] .ms-Icon--IssueTracking::before{content:''}.ms-Icon--IssueTrackingMirrored::before{content:''}[dir=rtl] .ms-Icon--IssueTrackingMirrored::before{content:''}.ms-Icon--Italic::before{content:''}.ms-Icon--JavaScriptLanguage::before{content:''}.ms-Icon--JoinOnlineMeeting::before{content:''}.ms-Icon--JS::before{content:''}.ms-Icon--KaizalaLogo::before{content:''}.ms-Icon--KeyboardClassic::before{content:''}.ms-Icon--KeyPhraseExtraction::before{content:''}.ms-Icon--KnowledgeArticle::before{content:''}.ms-Icon--Label::before{content:''}.ms-Icon--LadybugSolid::before{content:''}.ms-Icon--Lamp::before{content:''}.ms-Icon--LandscapeOrientation::before{content:''}.ms-Icon--LaptopSecure::before{content:''}.ms-Icon--LaptopSelected::before{content:''}.ms-Icon--LargeGrid::before{content:''}.ms-Icon--LearningTools::before{content:''}.ms-Icon--Leave::before{content:''}.ms-Icon--LeaveUser::before{content:''}.ms-Icon--Library::before{content:''}.ms-Icon--Lifesaver::before{content:''}.ms-Icon--LifesaverLock::before{content:''}.ms-Icon--Light::before{content:''}.ms-Icon--Lightbulb::before{content:''}.ms-Icon--LightningBolt::before{content:''}.ms-Icon--LightWeight::before{content:''}.ms-Icon--Like::before{content:''}.ms-Icon--LikeSolid::before{content:''}.ms-Icon--Line::before{content:''}.ms-Icon--LineChart::before{content:''}.ms-Icon--LineSpacing::before{content:''}.ms-Icon--LineStyle::before{content:''}.ms-Icon--LineThickness::before{content:''}.ms-Icon--Link::before{content:''}.ms-Icon--Link12::before{content:''}.ms-Icon--LinkedDatabase::before{content:''}.ms-Icon--LinkedInLogo::before{content:''}.ms-Icon--List::before{content:''}[dir=rtl] .ms-Icon--List::before{content:''}.ms-Icon--ListMirrored::before{content:''}[dir=rtl] .ms-Icon--ListMirrored::before{content:''}.ms-Icon--LiveSite::before{content:''}.ms-Icon--LocaleLanguage::before{content:''}.ms-Icon--Location::before{content:''}.ms-Icon--LocationCircle::before{content:''}.ms-Icon--LocationDot::before{content:''}.ms-Icon--LocationFill::before{content:''}.ms-Icon--LocationOutline::before{content:''}.ms-Icon--Lock::before{content:''}.ms-Icon--Lock12::before{content:''}.ms-Icon--LockSolid::before{content:''}.ms-Icon--LogRemove::before{content:''}.ms-Icon--LookupEntities::before{content:''}.ms-Icon--LowerBrightness::before{content:''}.ms-Icon--LyncLogo::before{content:''}.ms-Icon--M365InvoicingLogo::before{content:''}.ms-Icon--MachineLearning::before{content:''}.ms-Icon--Mail::before{content:''}.ms-Icon--MailAlert::before{content:''}.ms-Icon--MailAttached::before{content:''}.ms-Icon--MailCheck::before{content:''}.ms-Icon--MailFill::before{content:''}.ms-Icon--MailForward::before{content:''}[dir=rtl] .ms-Icon--MailForward::before{content:''}.ms-Icon--MailForwardMirrored::before{content:''}[dir=rtl] .ms-Icon--MailForwardMirrored::before{content:''}.ms-Icon--MailLowImportance::before{content:''}.ms-Icon--MailOptions::before{content:''}.ms-Icon--MailPause::before{content:''}.ms-Icon--MailReminder::before{content:''}.ms-Icon--MailRepeat::before{content:''}.ms-Icon--MailReplyAll::before{content:''}[dir=rtl] .ms-Icon--MailReplyAll::before{content:''}.ms-Icon--MailReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--MailReplyAllMirrored::before{content:''}.ms-Icon--MailReply::before{content:''}[dir=rtl] .ms-Icon--MailReply::before{content:''}.ms-Icon--MailReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--MailReplyMirrored::before{content:''}.ms-Icon--MailSchedule::before{content:''}.ms-Icon--MailSolid::before{content:''}.ms-Icon--MailTentative::before{content:''}[dir=rtl] .ms-Icon--MailTentative::before{content:''}.ms-Icon--MailTentativeMirrored::before{content:''}[dir=rtl] .ms-Icon--MailTentativeMirrored::before{content:''}.ms-Icon--MailUndelivered::before{content:''}.ms-Icon--ManagerSelfService::before{content:''}.ms-Icon--Manufacturing::before{content:''}.ms-Icon--MapDirections::before{content:''}.ms-Icon--MapLayers::before{content:''}.ms-Icon--MapPin::before{content:''}.ms-Icon--MapPin12::before{content:''}.ms-Icon--MapPinSolid::before{content:''}.ms-Icon--MarkAsProtected::before{content:''}.ms-Icon--MarkDownLanguage::before{content:''}.ms-Icon--Market::before{content:''}.ms-Icon--MarketDown::before{content:''}.ms-Icon--MasterDatabase::before{content:''}.ms-Icon--MaximumValue::before{content:''}.ms-Icon--Medal::before{content:''}.ms-Icon--MedalSolid::before{content:''}.ms-Icon--Media::before{content:''}.ms-Icon--MediaAdd::before{content:''}.ms-Icon--Medical::before{content:''}.ms-Icon--Megaphone::before{content:''}.ms-Icon--MegaphoneSolid::before{content:''}.ms-Icon--Memo::before{content:''}.ms-Icon--Merge::before{content:''}.ms-Icon--MergeDuplicate::before{content:''}.ms-Icon--Message::before{content:''}.ms-Icon--MessageFill::before{content:''}.ms-Icon--MessageFriendRequest::before{content:''}.ms-Icon--MicOff::before{content:''}.ms-Icon--MicOff2::before{content:''}.ms-Icon--Microphone::before{content:''}.ms-Icon--MicrosoftFlowLogo::before{content:''}.ms-Icon--MicrosoftStaffhubLogo::before{content:''}.ms-Icon--MicrosoftTranslatorLogo::before{content:''}.ms-Icon--MicrosoftTranslatorLogoBlue::before{content:''}.ms-Icon--MicrosoftTranslatorLogoGreen::before{content:''}.ms-Icon--MiniContract::before{content:''}[dir=rtl] .ms-Icon--MiniContract::before{content:''}.ms-Icon--MiniContractMirrored::before{content:''}[dir=rtl] .ms-Icon--MiniContractMirrored::before{content:''}.ms-Icon--MiniExpand::before{content:''}[dir=rtl] .ms-Icon--MiniExpand::before{content:''}.ms-Icon--MiniExpandMirrored::before{content:''}[dir=rtl] .ms-Icon--MiniExpandMirrored::before{content:''}.ms-Icon--MiniLink::before{content:''}.ms-Icon--MinimumValue::before{content:''}.ms-Icon--MobileReport::before{content:''}.ms-Icon--MobileSelected::before{content:''}.ms-Icon--ModelingView::before{content:''}.ms-Icon--Money::before{content:''}.ms-Icon--More::before{content:''}.ms-Icon--MoreSports::before{content:''}.ms-Icon--MoreVertical::before{content:''}.ms-Icon--MountainClimbing::before{content:''}.ms-Icon--Move::before{content:''}.ms-Icon--Movers::before{content:''}.ms-Icon--MoveToFolder::before{content:''}.ms-Icon--MSNLogo::before{content:''}.ms-Icon--MSNVideos::before{content:''}.ms-Icon--MSNVideosSolid::before{content:''}.ms-Icon--MultiSelect::before{content:''}[dir=rtl] .ms-Icon--MultiSelect::before{content:''}.ms-Icon--MultiSelectMirrored::before{content:''}[dir=rtl] .ms-Icon--MultiSelectMirrored::before{content:''}.ms-Icon--MusicInCollection::before{content:''}.ms-Icon--MusicInCollectionFill::before{content:''}.ms-Icon--MusicNote::before{content:''}.ms-Icon--MuteChat::before{content:''}.ms-Icon--MyMoviesTV::before{content:''}.ms-Icon--MyNetwork::before{content:''}.ms-Icon--Nav2DMapView::before{content:''}.ms-Icon--NavigateBack::before{content:''}[dir=rtl] .ms-Icon--NavigateBack::before{content:''}.ms-Icon--NavigateBackMirrored::before{content:''}[dir=rtl] .ms-Icon--NavigateBackMirrored::before{content:''}.ms-Icon--NavigateExternalInline::before{content:''}.ms-Icon--NavigateForward::before{content:''}[dir=rtl] .ms-Icon--NavigateForward::before{content:''}.ms-Icon--NavigateForwardMirrored::before{content:''}[dir=rtl] .ms-Icon--NavigateForwardMirrored::before{content:''}.ms-Icon--NavigationFlipper::before{content:''}.ms-Icon--NetworkTower::before{content:''}.ms-Icon--NewAnalyticsQuery::before{content:''}.ms-Icon--NewFolder::before{content:''}.ms-Icon--NewMail::before{content:''}.ms-Icon--News::before{content:''}.ms-Icon--NewsSearch::before{content:''}.ms-Icon--NewTeamProject::before{content:''}.ms-Icon--Next::before{content:''}.ms-Icon--NormalWeight::before{content:''}.ms-Icon--NoteForward::before{content:''}.ms-Icon--NotePinned::before{content:''}.ms-Icon--NoteReply::before{content:''}.ms-Icon--NotExecuted::before{content:''}.ms-Icon--NotImpactedSolid::before{content:''}.ms-Icon--NugetLogo::before{content:''}.ms-Icon--NUIFace::before{content:''}.ms-Icon--NumberedList::before{content:''}[dir=rtl] .ms-Icon--NumberedList::before{content:''}.ms-Icon--NumberedListMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListMirrored::before{content:''}.ms-Icon--NumberedListNumber::before{content:''}[dir=rtl] .ms-Icon--NumberedListNumber::before{content:''}.ms-Icon--NumberedListNumberMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListNumberMirrored::before{content:''}.ms-Icon--NumberedListText::before{content:''}[dir=rtl] .ms-Icon--NumberedListText::before{content:''}.ms-Icon--NumberedListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListTextMirrored::before{content:''}.ms-Icon--NumberField::before{content:''}.ms-Icon--NumberSequence::before{content:''}.ms-Icon--NumberSymbol::before{content:''}.ms-Icon--Octagon::before{content:''}.ms-Icon--OEM::before{content:''}.ms-Icon--OfficeAddinsLogo::before{content:''}.ms-Icon--OfficeAssistantLogo::before{content:''}.ms-Icon--OfficeChat::before{content:''}.ms-Icon--OfficeChatSolid::before{content:''}.ms-Icon--OfficeFormsLogo::before{content:''}.ms-Icon--OfficeFormsLogo16::before{content:''}.ms-Icon--OfficeFormsLogo24::before{content:''}.ms-Icon--OfficeFormsLogoFill::before{content:''}.ms-Icon--OfficeFormsLogoFill16::before{content:''}.ms-Icon--OfficeFormsLogoFill24::before{content:''}.ms-Icon--OfficeFormsLogoInverse::before{content:''}.ms-Icon--OfficeFormsLogoInverse16::before{content:''}.ms-Icon--OfficeFormsLogoInverse24::before{content:''}.ms-Icon--OfficeLogo::before{content:''}.ms-Icon--OfficeStoreLogo::before{content:''}.ms-Icon--OfficeVideoLogo::before{content:''}.ms-Icon--OfficeVideoLogoFill::before{content:''}.ms-Icon--OfficeVideoLogoInverse::before{content:''}.ms-Icon--OfflineOneDriveParachute::before{content:''}.ms-Icon--OfflineOneDriveParachuteDisabled::before{content:''}.ms-Icon--OfflineStorage::before{content:''}.ms-Icon--OfflineStorageSolid::before{content:''}.ms-Icon--Onboarding::before{content:''}.ms-Icon--OneDriveAdd::before{content:''}.ms-Icon--OneDriveFolder16::before{content:''}.ms-Icon--OneDriveLogo::before{content:''}.ms-Icon--OneNoteEduLogoInverse::before{content:''}.ms-Icon--OneNoteLogo::before{content:''}.ms-Icon--OneNoteLogo16::before{content:''}.ms-Icon--OneNoteLogoFill::before{content:''}.ms-Icon--OneNoteLogoFill16::before{content:''}.ms-Icon--OneNoteLogoInverse::before{content:''}.ms-Icon--OneNoteLogoInverse16::before{content:''}.ms-Icon--OpenEnrollment::before{content:''}.ms-Icon--OpenFile::before{content:''}.ms-Icon--OpenFolderHorizontal::before{content:''}.ms-Icon--OpenInNewTab::before{content:''}.ms-Icon--OpenInNewWindow::before{content:''}.ms-Icon--OpenPane::before{content:''}[dir=rtl] .ms-Icon--OpenPane::before{content:''}.ms-Icon--OpenPaneMirrored::before{content:''}[dir=rtl] .ms-Icon--OpenPaneMirrored::before{content:''}.ms-Icon--OpenSource::before{content:''}.ms-Icon--OpenWith::before{content:''}[dir=rtl] .ms-Icon--OpenWith::before{content:''}.ms-Icon--OpenWithMirrored::before{content:''}[dir=rtl] .ms-Icon--OpenWithMirrored::before{content:''}.ms-Icon--Org::before{content:''}.ms-Icon--Orientation::before{content:''}.ms-Icon--Orientation2::before{content:''}.ms-Icon--OutlookLogo::before{content:''}.ms-Icon--OutlookLogo16::before{content:''}.ms-Icon--OutlookLogoFill::before{content:''}.ms-Icon--OutlookLogoFill16::before{content:''}.ms-Icon--OutlookLogoInverse::before{content:''}.ms-Icon--OutlookLogoInverse16::before{content:''}.ms-Icon--OutOfOffice::before{content:''}.ms-Icon--Package::before{content:''}.ms-Icon--Packages::before{content:''}.ms-Icon--Padding::before{content:''}.ms-Icon--PaddingBottom::before{content:''}.ms-Icon--PaddingLeft::before{content:''}.ms-Icon--PaddingRight::before{content:''}.ms-Icon--PaddingTop::before{content:''}.ms-Icon--Page::before{content:''}.ms-Icon--PageAdd::before{content:''}.ms-Icon--PageArrowRight::before{content:''}.ms-Icon--PageCheckedin::before{content:''}.ms-Icon--PageCheckedOut::before{content:''}.ms-Icon--PageData::before{content:''}.ms-Icon--PageEdit::before{content:''}.ms-Icon--PageHeader::before{content:''}.ms-Icon--PageHeaderEdit::before{content:''}.ms-Icon--PageLeft::before{content:''}.ms-Icon--PageLink::before{content:''}.ms-Icon--PageList::before{content:''}.ms-Icon--PageListFilter::before{content:''}.ms-Icon--PageListSolid::before{content:''}[dir=rtl] .ms-Icon--PageListSolid::before{content:''}.ms-Icon--PageListMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--PageListMirroredSolid::before{content:''}.ms-Icon--PageLock::before{content:''}.ms-Icon--PageRemove::before{content:''}.ms-Icon--PageRight::before{content:''}.ms-Icon--PageShared::before{content:''}.ms-Icon--PageSolid::before{content:''}.ms-Icon--PanoIndicator::before{content:''}.ms-Icon--Parachute::before{content:''}.ms-Icon--ParachuteSolid::before{content:''}.ms-Icon--Parameter::before{content:''}.ms-Icon--ParkingLocation::before{content:''}[dir=rtl] .ms-Icon--ParkingLocation::before{content:''}.ms-Icon--ParkingLocationMirrored::before{content:''}[dir=rtl] .ms-Icon--ParkingLocationMirrored::before{content:''}.ms-Icon--ParkingSolid::before{content:''}[dir=rtl] .ms-Icon--ParkingSolid::before{content:''}.ms-Icon--ParkingMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--ParkingMirroredSolid::before{content:''}.ms-Icon--PartlyCloudyDay::before{content:''}.ms-Icon--PartlyCloudyNight::before{content:''}.ms-Icon--PartyLeader::before{content:''}.ms-Icon--PassiveAuthentication::before{content:''}.ms-Icon--PasswordField::before{content:''}.ms-Icon--Paste::before{content:''}.ms-Icon--PasteAsCode::before{content:''}.ms-Icon--PasteAsText::before{content:''}.ms-Icon--Pause::before{content:''}.ms-Icon--PaymentCard::before{content:''}.ms-Icon--PC1::before{content:''}.ms-Icon--PDF::before{content:''}.ms-Icon--PencilReply::before{content:''}.ms-Icon--Pentagon::before{content:''}.ms-Icon--PenWorkspace::before{content:''}.ms-Icon--People::before{content:''}.ms-Icon--PeopleAdd::before{content:''}.ms-Icon--PeopleAlert::before{content:''}.ms-Icon--PeopleBlock::before{content:''}.ms-Icon--PeoplePause::before{content:''}.ms-Icon--PeopleRepeat::before{content:''}.ms-Icon--Permissions::before{content:''}.ms-Icon--PermissionsSolid::before{content:''}.ms-Icon--Personalize::before{content:''}.ms-Icon--Phishing::before{content:''}.ms-Icon--Phone::before{content:''}.ms-Icon--Photo::before{content:''}.ms-Icon--Photo2::before{content:''}.ms-Icon--Photo2Add::before{content:''}.ms-Icon--Photo2Fill::before{content:''}.ms-Icon--Photo2Remove::before{content:''}.ms-Icon--PhotoCollection::before{content:''}.ms-Icon--PhotoError::before{content:''}.ms-Icon--PhotoVideoMedia::before{content:''}.ms-Icon--Picture::before{content:''}.ms-Icon--PictureCenter::before{content:''}.ms-Icon--PictureFill::before{content:''}.ms-Icon--PictureLibrary::before{content:''}.ms-Icon--PicturePosition::before{content:''}.ms-Icon--PictureStretch::before{content:''}.ms-Icon--PictureTile::before{content:''}.ms-Icon--PieDouble::before{content:''}.ms-Icon--PieSingle::before{content:''}.ms-Icon--PieSingleSolid::before{content:''}.ms-Icon--Pill::before{content:''}.ms-Icon--Pin::before{content:''}.ms-Icon--Pinned::before{content:''}.ms-Icon--PinnedFill::before{content:''}.ms-Icon--PinnedSolid::before{content:''}.ms-Icon--PinSolid12::before{content:''}.ms-Icon--PinSolidOff12::before{content:''}.ms-Icon--PivotChart::before{content:''}.ms-Icon--PlainText::before{content:''}.ms-Icon--PlannerLogo::before{content:''}.ms-Icon--PlanView::before{content:''}.ms-Icon--Play::before{content:''}.ms-Icon--PlaybackRate1x::before{content:''}.ms-Icon--PlayerSettings::before{content:''}.ms-Icon--PlayResume::before{content:''}.ms-Icon--PlayReverse::before{content:''}.ms-Icon--PlayReverseResume::before{content:''}.ms-Icon--PlaySolid::before{content:''}.ms-Icon--Plug::before{content:''}.ms-Icon--PlugConnected::before{content:''}.ms-Icon--PlugDisconnected::before{content:''}.ms-Icon--PlugSolid::before{content:''}.ms-Icon--POI::before{content:''}.ms-Icon--POISolid::before{content:''}.ms-Icon--PollResults::before{content:''}.ms-Icon--PostUpdate::before{content:''}.ms-Icon--PowerApps::before{content:''}.ms-Icon--PowerApps2Logo::before{content:''}.ms-Icon--PowerAppsLogo::before{content:''}.ms-Icon--PowerBILogo::before{content:''}.ms-Icon--PowerBILogo16::before{content:''}.ms-Icon--PowerBILogoBackplate16::before{content:''}.ms-Icon--PowerButton::before{content:''}.ms-Icon--PowerPointDocument::before{content:''}.ms-Icon--PowerPointLogo::before{content:''}.ms-Icon--PowerPointLogo16::before{content:''}.ms-Icon--PowerPointLogoFill::before{content:''}.ms-Icon--PowerPointLogoFill16::before{content:''}.ms-Icon--PowerPointLogoInverse::before{content:''}.ms-Icon--PowerPointLogoInverse16::before{content:''}.ms-Icon--PowerShell::before{content:''}.ms-Icon--PowerShell2::before{content:''}.ms-Icon--Precipitation::before{content:''}.ms-Icon--PresenceChickletVideo::before{content:''}.ms-Icon--Presentation::before{content:''}.ms-Icon--Presentation12::before{content:''}.ms-Icon--Preview::before{content:''}.ms-Icon--PreviewLink::before{content:''}.ms-Icon--Previous::before{content:''}.ms-Icon--PrimaryCalendar::before{content:''}.ms-Icon--Print::before{content:''}.ms-Icon--PrintfaxPrinterFile::before{content:''}.ms-Icon--Processing::before{content:''}.ms-Icon--ProcessingCancel::before{content:''}.ms-Icon--ProcessingPause::before{content:''}.ms-Icon--ProcessingRun::before{content:''}.ms-Icon--ProcessMetaTask::before{content:''}.ms-Icon--Product::before{content:''}.ms-Icon--ProductCatalog::before{content:''}.ms-Icon--ProductionFloorManagement::before{content:''}.ms-Icon--ProductList::before{content:''}.ms-Icon--ProductRelease::before{content:''}.ms-Icon--ProductVariant::before{content:''}.ms-Icon--ProfileSearch::before{content:''}.ms-Icon--ProFootball::before{content:''}.ms-Icon--ProgressLoopInner::before{content:''}.ms-Icon--ProgressLoopOuter::before{content:''}.ms-Icon--ProgressRingDots::before{content:''}.ms-Icon--ProHockey::before{content:''}.ms-Icon--ProjectCollection::before{content:''}.ms-Icon--ProjectDocument::before{content:''}.ms-Icon--ProjectLogo16::before{content:''}.ms-Icon--ProjectLogo32::before{content:''}.ms-Icon--ProjectLogoFill16::before{content:''}.ms-Icon--ProjectLogoFill32::before{content:''}.ms-Icon--ProjectLogoInverse::before{content:''}.ms-Icon--PromotedDatabase::before{content:''}.ms-Icon--ProtectedDocument::before{content:''}.ms-Icon--ProtectionCenterLogo32::before{content:''}.ms-Icon--ProtectRestrict::before{content:''}.ms-Icon--ProvisioningPackage::before{content:''}.ms-Icon--PublicCalendar::before{content:''}.ms-Icon--PublicContactCard::before{content:''}[dir=rtl] .ms-Icon--PublicContactCard::before{content:''}.ms-Icon--PublicContactCardMirrored::before{content:''}[dir=rtl] .ms-Icon--PublicContactCardMirrored::before{content:''}.ms-Icon--PublicEmail::before{content:''}.ms-Icon--PublicFolder::before{content:''}.ms-Icon--PublishContent::before{content:''}.ms-Icon--PublishCourse::before{content:''}.ms-Icon--PublisherLogo::before{content:''}.ms-Icon--PublisherLogo16::before{content:''}.ms-Icon--PublisherLogoFill::before{content:''}.ms-Icon--PublisherLogoFill16::before{content:''}.ms-Icon--PublisherLogoInverse16::before{content:''}.ms-Icon--Puzzle::before{content:''}.ms-Icon--PY::before{content:''}.ms-Icon--PythonLanguage::before{content:''}.ms-Icon--QandA::before{content:''}.ms-Icon--QandAMirror::before{content:''}.ms-Icon--QRCode::before{content:''}.ms-Icon--QuadColumn::before{content:''}.ms-Icon--Quantity::before{content:''}.ms-Icon--QuarterCircle::before{content:''}.ms-Icon--QueryList::before{content:''}.ms-Icon--Questionnaire::before{content:''}[dir=rtl] .ms-Icon--Questionnaire::before{content:''}.ms-Icon--QuestionnaireMirrored::before{content:''}[dir=rtl] .ms-Icon--QuestionnaireMirrored::before{content:''}.ms-Icon--QuickNote::before{content:''}.ms-Icon--QuickNoteSolid::before{content:''}.ms-Icon--R::before{content:''}.ms-Icon--RadioBtnOff::before{content:''}.ms-Icon--RadioBtnOn::before{content:''}.ms-Icon--RadioBullet::before{content:''}.ms-Icon--Rain::before{content:''}.ms-Icon--RainShowersDay::before{content:''}.ms-Icon--RainShowersNight::before{content:''}.ms-Icon--RainSnow::before{content:''}.ms-Icon--RawSource::before{content:''}.ms-Icon--Read::before{content:''}.ms-Icon--ReadingMode::before{content:''}.ms-Icon--ReadingModeSolid::before{content:''}.ms-Icon--ReadOutLoud::before{content:''}.ms-Icon--RealEstate::before{content:''}.ms-Icon--ReceiptCheck::before{content:''}.ms-Icon--ReceiptForward::before{content:''}.ms-Icon--ReceiptReply::before{content:''}.ms-Icon--ReceiptTentative::before{content:''}[dir=rtl] .ms-Icon--ReceiptTentative::before{content:''}.ms-Icon--ReceiptTentativeMirrored::before{content:''}[dir=rtl] .ms-Icon--ReceiptTentativeMirrored::before{content:''}.ms-Icon--ReceiptUndelivered::before{content:''}.ms-Icon--Recent::before{content:''}.ms-Icon--Record2::before{content:''}.ms-Icon--RecruitmentManagement::before{content:''}.ms-Icon--RectangleShape::before{content:''}.ms-Icon--RectangleShapeSolid::before{content:''}.ms-Icon--RectangularClipping::before{content:''}.ms-Icon--RecurringEvent::before{content:''}.ms-Icon--RecurringTask::before{content:''}.ms-Icon--RecycleBin::before{content:''}.ms-Icon--Redeploy::before{content:''}.ms-Icon--RedEye::before{content:''}.ms-Icon--RedEye12::before{content:''}.ms-Icon--Redo::before{content:''}.ms-Icon--Refresh::before{content:''}.ms-Icon--RegistryEditor::before{content:''}.ms-Icon--Relationship::before{content:''}.ms-Icon--ReleaseDefinition::before{content:''}.ms-Icon--ReleaseGate::before{content:''}.ms-Icon--ReleaseGateCheck::before{content:''}.ms-Icon--ReleaseGateError::before{content:''}.ms-Icon--ReminderGroup::before{content:''}.ms-Icon--ReminderPerson::before{content:''}.ms-Icon--ReminderTime::before{content:''}.ms-Icon--Remote::before{content:''}.ms-Icon--Remove::before{content:''}.ms-Icon--RemoveContent::before{content:''}.ms-Icon--RemoveEvent::before{content:''}.ms-Icon--RemoveFilter::before{content:''}.ms-Icon--RemoveFromShoppingList::before{content:''}.ms-Icon--RemoveFromTrash::before{content:''}.ms-Icon--RemoveLink::before{content:''}.ms-Icon--RemoveLinkChain::before{content:''}.ms-Icon--RemoveLinkX::before{content:''}.ms-Icon--RemoveOccurrence::before{content:''}.ms-Icon--Rename::before{content:''}.ms-Icon--RenewalCurrent::before{content:''}.ms-Icon--RenewalFuture::before{content:''}.ms-Icon--ReopenPages::before{content:''}.ms-Icon--Repair::before{content:''}.ms-Icon--RepeatAll::before{content:''}.ms-Icon--RepeatHeaderRows::before{content:''}.ms-Icon--RepeatOne::before{content:''}.ms-Icon--ReplyAllAlt::before{content:''}.ms-Icon--ReplyAll::before{content:''}[dir=rtl] .ms-Icon--ReplyAll::before{content:''}.ms-Icon--ReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyAllMirrored::before{content:''}.ms-Icon--ReplyAlt::before{content:''}.ms-Icon--Reply::before{content:''}[dir=rtl] .ms-Icon--Reply::before{content:''}.ms-Icon--ReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyMirrored::before{content:''}.ms-Icon--Repo::before{content:''}.ms-Icon--ReportAdd::before{content:''}.ms-Icon--ReportDocument::before{content:''}.ms-Icon--ReportHacked::before{content:''}.ms-Icon--ReportLibrary::before{content:''}[dir=rtl] .ms-Icon--ReportLibrary::before{content:''}.ms-Icon--ReportLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--ReportLibraryMirrored::before{content:''}.ms-Icon--ReportLock::before{content:''}.ms-Icon--ReportWarning::before{content:''}.ms-Icon--RepoSolid::before{content:''}.ms-Icon--Rerun::before{content:''}.ms-Icon--ReservationOrders::before{content:''}.ms-Icon--Reset::before{content:''}.ms-Icon--ResetDevice::before{content:''}.ms-Icon--ResponsesMenu::before{content:''}.ms-Icon--ReturnKey::before{content:''}.ms-Icon--ReturnToSession::before{content:''}.ms-Icon--ReviewRequestSolid::before{content:''}[dir=rtl] .ms-Icon--ReviewRequestSolid::before{content:''}.ms-Icon--ReviewRequestMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--ReviewRequestMirroredSolid::before{content:''}.ms-Icon--ReviewResponseSolid::before{content:''}.ms-Icon--ReviewSolid::before{content:''}.ms-Icon--RevToggleKey::before{content:''}.ms-Icon--Rewind::before{content:''}.ms-Icon--Ribbon::before{content:''}.ms-Icon--RibbonSolid::before{content:''}.ms-Icon--RightDoubleQuote::before{content:''}.ms-Icon--RightTriangle::before{content:''}.ms-Icon--Ringer::before{content:''}.ms-Icon--RingerOff::before{content:''}.ms-Icon--RingerRemove::before{content:''}.ms-Icon--RingerSolid::before{content:''}.ms-Icon--Robot::before{content:''}.ms-Icon--Rocket::before{content:''}.ms-Icon--Room::before{content:''}.ms-Icon--Rotate::before{content:''}.ms-Icon--Rotate90Clockwise::before{content:''}.ms-Icon--Rotate90CounterClockwise::before{content:''}.ms-Icon--RowsChild::before{content:''}.ms-Icon--RowsGroup::before{content:''}.ms-Icon--Rugby::before{content:''}.ms-Icon--Running::before{content:''}.ms-Icon--Sad::before{content:''}.ms-Icon--SadSolid::before{content:''}.ms-Icon--Save::before{content:''}.ms-Icon--SaveAll::before{content:''}.ms-Icon--SaveAndClose::before{content:''}.ms-Icon--SaveAs::before{content:''}.ms-Icon--SaveTemplate::before{content:''}.ms-Icon--SaveToMobile::before{content:''}.ms-Icon--Savings::before{content:''}.ms-Icon--ScaleUp::before{content:''}.ms-Icon--ScaleVolume::before{content:''}.ms-Icon--ScatterChart::before{content:''}.ms-Icon--ScheduleEventAction::before{content:''}.ms-Icon--SchoolDataSyncLogo::before{content:''}.ms-Icon--ScopeTemplate::before{content:''}.ms-Icon--ScreenCast::before{content:''}.ms-Icon--Script::before{content:''}.ms-Icon--ScrollUpDown::before{content:''}.ms-Icon--SDCard::before{content:''}.ms-Icon--Search::before{content:''}.ms-Icon--SearchAndApps::before{content:''}.ms-Icon--SearchBookmark::before{content:''}.ms-Icon--SearchCalendar::before{content:''}.ms-Icon--SearchData::before{content:''}.ms-Icon--SearchIssue::before{content:''}[dir=rtl] .ms-Icon--SearchIssue::before{content:''}.ms-Icon--SearchIssueMirrored::before{content:''}[dir=rtl] .ms-Icon--SearchIssueMirrored::before{content:''}.ms-Icon--SearchNearby::before{content:''}.ms-Icon--SecondaryNav::before{content:''}.ms-Icon--Section::before{content:''}.ms-Icon--Sections::before{content:''}.ms-Icon--SecurityGroup::before{content:''}.ms-Icon--SeeDo::before{content:''}.ms-Icon--SelectAll::before{content:''}.ms-Icon--Sell::before{content:''}.ms-Icon--SemiboldWeight::before{content:''}.ms-Icon--Send::before{content:''}[dir=rtl] .ms-Icon--Send::before{content:''}.ms-Icon--SendMirrored::before{content:''}[dir=rtl] .ms-Icon--SendMirrored::before{content:''}.ms-Icon--SentimentAnalysis::before{content:''}.ms-Icon--Separator::before{content:''}.ms-Icon--Server::before{content:''}.ms-Icon--ServerEnviroment::before{content:''}.ms-Icon--ServerProcesses::before{content:''}.ms-Icon--ServiceOff::before{content:''}.ms-Icon--SetAction::before{content:''}.ms-Icon--Settings::before{content:''}.ms-Icon--ShakeDevice::before{content:''}.ms-Icon--Shapes::before{content:''}.ms-Icon--ShapeSolid::before{content:''}.ms-Icon--Share::before{content:''}.ms-Icon--SharedDatabase::before{content:''}.ms-Icon--ShareiOS::before{content:''}.ms-Icon--SharepointAppIcon16::before{content:''}.ms-Icon--SharepointLogo::before{content:''}.ms-Icon--SharepointLogoFill::before{content:''}.ms-Icon--SharepointLogoInverse::before{content:''}.ms-Icon--Shield::before{content:''}.ms-Icon--ShieldAlert::before{content:''}.ms-Icon--ShieldSolid::before{content:''}.ms-Icon--Shirt::before{content:''}.ms-Icon--Shop::before{content:''}.ms-Icon--ShoppingCart::before{content:''}.ms-Icon--ShoppingCartSolid::before{content:''}.ms-Icon--ShopServer::before{content:''}.ms-Icon--ShowGrid::before{content:''}.ms-Icon--ShowResults::before{content:''}[dir=rtl] .ms-Icon--ShowResults::before{content:''}.ms-Icon--ShowResultsMirrored::before{content:''}[dir=rtl] .ms-Icon--ShowResultsMirrored::before{content:''}.ms-Icon--ShowTimeAs::before{content:''}.ms-Icon--SidePanel::before{content:''}[dir=rtl] .ms-Icon--SidePanel::before{content:''}.ms-Icon--SidePanelMirrored::before{content:''}[dir=rtl] .ms-Icon--SidePanelMirrored::before{content:''}.ms-Icon--Signin::before{content:''}.ms-Icon--SignOut::before{content:''}.ms-Icon--SingleBookmark::before{content:''}.ms-Icon--SingleBookmarkSolid::before{content:''}.ms-Icon--SingleColumn::before{content:''}.ms-Icon--SingleColumnEdit::before{content:''}.ms-Icon--SIPMove::before{content:''}.ms-Icon--SiteScan::before{content:''}.ms-Icon--SizeLegacy::before{content:''}.ms-Icon--SkipBack10::before{content:''}.ms-Icon--SkipForward30::before{content:''}.ms-Icon--SkiResorts::before{content:''}.ms-Icon--SkypeArrow::before{content:''}.ms-Icon--SkypeCheck::before{content:''}.ms-Icon--SkypeCircleArrow::before{content:''}.ms-Icon--SkypeCircleCheck::before{content:''}.ms-Icon--SkypeCircleClock::before{content:''}.ms-Icon--SkypeCircleMinus::before{content:''}.ms-Icon--SkypeCircleSlash::before{content:''}.ms-Icon--SkypeClock::before{content:''}.ms-Icon--SkypeForBusinessLogo::before{content:''}.ms-Icon--SkypeForBusinessLogo16::before{content:''}.ms-Icon--SkypeForBusinessLogoFill::before{content:''}.ms-Icon--SkypeForBusinessLogoFill16::before{content:''}.ms-Icon--SkypeLogo::before{content:''}.ms-Icon--SkypeLogo16::before{content:''}.ms-Icon--SkypeMessage::before{content:''}.ms-Icon--SkypeMinus::before{content:''}.ms-Icon--SkypeSlash::before{content:''}.ms-Icon--Slider::before{content:''}.ms-Icon--SliderHandleSize::before{content:''}.ms-Icon--SliderThumb::before{content:''}.ms-Icon--Slideshow::before{content:''}.ms-Icon--SmartGlassRemote::before{content:''}.ms-Icon--SnapToGrid::before{content:''}.ms-Icon--Snooze::before{content:''}.ms-Icon--Snow::before{content:''}.ms-Icon--Snowflake::before{content:''}.ms-Icon--SnowShowerDay::before{content:''}.ms-Icon--SnowShowerNight::before{content:''}.ms-Icon--Soccer::before{content:''}.ms-Icon--SocialListeningLogo::before{content:''}.ms-Icon--Sort::before{content:''}.ms-Icon--SortDown::before{content:''}.ms-Icon--SortLines::before{content:''}.ms-Icon--SortUp::before{content:''}.ms-Icon--Source::before{content:''}.ms-Icon--Spacer::before{content:''}.ms-Icon--Speakers::before{content:''}.ms-Icon--SpecialEvent::before{content:''}.ms-Icon--SpeedHigh::before{content:''}.ms-Icon--Spelling::before{content:''}.ms-Icon--Split::before{content:''}.ms-Icon--SplitObject::before{content:''}.ms-Icon--Sprint::before{content:''}.ms-Icon--Squalls::before{content:''}.ms-Icon--SquareShape::before{content:''}.ms-Icon--SquareShapeSolid::before{content:''}.ms-Icon--Stack::before{content:''}.ms-Icon--StackColumnChart::before{content:''}.ms-Icon--StackedBarChart::before{content:''}.ms-Icon--StackedColumnChart2::before{content:''}.ms-Icon--StackedColumnChart2Fill::before{content:''}.ms-Icon--StackedLineChart::before{content:''}.ms-Icon--StackIndicator::before{content:''}.ms-Icon--StaffNotebookLogo16::before{content:''}.ms-Icon--StaffNotebookLogo32::before{content:''}.ms-Icon--StaffNotebookLogoFill16::before{content:''}.ms-Icon--StaffNotebookLogoFill32::before{content:''}.ms-Icon--StaffNotebookLogoInverted16::before{content:''}.ms-Icon--StaffNotebookLogoInverted32::before{content:''}.ms-Icon--Starburst::before{content:''}.ms-Icon--StarburstSolid::before{content:''}.ms-Icon--StatusCircleBlock::before{content:''}.ms-Icon--StatusCircleBlock2::before{content:''}.ms-Icon--StatusCircleCheckmark::before{content:''}.ms-Icon--StatusCircleErrorX::before{content:''}.ms-Icon--StatusCircleExclamation::before{content:''}.ms-Icon--StatusCircleInfo::before{content:''}.ms-Icon--StatusCircleInner::before{content:''}.ms-Icon--StatusCircleOuter::before{content:''}.ms-Icon--StatusCircleQuestionMark::before{content:''}.ms-Icon--StatusCircleRing::before{content:''}.ms-Icon--StatusCircleSync::before{content:''}.ms-Icon--StatusErrorFull::before{content:''}.ms-Icon--StatusTriangle::before{content:''}.ms-Icon--StatusTriangleExclamation::before{content:''}.ms-Icon--StatusTriangleInner::before{content:''}.ms-Icon--StatusTriangleOuter::before{content:''}.ms-Icon--Step::before{content:''}.ms-Icon--StepInsert::before{content:''}.ms-Icon--StepShared::before{content:''}.ms-Icon--StepSharedAdd::before{content:''}.ms-Icon--StepSharedInsert::before{content:''}.ms-Icon--StickyNotesOutlineAppIcon::before{content:''}.ms-Icon--StickyNotesSolidAppIcon::before{content:''}.ms-Icon--StockDown::before{content:''}.ms-Icon--StockUp::before{content:''}.ms-Icon--Stop::before{content:''}.ms-Icon--StopSolid::before{content:''}.ms-Icon--Stopwatch::before{content:''}.ms-Icon--StorageOptical::before{content:''}.ms-Icon--StoreLogo16::before{content:''}.ms-Icon--StoreLogoMed20::before{content:''}.ms-Icon--Storyboard::before{content:''}.ms-Icon--Streaming::before{content:''}.ms-Icon--StreamingOff::before{content:''}.ms-Icon--StreamLogo::before{content:''}.ms-Icon--Street::before{content:''}.ms-Icon--StreetsideSplitMinimize::before{content:''}.ms-Icon--Strikethrough::before{content:''}.ms-Icon--Subscribe::before{content:''}.ms-Icon--Subscript::before{content:''}.ms-Icon--SubstitutionsIn::before{content:''}.ms-Icon--Suitcase::before{content:''}.ms-Icon--SunAdd::before{content:''}.ms-Icon--Sunny::before{content:''}.ms-Icon--SunQuestionMark::before{content:''}.ms-Icon--Superscript::before{content:''}.ms-Icon--SurveyQuestions::before{content:''}.ms-Icon--SwayLogo16::before{content:''}.ms-Icon--SwayLogo32::before{content:''}.ms-Icon--SwayLogoFill16::before{content:''}.ms-Icon--SwayLogoFill32::before{content:''}.ms-Icon--SwayLogoInverse::before{content:''}.ms-Icon--Switch::before{content:''}.ms-Icon--SwitcherStartEnd::before{content:''}.ms-Icon--SwitchUser::before{content:''}.ms-Icon--Sync::before{content:''}.ms-Icon--SyncFolder::before{content:''}.ms-Icon--SyncOccurence::before{content:''}.ms-Icon--SyncStatus::before{content:''}.ms-Icon--SyncStatusSolid::before{content:''}.ms-Icon--SyncToPC::before{content:''}.ms-Icon--System::before{content:''}.ms-Icon--Tab::before{content:''}.ms-Icon--TabCenter::before{content:''}.ms-Icon--Table::before{content:''}.ms-Icon--TableBrandedColumn::before{content:''}.ms-Icon--TableBrandedRow::before{content:''}.ms-Icon--TableComputed::before{content:''}.ms-Icon--TableFirstColumn::before{content:''}.ms-Icon--TableGroup::before{content:''}.ms-Icon--TableHeaderRow::before{content:''}.ms-Icon--TableLastColumn::before{content:''}.ms-Icon--TableLink::before{content:''}.ms-Icon--Tablet::before{content:''}.ms-Icon--TabletMode::before{content:''}.ms-Icon--TableTotalRow::before{content:''}.ms-Icon--TabletSelected::before{content:''}.ms-Icon--TabOneColumn::before{content:''}.ms-Icon--TabThreeColumn::before{content:''}.ms-Icon--TabTwoColumn::before{content:''}.ms-Icon--Tag::before{content:''}.ms-Icon--TagGroup::before{content:''}.ms-Icon--TagSolid::before{content:''}.ms-Icon--TagUnknown::before{content:''}.ms-Icon--TagUnknown12::before{content:''}.ms-Icon--TagUnknown12Mirror::before{content:''}.ms-Icon--TagUnknownMirror::before{content:''}.ms-Icon--Taskboard::before{content:''}.ms-Icon--TaskGroup::before{content:''}[dir=rtl] .ms-Icon--TaskGroup::before{content:''}.ms-Icon--TaskGroupMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskGroupMirrored::before{content:''}.ms-Icon--TaskList::before{content:''}.ms-Icon--TaskLogo::before{content:''}.ms-Icon--TaskManager::before{content:''}[dir=rtl] .ms-Icon--TaskManager::before{content:''}.ms-Icon--TaskManagerMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskManagerMirrored::before{content:''}.ms-Icon--TaskSolid::before{content:''}.ms-Icon--Taxi::before{content:''}.ms-Icon--TeamFavorite::before{content:''}.ms-Icon--TeamsLogo::before{content:''}.ms-Icon--TeamsLogo16::before{content:''}.ms-Icon--TeamsLogoFill::before{content:''}.ms-Icon--TeamsLogoFill16::before{content:''}.ms-Icon--TeamsLogoInverse::before{content:''}.ms-Icon--Teamwork::before{content:''}.ms-Icon--Teeth::before{content:''}.ms-Icon--Telemarketer::before{content:''}.ms-Icon--TemporaryUser::before{content:''}.ms-Icon--Tennis::before{content:''}.ms-Icon--TestAutoSolid::before{content:''}.ms-Icon--TestBeaker::before{content:''}.ms-Icon--TestBeakerSolid::before{content:''}.ms-Icon--TestCase::before{content:''}.ms-Icon--TestExploreSolid::before{content:''}.ms-Icon--TestImpactSolid::before{content:''}.ms-Icon--TestParameter::before{content:''}.ms-Icon--TestPlan::before{content:''}.ms-Icon--TestStep::before{content:''}.ms-Icon--TestSuite::before{content:''}.ms-Icon--TestUserSolid::before{content:''}.ms-Icon--TextAlignBottom::before{content:''}.ms-Icon--TextAlignMiddle::before{content:''}.ms-Icon--TextAlignTop::before{content:''}.ms-Icon--TextBox::before{content:''}.ms-Icon--TextCallout::before{content:''}.ms-Icon--TextDocument::before{content:''}.ms-Icon--TextDocumentShared::before{content:''}.ms-Icon--TextField::before{content:''}.ms-Icon--TextOverflow::before{content:''}.ms-Icon--TextParagraphOption::before{content:''}.ms-Icon--TextRecognition::before{content:''}.ms-Icon--TextRotate270Degrees::before{content:''}.ms-Icon--TextRotate90Degrees::before{content:''}.ms-Icon--TextRotateHorizontal::before{content:''}.ms-Icon--TextRotation::before{content:''}.ms-Icon--TFVCLogo::before{content:''}.ms-Icon--ThisPC::before{content:''}.ms-Icon--ThreeQuarterCircle::before{content:''}.ms-Icon--ThumbnailView::before{content:''}[dir=rtl] .ms-Icon--ThumbnailView::before{content:''}.ms-Icon--ThumbnailViewMirrored::before{content:''}[dir=rtl] .ms-Icon--ThumbnailViewMirrored::before{content:''}.ms-Icon--Thunderstorms::before{content:''}.ms-Icon--Ticket::before{content:''}.ms-Icon--Tiles::before{content:''}.ms-Icon--Tiles2::before{content:''}.ms-Icon--TimeEntry::before{content:''}.ms-Icon--Timeline::before{content:''}.ms-Icon--TimelineDelivery::before{content:''}.ms-Icon--TimelineMatrixView::before{content:''}.ms-Icon--TimelineProgress::before{content:''}.ms-Icon--TimePicker::before{content:''}.ms-Icon--Timer::before{content:''}.ms-Icon--TimeSheet::before{content:''}.ms-Icon--ToDoLogoBottom::before{content:''}.ms-Icon--ToDoLogoInverse::before{content:''}.ms-Icon--ToDoLogoOutline::before{content:''}.ms-Icon--ToDoLogoTop::before{content:''}.ms-Icon--ToggleBorder::before{content:''}.ms-Icon--ToggleFilled::before{content:''}.ms-Icon--ToggleLeft::before{content:''}.ms-Icon--ToggleRight::before{content:''}.ms-Icon--ToggleThumb::before{content:''}.ms-Icon--Toll::before{content:''}.ms-Icon--Toolbox::before{content:''}.ms-Icon--Total::before{content:''}.ms-Icon--Touch::before{content:''}.ms-Icon--TouchPointer::before{content:''}.ms-Icon--Trackers::before{content:''}[dir=rtl] .ms-Icon--Trackers::before{content:''}.ms-Icon--TrackersMirrored::before{content:''}[dir=rtl] .ms-Icon--TrackersMirrored::before{content:''}.ms-Icon--Train::before{content:''}.ms-Icon--TrainSolid::before{content:''}.ms-Icon--TransferCall::before{content:''}.ms-Icon--Transition::before{content:''}.ms-Icon--TransitionEffect::before{content:''}.ms-Icon--TransitionPop::before{content:''}.ms-Icon--TransitionPush::before{content:''}.ms-Icon--Translate::before{content:''}.ms-Icon--Trending12::before{content:''}.ms-Icon--TriangleDown12::before{content:''}.ms-Icon--TriangleLeft12::before{content:''}.ms-Icon--TriangleRight12::before{content:''}.ms-Icon--TriangleShape::before{content:''}.ms-Icon--TriangleShapeSolid::before{content:''}.ms-Icon--TriangleSolid::before{content:''}.ms-Icon--TriangleSolidDown12::before{content:''}.ms-Icon--TriangleSolidLeft12::before{content:''}.ms-Icon--TriangleSolidRight12::before{content:''}.ms-Icon--TriangleSolidUp12::before{content:''}.ms-Icon--TriangleUp12::before{content:''}.ms-Icon--TriggerApproval::before{content:''}.ms-Icon--TriggerAuto::before{content:''}.ms-Icon--TriggerUser::before{content:''}.ms-Icon--Trim::before{content:''}.ms-Icon--TrimEnd::before{content:''}.ms-Icon--TrimStart::before{content:''}.ms-Icon--TripleColumn::before{content:''}.ms-Icon--TripleColumnEdit::before{content:''}.ms-Icon--TripleColumnWide::before{content:''}.ms-Icon--Trophy::before{content:''}.ms-Icon--Trophy2::before{content:''}.ms-Icon--Trophy2Solid::before{content:''}.ms-Icon--TurnRight::before{content:''}.ms-Icon--TVMonitor::before{content:''}.ms-Icon--TVMonitorSelected::before{content:''}.ms-Icon--TypeScriptLanguage::before{content:''}.ms-Icon--Umbrella::before{content:''}.ms-Icon--Underline::before{content:''}.ms-Icon--Undo::before{content:''}.ms-Icon--Uneditable2::before{content:''}[dir=rtl] .ms-Icon--Uneditable2::before{content:''}.ms-Icon--Uneditable2Mirrored::before{content:''}[dir=rtl] .ms-Icon--Uneditable2Mirrored::before{content:''}.ms-Icon--Uneditable::before{content:''}[dir=rtl] .ms-Icon--Uneditable::before{content:''}.ms-Icon--UneditableMirrored::before{content:''}[dir=rtl] .ms-Icon--UneditableMirrored::before{content:''}.ms-Icon--UneditableSolid12::before{content:''}[dir=rtl] .ms-Icon--UneditableSolid12::before{content:''}.ms-Icon--UneditableSolidMirrored12::before{content:''}[dir=rtl] .ms-Icon--UneditableSolidMirrored12::before{content:''}.ms-Icon--Unfavorite::before{content:''}.ms-Icon--UngroupObject::before{content:''}.ms-Icon--UnknownCall::before{content:''}.ms-Icon--Unknown::before{content:''}[dir=rtl] .ms-Icon--Unknown::before{content:''}.ms-Icon--UnknownMirrored::before{content:''}[dir=rtl] .ms-Icon--UnknownMirrored::before{content:''}.ms-Icon--UnknownSolid::before{content:''}[dir=rtl] .ms-Icon--UnknownSolid::before{content:''}.ms-Icon--UnknownMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--UnknownMirroredSolid::before{content:''}.ms-Icon--Unlock::before{content:''}.ms-Icon--UnlockSolid::before{content:''}.ms-Icon--Unpin::before{content:''}.ms-Icon--UnpublishContent::before{content:''}.ms-Icon--UnSetColor::before{content:''}.ms-Icon--UnstackSelected::before{content:''}.ms-Icon--Unsubscribe::before{content:''}.ms-Icon--UnsyncFolder::before{content:''}.ms-Icon--UnsyncOccurence::before{content:''}.ms-Icon--Untag::before{content:''}.ms-Icon--Up::before{content:''}.ms-Icon--UpdateRestore::before{content:''}.ms-Icon--UpgradeAnalysis::before{content:''}.ms-Icon--Upload::before{content:''}.ms-Icon--URLBlock::before{content:''}.ms-Icon--USB::before{content:''}.ms-Icon--UserEvent::before{content:''}.ms-Icon--UserFollowed::before{content:''}.ms-Icon--UserGauge::before{content:''}.ms-Icon--UserOptional::before{content:''}.ms-Icon--UserPause::before{content:''}.ms-Icon--UserRemove::before{content:''}.ms-Icon--UserSync::before{content:''}.ms-Icon--UserWarning::before{content:''}.ms-Icon--Vacation::before{content:''}.ms-Icon--Vaccination::before{content:''}.ms-Icon--Variable::before{content:''}.ms-Icon--Variable2::before{content:''}.ms-Icon--VariableGroup::before{content:''}.ms-Icon--VB::before{content:''}.ms-Icon--VennDiagram::before{content:''}.ms-Icon--VerifiedBrand::before{content:''}.ms-Icon--VerifiedBrandSolid::before{content:''}.ms-Icon--VersionControlPush::before{content:''}.ms-Icon--VerticalDistributeCenter::before{content:''}.ms-Icon--Video::before{content:''}.ms-Icon--Video360Generic::before{content:''}.ms-Icon--VideoLightOff::before{content:''}.ms-Icon--VideoOff::before{content:''}.ms-Icon--VideoSearch::before{content:''}.ms-Icon--VideoSolid::before{content:''}.ms-Icon--View::before{content:''}.ms-Icon--ViewAll::before{content:''}.ms-Icon--ViewAll2::before{content:''}.ms-Icon--ViewDashboard::before{content:''}.ms-Icon--ViewInAR::before{content:''}.ms-Icon--ViewList::before{content:''}.ms-Icon--ViewListGroup::before{content:''}.ms-Icon--ViewListTree::before{content:''}.ms-Icon--ViewOriginal::before{content:''}.ms-Icon--VisioDiagram::before{content:''}.ms-Icon--VisioDiagramSync::before{content:''}.ms-Icon--VisioDocument::before{content:''}.ms-Icon--VisioLogo::before{content:''}.ms-Icon--VisioLogo16::before{content:''}.ms-Icon--VisioLogoFill::before{content:''}.ms-Icon--VisioLogoFill16::before{content:''}.ms-Icon--VisioLogoInverse::before{content:''}.ms-Icon--VisioLogoInverse16::before{content:''}.ms-Icon--VisualBasicLanguage::before{content:''}.ms-Icon--VisuallyImpaired::before{content:''}.ms-Icon--VisualsFolder::before{content:''}.ms-Icon--VisualsStore::before{content:''}.ms-Icon--VisualStudioIDELogo32::before{content:''}.ms-Icon--VisualStudioLogo::before{content:''}.ms-Icon--VoicemailForward::before{content:''}.ms-Icon--VoicemailIRM::before{content:''}.ms-Icon--VoicemailReply::before{content:''}.ms-Icon--Volume0::before{content:''}.ms-Icon--Volume1::before{content:''}.ms-Icon--Volume2::before{content:''}.ms-Icon--Volume3::before{content:''}.ms-Icon--VolumeDisabled::before{content:''}.ms-Icon--VSTSAltLogo1::before{content:''}.ms-Icon--VSTSAltLogo2::before{content:''}.ms-Icon--VSTSLogo::before{content:''}.ms-Icon--Waffle::before{content:''}.ms-Icon--WaffleOffice365::before{content:''}.ms-Icon--WaitlistConfirm::before{content:''}[dir=rtl] .ms-Icon--WaitlistConfirm::before{content:''}.ms-Icon--WaitlistConfirmMirrored::before{content:''}[dir=rtl] .ms-Icon--WaitlistConfirmMirrored::before{content:''}.ms-Icon--Warning::before{content:''}.ms-Icon--Warning12::before{content:''}.ms-Icon--WarningSolid::before{content:''}.ms-Icon--WavingHand::before{content:''}.ms-Icon--WebAppBuilderFragment::before{content:''}.ms-Icon--WebAppBuilderFragmentCreate::before{content:''}.ms-Icon--WebAppBuilderModule::before{content:''}.ms-Icon--WebAppBuilderSlot::before{content:''}.ms-Icon--Webcam2::before{content:''}.ms-Icon--Webcam2Off::before{content:''}.ms-Icon--WebComponents::before{content:''}.ms-Icon--WebEnvironment::before{content:''}.ms-Icon--WebPublish::before{content:''}.ms-Icon--Website::before{content:''}.ms-Icon--WebTemplate::before{content:''}.ms-Icon--Weights::before{content:''}.ms-Icon--Wheelchair::before{content:''}.ms-Icon--WhiteBoardApp16::before{content:''}.ms-Icon--WhiteBoardApp32::before{content:''}.ms-Icon--WifiEthernet::before{content:''}.ms-Icon--WifiWarning4::before{content:''}.ms-Icon--WindDirection::before{content:''}.ms-Icon--WindowEdit::before{content:''}.ms-Icon--WindowsLogo::before{content:''}.ms-Icon--Wines::before{content:''}.ms-Icon--WipePhone::before{content:''}.ms-Icon--WordDocument::before{content:''}.ms-Icon--WordLogo::before{content:''}.ms-Icon--WordLogo16::before{content:''}.ms-Icon--WordLogoFill::before{content:''}.ms-Icon--WordLogoFill16::before{content:''}.ms-Icon--WordLogoInverse::before{content:''}.ms-Icon--WordLogoInverse16::before{content:''}.ms-Icon--Work::before{content:''}.ms-Icon--WorkFlow::before{content:''}.ms-Icon--WorkforceManagement::before{content:''}.ms-Icon--WorkItem::before{content:''}.ms-Icon--WorkItemAlert::before{content:''}.ms-Icon--WorkItemBar::before{content:''}.ms-Icon--WorkItemBarSolid::before{content:''}.ms-Icon--WorkItemBug::before{content:''}.ms-Icon--World::before{content:''}.ms-Icon--WorldClock::before{content:''}.ms-Icon--YammerLogo::before{content:''}.ms-Icon--ZipFolder::before{content:''}.ms-Icon--Zoom::before{content:''}.ms-Icon--ZoomIn::before{content:''}.ms-Icon--ZoomOut::before{content:''}.ms-Icon--ZoomToFit::before{content:''}.ms-Icon--HumanResources::before{content:''}.ms-Icon--StoreLogo::before{content:''}.ms-Icon--OneDrive::before{content:''}.ms-Icon--ToggleOff::before{content:''}.ms-Icon--StoreLogoMed::before{content:''}@font-face{font-family:FabricMDL2Icons;src:url(https://static2.sharepointonline.com/files/fabric/assets/icons/fabricmdl2icons-3.70.woff) format('woff');font-weight:400;font-style:normal}@media (max-width:479.99999px){.ms-hiddenLgDown,.ms-hiddenMdDown,.ms-hiddenSm,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:480px) and (max-width:639.99999px){.ms-hiddenLgDown,.ms-hiddenMd,.ms-hiddenMdDown,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:640px) and (max-width:1023.99999px){.ms-hiddenLg,.ms-hiddenLgDown,.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1024px) and (max-width:1365.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXl,.ms-hiddenXlDown,.ms-hiddenXlUp,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1366px) and (max-width:1919.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxl,.ms-hiddenXxlDown,.ms-hiddenXxlUp{display:none!important}}@media (min-width:1920px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxlUp,.ms-hiddenXxxl{display:none!important}}.ms-sm12{width:100%}.ms-sm11{width:91.66666666666666%}.ms-sm10{width:83.33333333333334%}.ms-sm9{width:75%}.ms-sm8{width:66.66666666666666%}.ms-sm7{width:58.333333333333336%}.ms-sm6{width:50%}.ms-sm5{width:41.66666666666667%}.ms-sm4{width:33.33333333333333%}.ms-sm3{width:25%}.ms-sm2{width:16.666666666666664%}.ms-sm1{width:8.333333333333332%}[dir=ltr] .ms-smPull12{right:100%}[dir=rtl] .ms-smPull12{left:100%}[dir=ltr] .ms-smPull11{right:91.66667%}[dir=rtl] .ms-smPull11{left:91.66667%}[dir=ltr] .ms-smPull10{right:83.33333%}[dir=rtl] .ms-smPull10{left:83.33333%}[dir=ltr] .ms-smPull9{right:75%}[dir=rtl] .ms-smPull9{left:75%}[dir=ltr] .ms-smPull8{right:66.66667%}[dir=rtl] .ms-smPull8{left:66.66667%}[dir=ltr] .ms-smPull7{right:58.33333%}[dir=rtl] .ms-smPull7{left:58.33333%}[dir=ltr] .ms-smPull6{right:50%}[dir=rtl] .ms-smPull6{left:50%}[dir=ltr] .ms-smPull5{right:41.66667%}[dir=rtl] .ms-smPull5{left:41.66667%}[dir=ltr] .ms-smPull4{right:33.33333%}[dir=rtl] .ms-smPull4{left:33.33333%}[dir=ltr] .ms-smPull3{right:25%}[dir=rtl] .ms-smPull3{left:25%}[dir=ltr] .ms-smPull2{right:16.66667%}[dir=rtl] .ms-smPull2{left:16.66667%}[dir=ltr] .ms-smPull1{right:8.33333%}[dir=rtl] .ms-smPull1{left:8.33333%}[dir=ltr] .ms-smPull0{right:auto}[dir=rtl] .ms-smPull0{left:auto}[dir=ltr] .ms-smPush12{left:100%}[dir=rtl] .ms-smPush12{right:100%}[dir=ltr] .ms-smPush11{left:91.66667%}[dir=rtl] .ms-smPush11{right:91.66667%}[dir=ltr] .ms-smPush10{left:83.33333%}[dir=rtl] .ms-smPush10{right:83.33333%}[dir=ltr] .ms-smPush9{left:75%}[dir=rtl] .ms-smPush9{right:75%}[dir=ltr] .ms-smPush8{left:66.66667%}[dir=rtl] .ms-smPush8{right:66.66667%}[dir=ltr] .ms-smPush7{left:58.33333%}[dir=rtl] .ms-smPush7{right:58.33333%}[dir=ltr] .ms-smPush6{left:50%}[dir=rtl] .ms-smPush6{right:50%}[dir=ltr] .ms-smPush5{left:41.66667%}[dir=rtl] .ms-smPush5{right:41.66667%}[dir=ltr] .ms-smPush4{left:33.33333%}[dir=rtl] .ms-smPush4{right:33.33333%}[dir=ltr] .ms-smPush3{left:25%}[dir=rtl] .ms-smPush3{right:25%}[dir=ltr] .ms-smPush2{left:16.66667%}[dir=rtl] .ms-smPush2{right:16.66667%}[dir=ltr] .ms-smPush1{left:8.33333%}[dir=rtl] .ms-smPush1{right:8.33333%}[dir=ltr] .ms-smPush0{left:auto}[dir=rtl] .ms-smPush0{right:auto}[dir=ltr] .ms-smOffset11{margin-left:91.66667%}[dir=rtl] .ms-smOffset11{margin-right:91.66667%}[dir=ltr] .ms-smOffset10{margin-left:83.33333%}[dir=rtl] .ms-smOffset10{margin-right:83.33333%}[dir=ltr] .ms-smOffset9{margin-left:75%}[dir=rtl] .ms-smOffset9{margin-right:75%}[dir=ltr] .ms-smOffset8{margin-left:66.66667%}[dir=rtl] .ms-smOffset8{margin-right:66.66667%}[dir=ltr] .ms-smOffset7{margin-left:58.33333%}[dir=rtl] .ms-smOffset7{margin-right:58.33333%}[dir=ltr] .ms-smOffset6{margin-left:50%}[dir=rtl] .ms-smOffset6{margin-right:50%}[dir=ltr] .ms-smOffset5{margin-left:41.66667%}[dir=rtl] .ms-smOffset5{margin-right:41.66667%}[dir=ltr] .ms-smOffset4{margin-left:33.33333%}[dir=rtl] .ms-smOffset4{margin-right:33.33333%}[dir=ltr] .ms-smOffset3{margin-left:25%}[dir=rtl] .ms-smOffset3{margin-right:25%}[dir=ltr] .ms-smOffset2{margin-left:16.66667%}[dir=rtl] .ms-smOffset2{margin-right:16.66667%}[dir=ltr] .ms-smOffset1{margin-left:8.33333%}[dir=rtl] .ms-smOffset1{margin-right:8.33333%}[dir=ltr] .ms-smOffset0{margin-left:0}[dir=rtl] .ms-smOffset0{margin-right:0}@media (min-width:480px){.ms-md12{width:100%}}@media (min-width:480px){.ms-md11{width:91.66666666666666%}}@media (min-width:480px){.ms-md10{width:83.33333333333334%}}@media (min-width:480px){.ms-md9{width:75%}}@media (min-width:480px){.ms-md8{width:66.66666666666666%}}@media (min-width:480px){.ms-md7{width:58.333333333333336%}}@media (min-width:480px){.ms-md6{width:50%}}@media (min-width:480px){.ms-md5{width:41.66666666666667%}}@media (min-width:480px){.ms-md4{width:33.33333333333333%}}@media (min-width:480px){.ms-md3{width:25%}}@media (min-width:480px){.ms-md2{width:16.666666666666664%}}@media (min-width:480px){.ms-md1{width:8.333333333333332%}}@media (min-width:480px){[dir=ltr] .ms-mdPull12{right:100%}[dir=rtl] .ms-mdPull12{left:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPull11{right:91.66667%}[dir=rtl] .ms-mdPull11{left:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull10{right:83.33333%}[dir=rtl] .ms-mdPull10{left:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull9{right:75%}[dir=rtl] .ms-mdPull9{left:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPull8{right:66.66667%}[dir=rtl] .ms-mdPull8{left:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull7{right:58.33333%}[dir=rtl] .ms-mdPull7{left:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull6{right:50%}[dir=rtl] .ms-mdPull6{left:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPull5{right:41.66667%}[dir=rtl] .ms-mdPull5{left:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull4{right:33.33333%}[dir=rtl] .ms-mdPull4{left:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull3{right:25%}[dir=rtl] .ms-mdPull3{left:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPull2{right:16.66667%}[dir=rtl] .ms-mdPull2{left:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull1{right:8.33333%}[dir=rtl] .ms-mdPull1{left:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull0{right:auto}[dir=rtl] .ms-mdPull0{left:auto}}@media (min-width:480px){[dir=ltr] .ms-mdPush12{left:100%}[dir=rtl] .ms-mdPush12{right:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPush11{left:91.66667%}[dir=rtl] .ms-mdPush11{right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush10{left:83.33333%}[dir=rtl] .ms-mdPush10{right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush9{left:75%}[dir=rtl] .ms-mdPush9{right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPush8{left:66.66667%}[dir=rtl] .ms-mdPush8{right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush7{left:58.33333%}[dir=rtl] .ms-mdPush7{right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush6{left:50%}[dir=rtl] .ms-mdPush6{right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPush5{left:41.66667%}[dir=rtl] .ms-mdPush5{right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush4{left:33.33333%}[dir=rtl] .ms-mdPush4{right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush3{left:25%}[dir=rtl] .ms-mdPush3{right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPush2{left:16.66667%}[dir=rtl] .ms-mdPush2{right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush1{left:8.33333%}[dir=rtl] .ms-mdPush1{right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush0{left:auto}[dir=rtl] .ms-mdPush0{right:auto}}@media (min-width:480px){[dir=ltr] .ms-mdOffset11{margin-left:91.66667%}[dir=rtl] .ms-mdOffset11{margin-right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset10{margin-left:83.33333%}[dir=rtl] .ms-mdOffset10{margin-right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset9{margin-left:75%}[dir=rtl] .ms-mdOffset9{margin-right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset8{margin-left:66.66667%}[dir=rtl] .ms-mdOffset8{margin-right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset7{margin-left:58.33333%}[dir=rtl] .ms-mdOffset7{margin-right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset6{margin-left:50%}[dir=rtl] .ms-mdOffset6{margin-right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset5{margin-left:41.66667%}[dir=rtl] .ms-mdOffset5{margin-right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset4{margin-left:33.33333%}[dir=rtl] .ms-mdOffset4{margin-right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset3{margin-left:25%}[dir=rtl] .ms-mdOffset3{margin-right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset2{margin-left:16.66667%}[dir=rtl] .ms-mdOffset2{margin-right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset1{margin-left:8.33333%}[dir=rtl] .ms-mdOffset1{margin-right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset0{margin-left:0}[dir=rtl] .ms-mdOffset0{margin-right:0}}@media (min-width:640px){.ms-lg12{width:100%}}@media (min-width:640px){.ms-lg11{width:91.66666666666666%}}@media (min-width:640px){.ms-lg10{width:83.33333333333334%}}@media (min-width:640px){.ms-lg9{width:75%}}@media (min-width:640px){.ms-lg8{width:66.66666666666666%}}@media (min-width:640px){.ms-lg7{width:58.333333333333336%}}@media (min-width:640px){.ms-lg6{width:50%}}@media (min-width:640px){.ms-lg5{width:41.66666666666667%}}@media (min-width:640px){.ms-lg4{width:33.33333333333333%}}@media (min-width:640px){.ms-lg3{width:25%}}@media (min-width:640px){.ms-lg2{width:16.666666666666664%}}@media (min-width:640px){.ms-lg1{width:8.333333333333332%}}@media (min-width:640px){[dir=ltr] .ms-lgPull12{right:100%}[dir=rtl] .ms-lgPull12{left:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPull11{right:91.66667%}[dir=rtl] .ms-lgPull11{left:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull10{right:83.33333%}[dir=rtl] .ms-lgPull10{left:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull9{right:75%}[dir=rtl] .ms-lgPull9{left:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPull8{right:66.66667%}[dir=rtl] .ms-lgPull8{left:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull7{right:58.33333%}[dir=rtl] .ms-lgPull7{left:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull6{right:50%}[dir=rtl] .ms-lgPull6{left:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPull5{right:41.66667%}[dir=rtl] .ms-lgPull5{left:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull4{right:33.33333%}[dir=rtl] .ms-lgPull4{left:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull3{right:25%}[dir=rtl] .ms-lgPull3{left:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPull2{right:16.66667%}[dir=rtl] .ms-lgPull2{left:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull1{right:8.33333%}[dir=rtl] .ms-lgPull1{left:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull0{right:auto}[dir=rtl] .ms-lgPull0{left:auto}}@media (min-width:640px){[dir=ltr] .ms-lgPush12{left:100%}[dir=rtl] .ms-lgPush12{right:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPush11{left:91.66667%}[dir=rtl] .ms-lgPush11{right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush10{left:83.33333%}[dir=rtl] .ms-lgPush10{right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush9{left:75%}[dir=rtl] .ms-lgPush9{right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPush8{left:66.66667%}[dir=rtl] .ms-lgPush8{right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush7{left:58.33333%}[dir=rtl] .ms-lgPush7{right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush6{left:50%}[dir=rtl] .ms-lgPush6{right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPush5{left:41.66667%}[dir=rtl] .ms-lgPush5{right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush4{left:33.33333%}[dir=rtl] .ms-lgPush4{right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush3{left:25%}[dir=rtl] .ms-lgPush3{right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPush2{left:16.66667%}[dir=rtl] .ms-lgPush2{right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush1{left:8.33333%}[dir=rtl] .ms-lgPush1{right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush0{left:auto}[dir=rtl] .ms-lgPush0{right:auto}}@media (min-width:640px){[dir=ltr] .ms-lgOffset11{margin-left:91.66667%}[dir=rtl] .ms-lgOffset11{margin-right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset10{margin-left:83.33333%}[dir=rtl] .ms-lgOffset10{margin-right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset9{margin-left:75%}[dir=rtl] .ms-lgOffset9{margin-right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset8{margin-left:66.66667%}[dir=rtl] .ms-lgOffset8{margin-right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset7{margin-left:58.33333%}[dir=rtl] .ms-lgOffset7{margin-right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset6{margin-left:50%}[dir=rtl] .ms-lgOffset6{margin-right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset5{margin-left:41.66667%}[dir=rtl] .ms-lgOffset5{margin-right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset4{margin-left:33.33333%}[dir=rtl] .ms-lgOffset4{margin-right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset3{margin-left:25%}[dir=rtl] .ms-lgOffset3{margin-right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset2{margin-left:16.66667%}[dir=rtl] .ms-lgOffset2{margin-right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset1{margin-left:8.33333%}[dir=rtl] .ms-lgOffset1{margin-right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset0{margin-left:0}[dir=rtl] .ms-lgOffset0{margin-right:0}}@media (min-width:1024px){.ms-xl12{width:100%}}@media (min-width:1024px){.ms-xl11{width:91.66666666666666%}}@media (min-width:1024px){.ms-xl10{width:83.33333333333334%}}@media (min-width:1024px){.ms-xl9{width:75%}}@media (min-width:1024px){.ms-xl8{width:66.66666666666666%}}@media (min-width:1024px){.ms-xl7{width:58.333333333333336%}}@media (min-width:1024px){.ms-xl6{width:50%}}@media (min-width:1024px){.ms-xl5{width:41.66666666666667%}}@media (min-width:1024px){.ms-xl4{width:33.33333333333333%}}@media (min-width:1024px){.ms-xl3{width:25%}}@media (min-width:1024px){.ms-xl2{width:16.666666666666664%}}@media (min-width:1024px){.ms-xl1{width:8.333333333333332%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull12{right:100%}[dir=rtl] .ms-xlPull12{left:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull11{right:91.66667%}[dir=rtl] .ms-xlPull11{left:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull10{right:83.33333%}[dir=rtl] .ms-xlPull10{left:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull9{right:75%}[dir=rtl] .ms-xlPull9{left:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull8{right:66.66667%}[dir=rtl] .ms-xlPull8{left:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull7{right:58.33333%}[dir=rtl] .ms-xlPull7{left:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull6{right:50%}[dir=rtl] .ms-xlPull6{left:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull5{right:41.66667%}[dir=rtl] .ms-xlPull5{left:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull4{right:33.33333%}[dir=rtl] .ms-xlPull4{left:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull3{right:25%}[dir=rtl] .ms-xlPull3{left:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull2{right:16.66667%}[dir=rtl] .ms-xlPull2{left:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull1{right:8.33333%}[dir=rtl] .ms-xlPull1{left:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull0{right:auto}[dir=rtl] .ms-xlPull0{left:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlPush12{left:100%}[dir=rtl] .ms-xlPush12{right:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush11{left:91.66667%}[dir=rtl] .ms-xlPush11{right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush10{left:83.33333%}[dir=rtl] .ms-xlPush10{right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush9{left:75%}[dir=rtl] .ms-xlPush9{right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush8{left:66.66667%}[dir=rtl] .ms-xlPush8{right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush7{left:58.33333%}[dir=rtl] .ms-xlPush7{right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush6{left:50%}[dir=rtl] .ms-xlPush6{right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush5{left:41.66667%}[dir=rtl] .ms-xlPush5{right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush4{left:33.33333%}[dir=rtl] .ms-xlPush4{right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush3{left:25%}[dir=rtl] .ms-xlPush3{right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush2{left:16.66667%}[dir=rtl] .ms-xlPush2{right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush1{left:8.33333%}[dir=rtl] .ms-xlPush1{right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush0{left:auto}[dir=rtl] .ms-xlPush0{right:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xlOffset11{margin-right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xlOffset10{margin-right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset9{margin-left:75%}[dir=rtl] .ms-xlOffset9{margin-right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xlOffset8{margin-right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xlOffset7{margin-right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset6{margin-left:50%}[dir=rtl] .ms-xlOffset6{margin-right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xlOffset5{margin-right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xlOffset4{margin-right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset3{margin-left:25%}[dir=rtl] .ms-xlOffset3{margin-right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xlOffset2{margin-right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xlOffset1{margin-right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset0{margin-left:0}[dir=rtl] .ms-xlOffset0{margin-right:0}}@media (min-width:1366px){.ms-xxl12{width:100%}}@media (min-width:1366px){.ms-xxl11{width:91.66666666666666%}}@media (min-width:1366px){.ms-xxl10{width:83.33333333333334%}}@media (min-width:1366px){.ms-xxl9{width:75%}}@media (min-width:1366px){.ms-xxl8{width:66.66666666666666%}}@media (min-width:1366px){.ms-xxl7{width:58.333333333333336%}}@media (min-width:1366px){.ms-xxl6{width:50%}}@media (min-width:1366px){.ms-xxl5{width:41.66666666666667%}}@media (min-width:1366px){.ms-xxl4{width:33.33333333333333%}}@media (min-width:1366px){.ms-xxl3{width:25%}}@media (min-width:1366px){.ms-xxl2{width:16.666666666666664%}}@media (min-width:1366px){.ms-xxl1{width:8.333333333333332%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull12{right:100%}[dir=rtl] .ms-xxlPull12{left:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull11{right:91.66667%}[dir=rtl] .ms-xxlPull11{left:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull10{right:83.33333%}[dir=rtl] .ms-xxlPull10{left:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull9{right:75%}[dir=rtl] .ms-xxlPull9{left:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull8{right:66.66667%}[dir=rtl] .ms-xxlPull8{left:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull7{right:58.33333%}[dir=rtl] .ms-xxlPull7{left:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull6{right:50%}[dir=rtl] .ms-xxlPull6{left:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull5{right:41.66667%}[dir=rtl] .ms-xxlPull5{left:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull4{right:33.33333%}[dir=rtl] .ms-xxlPull4{left:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull3{right:25%}[dir=rtl] .ms-xxlPull3{left:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull2{right:16.66667%}[dir=rtl] .ms-xxlPull2{left:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull1{right:8.33333%}[dir=rtl] .ms-xxlPull1{left:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull0{right:auto}[dir=rtl] .ms-xxlPull0{left:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush12{left:100%}[dir=rtl] .ms-xxlPush12{right:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush11{left:91.66667%}[dir=rtl] .ms-xxlPush11{right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush10{left:83.33333%}[dir=rtl] .ms-xxlPush10{right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush9{left:75%}[dir=rtl] .ms-xxlPush9{right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush8{left:66.66667%}[dir=rtl] .ms-xxlPush8{right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush7{left:58.33333%}[dir=rtl] .ms-xxlPush7{right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush6{left:50%}[dir=rtl] .ms-xxlPush6{right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush5{left:41.66667%}[dir=rtl] .ms-xxlPush5{right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush4{left:33.33333%}[dir=rtl] .ms-xxlPush4{right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush3{left:25%}[dir=rtl] .ms-xxlPush3{right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush2{left:16.66667%}[dir=rtl] .ms-xxlPush2{right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush1{left:8.33333%}[dir=rtl] .ms-xxlPush1{right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush0{left:auto}[dir=rtl] .ms-xxlPush0{right:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxlOffset11{margin-right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxlOffset10{margin-right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset9{margin-left:75%}[dir=rtl] .ms-xxlOffset9{margin-right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxlOffset8{margin-right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxlOffset7{margin-right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset6{margin-left:50%}[dir=rtl] .ms-xxlOffset6{margin-right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxlOffset5{margin-right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxlOffset4{margin-right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset3{margin-left:25%}[dir=rtl] .ms-xxlOffset3{margin-right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxlOffset2{margin-right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxlOffset1{margin-right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset0{margin-left:0}[dir=rtl] .ms-xxlOffset0{margin-right:0}}@media (min-width:1920px){.ms-xxxl12{width:100%}}@media (min-width:1920px){.ms-xxxl11{width:91.66666666666666%}}@media (min-width:1920px){.ms-xxxl10{width:83.33333333333334%}}@media (min-width:1920px){.ms-xxxl9{width:75%}}@media (min-width:1920px){.ms-xxxl8{width:66.66666666666666%}}@media (min-width:1920px){.ms-xxxl7{width:58.333333333333336%}}@media (min-width:1920px){.ms-xxxl6{width:50%}}@media (min-width:1920px){.ms-xxxl5{width:41.66666666666667%}}@media (min-width:1920px){.ms-xxxl4{width:33.33333333333333%}}@media (min-width:1920px){.ms-xxxl3{width:25%}}@media (min-width:1920px){.ms-xxxl2{width:16.666666666666664%}}@media (min-width:1920px){.ms-xxxl1{width:8.333333333333332%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull12{right:100%}[dir=rtl] .ms-xxxlPull12{left:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull11{right:91.66667%}[dir=rtl] .ms-xxxlPull11{left:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull10{right:83.33333%}[dir=rtl] .ms-xxxlPull10{left:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull9{right:75%}[dir=rtl] .ms-xxxlPull9{left:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull8{right:66.66667%}[dir=rtl] .ms-xxxlPull8{left:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull7{right:58.33333%}[dir=rtl] .ms-xxxlPull7{left:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull6{right:50%}[dir=rtl] .ms-xxxlPull6{left:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull5{right:41.66667%}[dir=rtl] .ms-xxxlPull5{left:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull4{right:33.33333%}[dir=rtl] .ms-xxxlPull4{left:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull3{right:25%}[dir=rtl] .ms-xxxlPull3{left:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull2{right:16.66667%}[dir=rtl] .ms-xxxlPull2{left:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull1{right:8.33333%}[dir=rtl] .ms-xxxlPull1{left:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull0{right:auto}[dir=rtl] .ms-xxxlPull0{left:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush12{left:100%}[dir=rtl] .ms-xxxlPush12{right:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush11{left:91.66667%}[dir=rtl] .ms-xxxlPush11{right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush10{left:83.33333%}[dir=rtl] .ms-xxxlPush10{right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush9{left:75%}[dir=rtl] .ms-xxxlPush9{right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush8{left:66.66667%}[dir=rtl] .ms-xxxlPush8{right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush7{left:58.33333%}[dir=rtl] .ms-xxxlPush7{right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush6{left:50%}[dir=rtl] .ms-xxxlPush6{right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush5{left:41.66667%}[dir=rtl] .ms-xxxlPush5{right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush4{left:33.33333%}[dir=rtl] .ms-xxxlPush4{right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush3{left:25%}[dir=rtl] .ms-xxxlPush3{right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush2{left:16.66667%}[dir=rtl] .ms-xxxlPush2{right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush1{left:8.33333%}[dir=rtl] .ms-xxxlPush1{right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush0{left:auto}[dir=rtl] .ms-xxxlPush0{right:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxxlOffset11{margin-right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxxlOffset10{margin-right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset9{margin-left:75%}[dir=rtl] .ms-xxxlOffset9{margin-right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxxlOffset8{margin-right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxxlOffset7{margin-right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset6{margin-left:50%}[dir=rtl] .ms-xxxlOffset6{margin-right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxxlOffset5{margin-right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxxlOffset4{margin-right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset3{margin-left:25%}[dir=rtl] .ms-xxxlOffset3{margin-right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxxlOffset2{margin-right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxxlOffset1{margin-right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset0{margin-left:0}[dir=rtl] .ms-xxxlOffset0{margin-right:0}}.ms-borderBox,.ms-borderBox::after,.ms-borderBox::before{box-sizing:border-box}.ms-borderBase{border:1px solid}.ms-clearfix{zoom:1}.ms-clearfix::after,.ms-clearfix::before{display:table;content:'';line-height:0}.ms-clearfix::after{clear:both}.ms-normalize{box-sizing:border-box;box-shadow:none;margin:0;padding:0}[dir=ltr] .ms-textAlignLeft{text-align:left}[dir=rtl] .ms-textAlignLeft{text-align:right}[dir=ltr] .ms-textAlignRight{text-align:right}[dir=rtl] .ms-textAlignRight{text-align:left}.ms-textAlignCenter{text-align:center}.ms-screenReaderOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ms-textTruncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.ms-noWrap{white-space:nowrap}.ms-Fabric{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#323130;font-family:'Segoe UI Web (West European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif;font-size:14px}.ms-Fabric button,.ms-Fabric input,.ms-Fabric textarea{font-family:inherit}.ms-Fabric [lang^=ar],.ms-Fabric[lang^=ar],[lang^=ar] .ms-Fabric{font-family:'Segoe UI Web (Arabic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=bg],.ms-Fabric[lang^=bg],[lang^=bg] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=cs],.ms-Fabric[lang^=cs],[lang^=cs] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=el],.ms-Fabric[lang^=el],[lang^=el] .ms-Fabric{font-family:'Segoe UI Web (Greek)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=et],.ms-Fabric[lang^=et],[lang^=et] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=he],.ms-Fabric[lang^=he],[lang^=he] .ms-Fabric{font-family:'Segoe UI Web (Hebrew)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hi],.ms-Fabric[lang^=hi],[lang^=hi] .ms-Fabric{font-family:'Nirmala UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hr],.ms-Fabric[lang^=hr],[lang^=hr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hu],.ms-Fabric[lang^=hu],[lang^=hu] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ja],.ms-Fabric[lang^=ja],[lang^=ja] .ms-Fabric{font-family:'Yu Gothic UI','Meiryo UI',Meiryo,'MS Pgothic',Osaka,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=kk],.ms-Fabric[lang^=kk],[lang^=kk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ko],.ms-Fabric[lang^=ko],[lang^=ko] .ms-Fabric{font-family:'Malgun Gothic',Gulim,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lo],.ms-Fabric[lang^=lo],[lang^=lo] .ms-Fabric{font-family:'Leelawadee UI Web','Lao UI',DokChampa,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lt],.ms-Fabric[lang^=lt],[lang^=lt] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lv],.ms-Fabric[lang^=lv],[lang^=lv] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=pl],.ms-Fabric[lang^=pl],[lang^=pl] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ru],.ms-Fabric[lang^=ru],[lang^=ru] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sk],.ms-Fabric[lang^=sk],[lang^=sk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sr-latn],.ms-Fabric[lang^=sr-latn],[lang^=sr-latn] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=th],.ms-Fabric[lang^=th],[lang^=th] .ms-Fabric{font-family:'Leelawadee UI Web','Kmer UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=tr],.ms-Fabric[lang^=tr],[lang^=tr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=uk],.ms-Fabric[lang^=uk],[lang^=uk] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=vi],.ms-Fabric[lang^=vi],[lang^=vi] .ms-Fabric{font-family:'Segoe UI Web (Vietnamese)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hans],.ms-Fabric[lang^=zh-hans],[lang^=zh-hans] .ms-Fabric{font-family:'Microsoft Yahei UI',Verdana,Simsun,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hant],.ms-Fabric[lang^=zh-hant],[lang^=zh-hant] .ms-Fabric{font-family:'Microsoft Jhenghei UI',Pmingliu,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric--selawik{font-family:'Selawik Web','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/office-ui-fabric-core/dist/css/fabric.min.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/* Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information. */\\r\\n/**\\n * Office UI Fabric Core 11.0.1\\n * The front-end framework for building experiences for Office 365.\\n **/\\n@charset 'UTF-8';@keyframes ms-motion-fadeIn{from{opacity:0}to{opacity:1}}@keyframes ms-motion-fadeOut{from{opacity:1}to{opacity:0}}@keyframes ms-motion-scaleDownIn{from{transform:scale3d(1.15,1.15,1)}to{transform:scale3d(1,1,1)}}@keyframes ms-motion-scaleDownOut{from{transform:scale3d(1,1,1)}to{transform:scale3d(.9,.9,1)}}@keyframes ms-motion-slideLeftOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(-48px,0,0)}}@keyframes ms-motion-slideRightOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(48px,0,0)}}@keyframes ms-motion-slideLeftIn{from{transform:translate3d(48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideRightIn{from{transform:translate3d(-48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideUpOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-48px,0)}}@keyframes ms-motion-slideDownOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,48px,0)}}@keyframes ms-motion-slideUpIn{from{transform:translate3d(0,48px,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideDownIn{from{transform:translate3d(0,-48px,0)}to{transform:translate3d(0,0,0)}}.ms-motion-fadeIn{animation:ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-fadeOut{animation:ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownIn{animation:ms-motion-scaleDownIn .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownOut{animation:ms-motion-scaleDownOut .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpOut{animation:ms-motion-slideUpOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownOut{animation:ms-motion-slideDownOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpIn{animation:ms-motion-slideUpIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownIn{animation:ms-motion-slideDownIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/zip.png)}.ms-BrandIcon--icon16{background-size:100% 100%;width:16px;height:16px}.ms-BrandIcon--icon48{background-size:100% 100%;width:48px;height:48px}.ms-BrandIcon--icon96{background-size:100% 100%;width:96px;height:96px}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1_5.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/zip.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x2.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/zip.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x3.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/zip.png)}}.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-bgColor-themeDark,.ms-bgColor-themeDark--hover:hover{background-color:#005a9e}.ms-bgColor-themeDarkAlt,.ms-bgColor-themeDarkAlt--hover:hover{background-color:#106ebe}.ms-bgColor-themeDarker,.ms-bgColor-themeDarker--hover:hover{background-color:#004578}.ms-bgColor-themePrimary,.ms-bgColor-themePrimary--hover:hover{background-color:#0078d4}.ms-bgColor-themeSecondary,.ms-bgColor-themeSecondary--hover:hover{background-color:#2b88d8}.ms-bgColor-themeTertiary,.ms-bgColor-themeTertiary--hover:hover{background-color:#71afe5}.ms-bgColor-themeLight,.ms-bgColor-themeLight--hover:hover{background-color:#c7e0f4}.ms-bgColor-themeLighter,.ms-bgColor-themeLighter--hover:hover{background-color:#deecf9}.ms-bgColor-themeLighterAlt,.ms-bgColor-themeLighterAlt--hover:hover{background-color:#eff6fc}.ms-borderColor-themeDark,.ms-borderColor-themeDark--hover:hover{border-color:#005a9e}.ms-borderColor-themeDarkAlt,.ms-borderColor-themeDarkAlt--hover:hover{border-color:#106ebe}.ms-borderColor-themeDarker,.ms-borderColor-themeDarker--hover:hover{border-color:#004578}.ms-borderColor-themePrimary,.ms-borderColor-themePrimary--hover:hover{border-color:#0078d4}.ms-borderColor-themeSecondary,.ms-borderColor-themeSecondary--hover:hover{border-color:#2b88d8}.ms-borderColor-themeTertiary,.ms-borderColor-themeTertiary--hover:hover{border-color:#71afe5}.ms-borderColor-themeLight,.ms-borderColor-themeLight--hover:hover{border-color:#c7e0f4}.ms-borderColor-themeLighter,.ms-borderColor-themeLighter--hover:hover{border-color:#deecf9}.ms-borderColor-themeLighterAlt,.ms-borderColor-themeLighterAlt--hover:hover{border-color:#eff6fc}.ms-fontColor-themeDarker,.ms-fontColor-themeDarker--hover:hover{color:#004578}.ms-fontColor-themeDark,.ms-fontColor-themeDark--hover:hover{color:#005a9e}.ms-fontColor-themeDarkAlt,.ms-fontColor-themeDarkAlt--hover:hover{color:#106ebe}.ms-fontColor-themePrimary,.ms-fontColor-themePrimary--hover:hover{color:#0078d4}.ms-fontColor-themeSecondary,.ms-fontColor-themeSecondary--hover:hover{color:#2b88d8}.ms-fontColor-themeTertiary,.ms-fontColor-themeTertiary--hover:hover{color:#71afe5}.ms-fontColor-themeLight,.ms-fontColor-themeLight--hover:hover{color:#c7e0f4}.ms-fontColor-themeLighter,.ms-fontColor-themeLighter--hover:hover{color:#deecf9}.ms-fontColor-themeLighterAlt,.ms-fontColor-themeLighterAlt--hover:hover{color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-neutralDark,.ms-bgColor-neutralDark--hover:hover{background-color:#201f1e}.ms-bgColor-neutralPrimary,.ms-bgColor-neutralPrimary--hover:hover{background-color:#323130}.ms-bgColor-neutralPrimaryAlt,.ms-bgColor-neutralPrimaryAlt--hover:hover{background-color:#3b3a39}.ms-bgColor-neutralSecondary,.ms-bgColor-neutralSecondary--hover:hover{background-color:#605e5c}.ms-bgColor-neutralSecondaryAlt,.ms-bgColor-neutralSecondaryAlt--hover:hover{background-color:#797775}.ms-bgColor-neutralTertiary,.ms-bgColor-neutralTertiary--hover:hover{background-color:#a19f9d}.ms-bgColor-neutralTertiaryAlt,.ms-bgColor-neutralTertiaryAlt--hover:hover{background-color:#c8c6c4}.ms-bgColor-neutralQuaternary,.ms-bgColor-neutralQuaternary--hover:hover{background-color:#d2d0ce}.ms-bgColor-neutralQuaternaryAlt,.ms-bgColor-neutralQuaternaryAlt--hover:hover{background-color:#e1dfdd}.ms-bgColor-neutralLight,.ms-bgColor-neutralLight--hover:hover{background-color:#edebe9}.ms-bgColor-neutralLighter,.ms-bgColor-neutralLighter--hover:hover{background-color:#f3f2f1}.ms-bgColor-neutralLighterAlt,.ms-bgColor-neutralLighterAlt--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-neutralDark,.ms-borderColor-neutralDark--hover:hover{border-color:#201f1e}.ms-borderColor-neutralPrimary,.ms-borderColor-neutralPrimary--hover:hover{border-color:#323130}.ms-borderColor-neutralPrimaryAlt,.ms-borderColor-neutralPrimaryAlt--hover:hover{border-color:#3b3a39}.ms-borderColor-neutralSecondary,.ms-borderColor-neutralSecondary--hover:hover{border-color:#605e5c}.ms-borderColor-neutralSecondaryAlt,.ms-borderColor-neutralSecondaryAlt--hover:hover{border-color:#797775}.ms-borderColor-neutralTertiary,.ms-borderColor-neutralTertiary--hover:hover{border-color:#a19f9d}.ms-borderColor-neutralTertiaryAlt,.ms-borderColor-neutralTertiaryAlt--hover:hover{border-color:#c8c6c4}.ms-borderColor-neutralQuaternary,.ms-borderColor-neutralQuaternary--hover:hover{border-color:#d2d0ce}.ms-borderColor-neutralQuaternaryAlt,.ms-borderColor-neutralQuaternaryAlt--hover:hover{border-color:#e1dfdd}.ms-borderColor-neutralLight,.ms-borderColor-neutralLight--hover:hover{border-color:#edebe9}.ms-borderColor-neutralLighter,.ms-borderColor-neutralLighter--hover:hover{border-color:#f3f2f1}.ms-borderColor-neutralLighterAlt,.ms-borderColor-neutralLighterAlt--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-neutralDark,.ms-fontColor-neutralDark--hover:hover{color:#201f1e}.ms-fontColor-neutralPrimary,.ms-fontColor-neutralPrimary--hover:hover{color:#323130}.ms-fontColor-neutralPrimaryAlt,.ms-fontColor-neutralPrimaryAlt--hover:hover{color:#3b3a39}.ms-fontColor-neutralSecondary,.ms-fontColor-neutralSecondary--hover:hover{color:#605e5c}.ms-fontColor-neutralSecondaryAlt,.ms-fontColor-neutralSecondaryAlt--hover:hover{color:#797775}.ms-fontColor-neutralTertiary,.ms-fontColor-neutralTertiary--hover:hover{color:#a19f9d}.ms-fontColor-neutralTertiaryAlt,.ms-fontColor-neutralTertiaryAlt--hover:hover{color:#c8c6c4}.ms-fontColor-neutralQuaternary,.ms-fontColor-neutralQuaternary--hover:hover{color:#d2d0ce}.ms-fontColor-neutralQuaternaryAlt,.ms-fontColor-neutralQuaternaryAlt--hover:hover{color:#e1dfdd}.ms-fontColor-neutralLight,.ms-fontColor-neutralLight--hover:hover{color:#edebe9}.ms-fontColor-neutralLighter,.ms-fontColor-neutralLighter--hover:hover{color:#f3f2f1}.ms-fontColor-neutralLighterAlt,.ms-fontColor-neutralLighterAlt--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-bgColor-yellow,.ms-bgColor-yellow--hover:hover{background-color:#ffb900}.ms-bgColor-yellowLight,.ms-bgColor-yellowLight--hover:hover{background-color:#fff100}.ms-bgColor-orange,.ms-bgColor-orange--hover:hover{background-color:#d83b01}.ms-bgColor-orangeLight,.ms-bgColor-orangeLight--hover:hover{background-color:#ea4300}.ms-bgColor-orangeLighter,.ms-bgColor-orangeLighter--hover:hover{background-color:#ff8c00}.ms-bgColor-redDark,.ms-bgColor-redDark--hover:hover{background-color:#a80000}.ms-bgColor-red,.ms-bgColor-red--hover:hover{background-color:#e81123}.ms-bgColor-magentaDark,.ms-bgColor-magentaDark--hover:hover{background-color:#5c005c}.ms-bgColor-magenta,.ms-bgColor-magenta--hover:hover{background-color:#b4009e}.ms-bgColor-magentaLight,.ms-bgColor-magentaLight--hover:hover{background-color:#e3008c}.ms-bgColor-purpleDark,.ms-bgColor-purpleDark--hover:hover{background-color:#32145a}.ms-bgColor-purple,.ms-bgColor-purple--hover:hover{background-color:#5c2d91}.ms-bgColor-purpleLight,.ms-bgColor-purpleLight--hover:hover{background-color:#b4a0ff}.ms-bgColor-blueDark,.ms-bgColor-blueDark--hover:hover{background-color:#002050}.ms-bgColor-blueMid,.ms-bgColor-blueMid--hover:hover{background-color:#00188f}.ms-bgColor-blue,.ms-bgColor-blue--hover:hover{background-color:#0078d4}.ms-bgColor-blueLight,.ms-bgColor-blueLight--hover:hover{background-color:#00bcf2}.ms-bgColor-tealDark,.ms-bgColor-tealDark--hover:hover{background-color:#004b50}.ms-bgColor-teal,.ms-bgColor-teal--hover:hover{background-color:#008272}.ms-bgColor-tealLight,.ms-bgColor-tealLight--hover:hover{background-color:#00b294}.ms-bgColor-greenDark,.ms-bgColor-greenDark--hover:hover{background-color:#004b1c}.ms-bgColor-green,.ms-bgColor-green--hover:hover{background-color:#107c10}.ms-bgColor-greenLight,.ms-bgColor-greenLight--hover:hover{background-color:#bad80a}.ms-borderColor-yellow,.ms-borderColor-yellow--hover:hover{border-color:#ffb900}.ms-borderColor-yellowLight,.ms-borderColor-yellowLight--hover:hover{border-color:#fff100}.ms-borderColor-orange,.ms-borderColor-orange--hover:hover{border-color:#d83b01}.ms-borderColor-orangeLight,.ms-borderColor-orangeLight--hover:hover{border-color:#ea4300}.ms-borderColor-orangeLighter,.ms-borderColor-orangeLighter--hover:hover{border-color:#ff8c00}.ms-borderColor-redDark,.ms-borderColor-redDark--hover:hover{border-color:#a80000}.ms-borderColor-red,.ms-borderColor-red--hover:hover{border-color:#e81123}.ms-borderColor-magentaDark,.ms-borderColor-magentaDark--hover:hover{border-color:#5c005c}.ms-borderColor-magenta,.ms-borderColor-magenta--hover:hover{border-color:#b4009e}.ms-borderColor-magentaLight,.ms-borderColor-magentaLight--hover:hover{border-color:#e3008c}.ms-borderColor-purpleDark,.ms-borderColor-purpleDark--hover:hover{border-color:#32145a}.ms-borderColor-purple,.ms-borderColor-purple--hover:hover{border-color:#5c2d91}.ms-borderColor-purpleLight,.ms-borderColor-purpleLight--hover:hover{border-color:#b4a0ff}.ms-borderColor-blueDark,.ms-borderColor-blueDark--hover:hover{border-color:#002050}.ms-borderColor-blueMid,.ms-borderColor-blueMid--hover:hover{border-color:#00188f}.ms-borderColor-blue,.ms-borderColor-blue--hover:hover{border-color:#0078d4}.ms-borderColor-blueLight,.ms-borderColor-blueLight--hover:hover{border-color:#00bcf2}.ms-borderColor-tealDark,.ms-borderColor-tealDark--hover:hover{border-color:#004b50}.ms-borderColor-teal,.ms-borderColor-teal--hover:hover{border-color:#008272}.ms-borderColor-tealLight,.ms-borderColor-tealLight--hover:hover{border-color:#00b294}.ms-borderColor-greenDark,.ms-borderColor-greenDark--hover:hover{border-color:#004b1c}.ms-borderColor-green,.ms-borderColor-green--hover:hover{border-color:#107c10}.ms-borderColor-greenLight,.ms-borderColor-greenLight--hover:hover{border-color:#bad80a}.ms-fontColor-yellow,.ms-fontColor-yellow--hover:hover{color:#ffb900}.ms-fontColor-yellowLight,.ms-fontColor-yellowLight--hover:hover{color:#fff100}.ms-fontColor-orange,.ms-fontColor-orange--hover:hover{color:#d83b01}.ms-fontColor-orangeLight,.ms-fontColor-orangeLight--hover:hover{color:#ea4300}.ms-fontColor-orangeLighter,.ms-fontColor-orangeLighter--hover:hover{color:#ff8c00}.ms-fontColor-redDark,.ms-fontColor-redDark--hover:hover{color:#a80000}.ms-fontColor-red,.ms-fontColor-red--hover:hover{color:#e81123}.ms-fontColor-magentaDark,.ms-fontColor-magentaDark--hover:hover{color:#5c005c}.ms-fontColor-magenta,.ms-fontColor-magenta--hover:hover{color:#b4009e}.ms-fontColor-magentaLight,.ms-fontColor-magentaLight--hover:hover{color:#e3008c}.ms-fontColor-purpleDark,.ms-fontColor-purpleDark--hover:hover{color:#32145a}.ms-fontColor-purple,.ms-fontColor-purple--hover:hover{color:#5c2d91}.ms-fontColor-purpleLight,.ms-fontColor-purpleLight--hover:hover{color:#b4a0ff}.ms-fontColor-blueDark,.ms-fontColor-blueDark--hover:hover{color:#002050}.ms-fontColor-blueMid,.ms-fontColor-blueMid--hover:hover{color:#00188f}.ms-fontColor-blue,.ms-fontColor-blue--hover:hover{color:#0078d4}.ms-fontColor-blueLight,.ms-fontColor-blueLight--hover:hover{color:#00bcf2}.ms-fontColor-tealDark,.ms-fontColor-tealDark--hover:hover{color:#004b50}.ms-fontColor-teal,.ms-fontColor-teal--hover:hover{color:#008272}.ms-fontColor-tealLight,.ms-fontColor-tealLight--hover:hover{color:#00b294}.ms-fontColor-greenDark,.ms-fontColor-greenDark--hover:hover{color:#004b1c}.ms-fontColor-green,.ms-fontColor-green--hover:hover{color:#107c10}.ms-fontColor-greenLight,.ms-fontColor-greenLight--hover:hover{color:#bad80a}.ms-bgColor-info,.ms-bgColor-info--hover:hover{background-color:#f3f2f1}.ms-bgColor-success,.ms-bgColor-success--hover:hover{background-color:#dff6dd}.ms-bgColor-severeWarning,.ms-bgColor-severeWarning--hover:hover{background-color:#fed9cc}.ms-bgColor-warning,.ms-bgColor-warning--hover:hover{background-color:#fff4ce}.ms-bgColor-error,.ms-bgColor-error--hover:hover{background-color:#fde7e9}.ms-fontColor-info,.ms-fontColor-info--hover:hover{color:#797775}.ms-fontColor-success,.ms-fontColor-success--hover:hover{color:#107c10}.ms-fontColor-alert,.ms-fontColor-alert--hover:hover{color:#d83b01}.ms-fontColor-warning,.ms-fontColor-warning--hover:hover{color:#797775}.ms-fontColor-severeWarning,.ms-fontColor-severeWarning--hover:hover{color:#d83b01}.ms-fontColor-error,.ms-fontColor-error--hover:hover{color:#a80000}.ms-bgColor-contrastBlackDisabled,.ms-bgColor-contrastBlackDisabled--hover:hover{background-color:#0f0}.ms-bgColor-contrastWhiteDisabled,.ms-bgColor-contrastWhiteDisabled--hover:hover{background-color:#600000}.ms-bgColor-contrastBlackSelected,.ms-bgColor-contrastBlackSelected--hover:hover{background-color:#1aebff}.ms-bgColor-contrastWhiteSelected,.ms-bgColor-contrastWhiteSelected--hover:hover{background-color:#37006e}.ms-fontColor-contrastBlackDisabled,.ms-fontColor-contrastBlackDisabled--hover:hover{color:#0f0}.ms-fontColor-contrastWhiteDisabled,.ms-fontColor-contrastWhiteDisabled--hover:hover{color:#600000}.ms-fontColor-contrastBlackSelected,.ms-fontColor-contrastBlackSelected--hover:hover{color:#1aebff}.ms-fontColor-contrastWhiteSelected,.ms-fontColor-contrastWhiteSelected--hover:hover{color:#37006e}.ms-borderColor-contrastBlackDisabled,.ms-borderColor-contrastBlackDisabled--hover:hover{border-color:#0f0}.ms-borderColor-contrastWhiteDisabled,.ms-borderColor-contrastWhiteDisabled--hover:hover{border-color:#600000}.ms-borderColor-contrastBlackSelected,.ms-borderColor-contrastBlackSelected--hover:hover{border-color:#1aebff}.ms-borderColor-contrastWhiteSelected,.ms-borderColor-contrastWhiteSelected--hover:hover{border-color:#37006e}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-depth-0{box-shadow:0 0 0 0 transparent}.ms-depth-4{box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.132),0 .3px .9px 0 rgba(0,0,0,.108)}.ms-depth-8{box-shadow:0 3.2px 7.2px 0 rgba(0,0,0,.132),0 .6px 1.8px 0 rgba(0,0,0,.108)}.ms-depth-16{box-shadow:0 6.4px 14.4px 0 rgba(0,0,0,.132),0 1.2px 3.6px 0 rgba(0,0,0,.108)}.ms-depth-64{box-shadow:0 25.6px 57.6px 0 rgba(0,0,0,.22),0 4.8px 14.4px 0 rgba(0,0,0,.18)}.ms-fontSize-68{font-size:68px}.ms-fontSize-42{font-size:42px}.ms-fontSize-32{font-size:32px}.ms-fontSize-28{font-size:28px}.ms-fontSize-24{font-size:24px}.ms-fontSize-20{font-size:20px}.ms-fontSize-18{font-size:18px}.ms-fontSize-16{font-size:16px}.ms-fontSize-14{font-size:14px}.ms-fontSize-12{font-size:12px}.ms-fontSize-10{font-size:10px}.ms-fontWeight-regular{font-weight:400}.ms-fontWeight-semibold{font-weight:600}.ms-fontWeight-bold{font-weight:700}.ms-font-su{font-size:42px;font-weight:100}.ms-font-xxl{font-size:28px;font-weight:100}.ms-font-xl-plus{font-size:24px;font-weight:100}.ms-font-xl{font-size:21px;font-weight:100}.ms-font-l{font-size:17px;font-weight:300}.ms-font-m-plus{font-size:15px;font-weight:400}.ms-font-m{font-size:14px;font-weight:400}.ms-font-s-plus{font-size:13px;font-weight:400}.ms-font-s{font-size:12px;font-weight:400}.ms-font-xs{font-size:11px;font-weight:400}.ms-font-mi{font-size:10px;font-weight:600}.ms-fontWeight-light{font-weight:100}.ms-fontWeight-semilight{font-weight:300}.ms-fontSize-su{font-size:42px}.ms-fontSize-xxl{font-size:28px}.ms-fontSize-xlPlus{font-size:24px}.ms-fontSize-xl{font-size:21px}.ms-fontSize-l{font-size:17px}.ms-fontSize-mPlus{font-size:15px}.ms-fontSize-m{font-size:14px}.ms-fontSize-sPlus{font-size:13px}.ms-fontSize-s{font-size:12px}.ms-fontSize-xs{font-size:11px}.ms-fontSize-mi{font-size:10px}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:600;font-style:normal}.ms-Grid{box-sizing:border-box;zoom:1;padding:0 8px}.ms-Grid::after,.ms-Grid::before{display:table;content:'';line-height:0}.ms-Grid::after{clear:both}.ms-Grid-row{margin:0 -8px;box-sizing:border-box;zoom:1}.ms-Grid-row::after,.ms-Grid-row::before{display:table;content:'';line-height:0}.ms-Grid-row::after{clear:both}.ms-Grid-col{position:relative;min-height:1px;padding-left:8px;padding-right:8px;box-sizing:border-box}[dir=ltr] .ms-Grid-col{float:left}[dir=rtl] .ms-Grid-col{float:right}.ms-Grid-col .ms-Grid{padding:0}.ms-Icon{display:inline-block;font-family:FabricMDL2Icons;font-style:normal;font-weight:400;speak:none}.ms-Icon--circle{margin:0 .5em 0 0;position:relative;display:inline-block;font-size:1rem;width:1em;height:1em;padding:0;text-align:left}[dir=rtl] .ms-Icon--circle{margin:0 0 0 .5em}.ms-Icon--circle::after,.ms-Icon--circle::before{line-height:1;font-size:inherit}.ms-Icon--circle::before{display:block;width:100%;height:100%;margin:0;padding:0;position:absolute}.ms-Icon--circle::after{content:'\\\\e000';position:absolute;top:0;left:0;transform:scale(2);transform-origin:50% 50%;z-index:0}.ms-Icon--xs{font-size:10px}.ms-Icon--s{font-size:12px}.ms-Icon--m{font-size:16px}.ms-Icon--l{font-size:20px}.ms-Icon--12PointStar::before{content:''}.ms-Icon--6PointStar::before{content:''}.ms-Icon--AADLogo::before{content:''}.ms-Icon--Accept::before{content:''}.ms-Icon--AccessibiltyChecker::before{content:''}.ms-Icon--AccessLogo::before{content:''}.ms-Icon--AccessLogoFill::before{content:''}.ms-Icon--AccountActivity::before{content:''}.ms-Icon--AccountBrowser::before{content:''}.ms-Icon--AccountManagement::before{content:''}.ms-Icon--Accounts::before{content:''}.ms-Icon--ActionCenter::before{content:''}.ms-Icon--ActivateOrders::before{content:''}.ms-Icon--ActivityFeed::before{content:''}.ms-Icon--Add::before{content:''}.ms-Icon--AddBookmark::before{content:''}.ms-Icon--AddEvent::before{content:''}.ms-Icon--AddFavorite::before{content:''}.ms-Icon--AddFavoriteFill::before{content:''}.ms-Icon--AddFriend::before{content:''}.ms-Icon--AddGroup::before{content:''}.ms-Icon--AddHome::before{content:''}.ms-Icon--AddIn::before{content:''}.ms-Icon--AddLink::before{content:''}.ms-Icon--AddNotes::before{content:''}.ms-Icon--AddOnlineMeeting::before{content:''}.ms-Icon--AddPhone::before{content:''}.ms-Icon--AddReaction::before{content:''}.ms-Icon--AddSpaceAfter::before{content:''}.ms-Icon--AddSpaceBefore::before{content:''}.ms-Icon--AddTo::before{content:''}.ms-Icon--AddToShoppingList::before{content:''}.ms-Icon--AddWork::before{content:''}.ms-Icon--Admin::before{content:''}.ms-Icon--AdminALogo32::before{content:''}.ms-Icon--AdminALogoFill32::before{content:''}.ms-Icon--AdminALogoInverse32::before{content:''}.ms-Icon--AdminCLogoInverse32::before{content:''}.ms-Icon--AdminDLogoInverse32::before{content:''}.ms-Icon--AdminELogoInverse32::before{content:''}.ms-Icon--AdminLLogoInverse32::before{content:''}.ms-Icon--AdminMLogoInverse32::before{content:''}.ms-Icon--AdminOLogoInverse32::before{content:''}.ms-Icon--AdminPLogoInverse32::before{content:''}.ms-Icon--AdminSLogoInverse32::before{content:''}.ms-Icon--AdminYLogoInverse32::before{content:''}.ms-Icon--Airplane::before{content:''}.ms-Icon--AirplaneSolid::before{content:''}.ms-Icon--AirTickets::before{content:''}.ms-Icon--AlarmClock::before{content:''}.ms-Icon--Album::before{content:''}.ms-Icon--AlbumRemove::before{content:''}.ms-Icon--AlertSettings::before{content:''}.ms-Icon--AlertSolid::before{content:''}.ms-Icon--AlignCenter::before{content:''}.ms-Icon--AlignHorizontalCenter::before{content:''}.ms-Icon--AlignHorizontalLeft::before{content:''}.ms-Icon--AlignHorizontalRight::before{content:''}.ms-Icon--AlignJustify::before{content:''}.ms-Icon--AlignLeft::before{content:''}.ms-Icon--AlignRight::before{content:''}.ms-Icon--AlignVerticalBottom::before{content:''}.ms-Icon--AlignVerticalCenter::before{content:''}.ms-Icon--AlignVerticalTop::before{content:''}.ms-Icon--AllApps::before{content:''}[dir=rtl] .ms-Icon--AllApps::before{content:''}.ms-Icon--AllAppsMirrored::before{content:''}[dir=rtl] .ms-Icon--AllAppsMirrored::before{content:''}.ms-Icon--AllCurrency::before{content:''}.ms-Icon--AltText::before{content:''}.ms-Icon--AnalyticsLogo::before{content:''}.ms-Icon--AnalyticsQuery::before{content:''}.ms-Icon--AnalyticsReport::before{content:''}.ms-Icon--AnalyticsView::before{content:''}.ms-Icon--AnchorLock::before{content:''}.ms-Icon--Annotation::before{content:''}.ms-Icon--AppIconDefault::before{content:''}.ms-Icon--AppIconDefaultAdd::before{content:''}.ms-Icon--AppIconDefaultList::before{content:''}.ms-Icon--Archive::before{content:''}.ms-Icon--ArchiveUndo::before{content:''}.ms-Icon--AreaChart::before{content:''}.ms-Icon--ArrangeBringForward::before{content:''}.ms-Icon--ArrangeBringToFront::before{content:''}.ms-Icon--ArrangeByFrom::before{content:''}.ms-Icon--ArrangeSendBackward::before{content:''}.ms-Icon--ArrangeSendToBack::before{content:''}.ms-Icon--Arrivals::before{content:''}.ms-Icon--ArrowDownRight8::before{content:''}[dir=rtl] .ms-Icon--ArrowDownRight8::before{content:''}.ms-Icon--ArrowDownRightMirrored8::before{content:''}[dir=rtl] .ms-Icon--ArrowDownRightMirrored8::before{content:''}.ms-Icon--ArrowTallDownLeft::before{content:''}.ms-Icon--ArrowTallDownRight::before{content:''}.ms-Icon--ArrowTallUpLeft::before{content:''}.ms-Icon--ArrowTallUpRight::before{content:''}.ms-Icon--ArrowUpRight::before{content:''}.ms-Icon--ArrowUpRight8::before{content:''}[dir=rtl] .ms-Icon--ArrowUpRight8::before{content:''}.ms-Icon--ArrowUpRightMirrored8::before{content:''}[dir=rtl] .ms-Icon--ArrowUpRightMirrored8::before{content:''}.ms-Icon--Articles::before{content:''}.ms-Icon--Ascending::before{content:''}.ms-Icon--AspectRatio::before{content:''}.ms-Icon--AssessmentGroup::before{content:''}.ms-Icon--AssessmentGroupTemplate::before{content:''}.ms-Icon--AssetLibrary::before{content:''}.ms-Icon--Assign::before{content:''}.ms-Icon--Asterisk::before{content:''}.ms-Icon--AsteriskSolid::before{content:''}.ms-Icon--ATPLogo::before{content:''}.ms-Icon--Attach::before{content:''}.ms-Icon--AustralianRules::before{content:''}.ms-Icon--AuthenticatorApp::before{content:''}.ms-Icon--AutoDeploySettings::before{content:''}.ms-Icon--AutoEnhanceOff::before{content:''}.ms-Icon--AutoEnhanceOn::before{content:''}.ms-Icon--AutoFillTemplate::before{content:''}.ms-Icon--AutoFitContents::before{content:''}.ms-Icon--AutoFitWindow::before{content:''}.ms-Icon--AutoHeight::before{content:''}.ms-Icon--AutomateFlow::before{content:''}.ms-Icon--AutoRacing::before{content:''}.ms-Icon--AwayStatus::before{content:''}.ms-Icon--AzureAPIManagement::before{content:''}.ms-Icon--AzureKeyVault::before{content:''}.ms-Icon--AzureLogo::before{content:''}.ms-Icon--AzureServiceEndpoint::before{content:''}.ms-Icon--Back::before{content:''}.ms-Icon--BackgroundColor::before{content:''}.ms-Icon--Backlog::before{content:''}.ms-Icon--BacklogBoard::before{content:''}.ms-Icon--BacklogList::before{content:''}.ms-Icon--BackToWindow::before{content:''}.ms-Icon--Badge::before{content:''}.ms-Icon--Balloons::before{content:''}.ms-Icon--Bank::before{content:''}.ms-Icon--BankSolid::before{content:''}.ms-Icon--BarChart4::before{content:''}.ms-Icon--BarChartHorizontal::before{content:''}.ms-Icon--BarChartVertical::before{content:''}.ms-Icon--BarChartVerticalEdit::before{content:''}.ms-Icon--BarChartVerticalFill::before{content:''}.ms-Icon--BarChartVerticalFilter::before{content:''}.ms-Icon--BarChartVerticalFilterSolid::before{content:''}.ms-Icon--Baseball::before{content:''}.ms-Icon--BeerMug::before{content:''}.ms-Icon--BIDashboard::before{content:''}.ms-Icon--BidiLtr::before{content:''}.ms-Icon--BidiRtl::before{content:''}.ms-Icon--BingLogo::before{content:''}.ms-Icon--BirthdayCake::before{content:''}.ms-Icon--BlockContact::before{content:''}.ms-Icon--Blocked::before{content:''}.ms-Icon--Blocked12::before{content:''}.ms-Icon--Blocked2::before{content:''}.ms-Icon--Blocked2Solid::before{content:''}.ms-Icon--BlockedSite::before{content:''}.ms-Icon--BlockedSiteSolid12::before{content:''}.ms-Icon--BlockedSolid::before{content:''}.ms-Icon--Blog::before{content:''}.ms-Icon--BlowingSnow::before{content:''}.ms-Icon--Blur::before{content:''}.ms-Icon--Boards::before{content:''}.ms-Icon--Bold::before{content:''}.ms-Icon--BookAnswers::before{content:''}.ms-Icon--BookingsLogo::before{content:''}.ms-Icon--BookmarkReport::before{content:''}.ms-Icon--Bookmarks::before{content:''}[dir=rtl] .ms-Icon--Bookmarks::before{content:''}.ms-Icon--BookmarksMirrored::before{content:''}[dir=rtl] .ms-Icon--BookmarksMirrored::before{content:''}.ms-Icon--BorderDash::before{content:''}.ms-Icon--BorderDot::before{content:''}.ms-Icon--BoxAdditionSolid::before{content:''}.ms-Icon--BoxCheckmarkSolid::before{content:''}.ms-Icon--BoxMultiplySolid::before{content:''}.ms-Icon--BoxPlaySolid::before{content:''}.ms-Icon--BoxSubtractSolid::before{content:''}.ms-Icon--BranchCommit::before{content:''}.ms-Icon--BranchCompare::before{content:''}.ms-Icon--BranchFork::before{content:''}.ms-Icon--BranchFork2::before{content:''}.ms-Icon--BranchLocked::before{content:''}.ms-Icon--BranchMerge::before{content:''}.ms-Icon--BranchPullRequest::before{content:''}.ms-Icon--BranchSearch::before{content:''}.ms-Icon--BranchShelveset::before{content:''}.ms-Icon--Breadcrumb::before{content:''}.ms-Icon--Breakfast::before{content:''}.ms-Icon--Brightness::before{content:''}.ms-Icon--Broom::before{content:''}.ms-Icon--BrowserScreenShot::before{content:''}.ms-Icon--BrowserTab::before{content:''}.ms-Icon--BrowserTabScreenshot::before{content:''}.ms-Icon--Brunch::before{content:''}.ms-Icon--Brush::before{content:''}.ms-Icon--BucketColor::before{content:''}.ms-Icon--BucketColorFill::before{content:''}.ms-Icon--BufferTimeAfter::before{content:''}.ms-Icon--BufferTimeBefore::before{content:''}.ms-Icon--BufferTimeBoth::before{content:''}.ms-Icon--Bug::before{content:''}.ms-Icon--BugBlock::before{content:''}.ms-Icon--BugSolid::before{content:''}.ms-Icon--BugSync::before{content:''}.ms-Icon--Build::before{content:''}.ms-Icon--BuildDefinition::before{content:''}.ms-Icon--BuildIssue::before{content:''}.ms-Icon--BuildQueue::before{content:''}.ms-Icon--BuildQueueNew::before{content:''}.ms-Icon--BulkUpload::before{content:''}.ms-Icon--BulletedList2::before{content:''}[dir=rtl] .ms-Icon--BulletedList2::before{content:''}.ms-Icon--BulletedList2Mirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedList2Mirrored::before{content:''}.ms-Icon--BulletedListBullet::before{content:''}[dir=rtl] .ms-Icon--BulletedListBullet::before{content:''}.ms-Icon--BulletedListBulletMirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedListBulletMirrored::before{content:''}.ms-Icon--BulletedList::before{content:''}[dir=rtl] .ms-Icon--BulletedList::before{content:''}.ms-Icon--BulletedListMirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedListMirrored::before{content:''}.ms-Icon--BulletedListText::before{content:''}[dir=rtl] .ms-Icon--BulletedListText::before{content:''}.ms-Icon--BulletedListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedListTextMirrored::before{content:''}.ms-Icon--BulletedTreeList::before{content:''}.ms-Icon--Bullseye::before{content:''}.ms-Icon--BullseyeTarget::before{content:''}.ms-Icon--BullseyeTargetEdit::before{content:''}.ms-Icon--Bus::before{content:''}.ms-Icon--BusinessCenterLogo::before{content:''}.ms-Icon--BusinessHoursSign::before{content:''}.ms-Icon--BusSolid::before{content:''}.ms-Icon--ButtonControl::before{content:''}.ms-Icon--Cafe::before{content:''}.ms-Icon--Cake::before{content:''}.ms-Icon--Calculator::before{content:''}.ms-Icon--CalculatorAddition::before{content:''}.ms-Icon--CalculatorDelta::before{content:''}.ms-Icon--CalculatorEqualTo::before{content:''}.ms-Icon--CalculatorMultiply::before{content:''}.ms-Icon--CalculatorNotEqualTo::before{content:''}.ms-Icon--CalculatorPercentage::before{content:''}.ms-Icon--CalculatorSubtract::before{content:''}.ms-Icon--CalendarAgenda::before{content:''}.ms-Icon--CalendarDay::before{content:''}.ms-Icon--Calendar::before{content:''}[dir=rtl] .ms-Icon--Calendar::before{content:''}.ms-Icon--CalendarMirrored::before{content:''}[dir=rtl] .ms-Icon--CalendarMirrored::before{content:''}.ms-Icon--CalendarReply::before{content:''}.ms-Icon--CalendarSettings::before{content:''}[dir=rtl] .ms-Icon--CalendarSettings::before{content:''}.ms-Icon--CalendarSettingsMirrored::before{content:''}[dir=rtl] .ms-Icon--CalendarSettingsMirrored::before{content:''}.ms-Icon--CalendarWeek::before{content:''}.ms-Icon--CalendarWorkWeek::before{content:''}.ms-Icon--CalendarYear::before{content:''}.ms-Icon--Calories::before{content:''}.ms-Icon--CaloriesAdd::before{content:''}.ms-Icon--Camera::before{content:''}.ms-Icon--CampaignTemplate::before{content:''}.ms-Icon--Cancel::before{content:''}.ms-Icon--CannedChat::before{content:''}.ms-Icon--Car::before{content:''}.ms-Icon--CaretBottomLeftCenter8::before{content:''}.ms-Icon--CaretBottomLeftSolid8::before{content:''}.ms-Icon--CaretBottomRightCenter8::before{content:''}.ms-Icon--CaretBottomRightSolid8::before{content:''}.ms-Icon--CaretDown8::before{content:''}.ms-Icon--CaretDownSolid8::before{content:''}.ms-Icon--CaretHollow::before{content:''}[dir=rtl] .ms-Icon--CaretHollow::before{content:''}.ms-Icon--CaretHollowMirrored::before{content:''}[dir=rtl] .ms-Icon--CaretHollowMirrored::before{content:''}.ms-Icon--CaretLeft8::before{content:''}.ms-Icon--CaretLeftSolid8::before{content:''}.ms-Icon--CaretRight::before{content:''}.ms-Icon--CaretRight8::before{content:''}.ms-Icon--CaretRightSolid8::before{content:''}.ms-Icon--CaretSolid16::before{content:''}.ms-Icon--CaretSolidDown::before{content:''}.ms-Icon--CaretSolidLeft::before{content:''}.ms-Icon--CaretSolid::before{content:''}[dir=rtl] .ms-Icon--CaretSolid::before{content:''}.ms-Icon--CaretSolidMirrored::before{content:''}[dir=rtl] .ms-Icon--CaretSolidMirrored::before{content:''}.ms-Icon--CaretSolidRight::before{content:''}.ms-Icon--CaretSolidUp::before{content:''}.ms-Icon--CaretTopLeftCenter8::before{content:''}.ms-Icon--CaretTopLeftSolid8::before{content:''}.ms-Icon--CaretTopRightCenter8::before{content:''}.ms-Icon--CaretTopRightSolid8::before{content:''}.ms-Icon--CaretUp8::before{content:''}.ms-Icon--CaretUpSolid8::before{content:''}.ms-Icon--Cat::before{content:''}.ms-Icon--CellPhone::before{content:''}.ms-Icon--Certificate::before{content:''}.ms-Icon--CertifiedDatabase::before{content:''}.ms-Icon--ChangeEntitlements::before{content:''}.ms-Icon--Chart::before{content:''}.ms-Icon--ChartSeries::before{content:''}.ms-Icon--ChartTemplate::before{content:''}.ms-Icon--ChartXAngle::before{content:''}.ms-Icon--ChartYAngle::before{content:''}.ms-Icon--Chat::before{content:''}.ms-Icon--ChatBot::before{content:''}.ms-Icon--ChatInviteFriend::before{content:''}.ms-Icon--ChatSolid::before{content:''}.ms-Icon--Checkbox::before{content:''}.ms-Icon--CheckboxComposite::before{content:''}.ms-Icon--CheckboxCompositeReversed::before{content:''}.ms-Icon--CheckboxFill::before{content:''}.ms-Icon--CheckboxIndeterminate::before{content:''}.ms-Icon--CheckedOutByOther12::before{content:''}.ms-Icon--CheckedOutByYou12::before{content:''}.ms-Icon--CheckList::before{content:''}.ms-Icon--CheckListCheck::before{content:''}[dir=rtl] .ms-Icon--CheckListCheck::before{content:''}.ms-Icon--CheckListCheckMirrored::before{content:''}[dir=rtl] .ms-Icon--CheckListCheckMirrored::before{content:''}.ms-Icon--CheckListText::before{content:''}[dir=rtl] .ms-Icon--CheckListText::before{content:''}.ms-Icon--CheckListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--CheckListTextMirrored::before{content:''}.ms-Icon--CheckMark::before{content:''}.ms-Icon--ChevronDown::before{content:''}.ms-Icon--ChevronDownEnd6::before{content:''}.ms-Icon--ChevronDownMed::before{content:''}.ms-Icon--ChevronDownSmall::before{content:''}.ms-Icon--ChevronFold10::before{content:''}.ms-Icon--ChevronLeft::before{content:''}.ms-Icon--ChevronLeftEnd6::before{content:''}.ms-Icon--ChevronLeftMed::before{content:''}.ms-Icon--ChevronLeftSmall::before{content:''}.ms-Icon--ChevronRight::before{content:''}.ms-Icon--ChevronRightEnd6::before{content:''}.ms-Icon--ChevronRightMed::before{content:''}.ms-Icon--ChevronRightSmall::before{content:''}.ms-Icon--ChevronUnfold10::before{content:''}.ms-Icon--ChevronUp::before{content:''}.ms-Icon--ChevronUpEnd6::before{content:''}.ms-Icon--ChevronUpMed::before{content:''}.ms-Icon--ChevronUpSmall::before{content:''}.ms-Icon--Childof::before{content:''}.ms-Icon--Chopsticks::before{content:''}.ms-Icon--ChromeBack::before{content:''}[dir=rtl] .ms-Icon--ChromeBack::before{content:''}.ms-Icon--ChromeBackMirrored::before{content:''}[dir=rtl] .ms-Icon--ChromeBackMirrored::before{content:''}.ms-Icon--ChromeClose::before{content:''}.ms-Icon--ChromeFullScreen::before{content:''}.ms-Icon--ChromeMinimize::before{content:''}.ms-Icon--ChromeRestore::before{content:''}.ms-Icon--CircleAddition::before{content:''}.ms-Icon--CircleAdditionSolid::before{content:''}.ms-Icon--CircleFill::before{content:''}.ms-Icon--CircleHalfFull::before{content:''}.ms-Icon--CirclePause::before{content:''}.ms-Icon--CirclePauseSolid::before{content:''}.ms-Icon--CirclePlus::before{content:''}.ms-Icon--CircleRing::before{content:''}.ms-Icon--CircleShape::before{content:''}.ms-Icon--CircleShapeSolid::before{content:''}.ms-Icon--CircleStop::before{content:''}.ms-Icon--CircleStopSolid::before{content:''}.ms-Icon--CityNext::before{content:''}.ms-Icon--CityNext2::before{content:''}.ms-Icon--ClassNotebookLogo16::before{content:''}.ms-Icon--ClassNotebookLogo32::before{content:''}.ms-Icon--ClassNotebookLogoFill16::before{content:''}.ms-Icon--ClassNotebookLogoFill32::before{content:''}.ms-Icon--ClassNotebookLogoInverse::before{content:''}.ms-Icon--ClassNotebookLogoInverse16::before{content:''}.ms-Icon--ClassNotebookLogoInverse32::before{content:''}.ms-Icon--ClassroomLogo::before{content:''}.ms-Icon--Clear::before{content:''}.ms-Icon--ClearFilter::before{content:''}.ms-Icon--ClearFormatting::before{content:''}.ms-Icon--ClearFormattingA::before{content:''}.ms-Icon--ClearFormattingEraser::before{content:''}.ms-Icon--ClearNight::before{content:''}.ms-Icon--ClearSelection::before{content:''}[dir=rtl] .ms-Icon--ClearSelection::before{content:''}.ms-Icon--ClearSelectionMirrored::before{content:''}[dir=rtl] .ms-Icon--ClearSelectionMirrored::before{content:''}.ms-Icon--ClipboardList::before{content:''}[dir=rtl] .ms-Icon--ClipboardList::before{content:''}.ms-Icon--ClipboardListMirrored::before{content:''}[dir=rtl] .ms-Icon--ClipboardListMirrored::before{content:''}.ms-Icon--ClipboardSolid::before{content:''}.ms-Icon--Clock::before{content:''}.ms-Icon--CloneToDesktop::before{content:''}.ms-Icon--ClosedCaption::before{content:''}.ms-Icon--ClosePane::before{content:''}[dir=rtl] .ms-Icon--ClosePane::before{content:''}.ms-Icon--ClosePaneMirrored::before{content:''}[dir=rtl] .ms-Icon--ClosePaneMirrored::before{content:''}.ms-Icon--Cloud::before{content:''}.ms-Icon--CloudAdd::before{content:''}.ms-Icon--CloudDownload::before{content:''}.ms-Icon--CloudImportExport::before{content:''}.ms-Icon--CloudUpload::before{content:''}.ms-Icon--CloudWeather::before{content:''}.ms-Icon--Cloudy::before{content:''}.ms-Icon--Cocktails::before{content:''}.ms-Icon--Code::before{content:''}.ms-Icon--CodeEdit::before{content:''}.ms-Icon--Coffee::before{content:''}.ms-Icon--CoffeeScript::before{content:''}.ms-Icon--CollapseContent::before{content:''}.ms-Icon--CollapseContentSingle::before{content:''}.ms-Icon--CollapseMenu::before{content:''}.ms-Icon--CollegeFootball::before{content:''}.ms-Icon--CollegeHoops::before{content:''}.ms-Icon--Color::before{content:''}.ms-Icon--ColorSolid::before{content:''}.ms-Icon--ColumnLeftTwoThirds::before{content:''}.ms-Icon--ColumnLeftTwoThirdsEdit::before{content:''}.ms-Icon--ColumnOptions::before{content:''}.ms-Icon--ColumnRightTwoThirds::before{content:''}.ms-Icon--ColumnRightTwoThirdsEdit::before{content:''}.ms-Icon--ColumnVerticalSection::before{content:''}.ms-Icon--ColumnVerticalSectionEdit::before{content:''}.ms-Icon--Combine::before{content:''}.ms-Icon--Combobox::before{content:''}.ms-Icon--CommandPrompt::before{content:''}.ms-Icon--Comment::before{content:''}.ms-Icon--CommentActive::before{content:''}.ms-Icon--CommentAdd::before{content:''}.ms-Icon--CommentNext::before{content:''}.ms-Icon--CommentPrevious::before{content:''}.ms-Icon--CommentSolid::before{content:''}.ms-Icon--CommentUrgent::before{content:''}.ms-Icon--Commitments::before{content:''}.ms-Icon--CommonDataServiceCDS::before{content:''}.ms-Icon--Communications::before{content:''}.ms-Icon--CompanyDirectory::before{content:''}[dir=rtl] .ms-Icon--CompanyDirectory::before{content:''}.ms-Icon--CompanyDirectoryMirrored::before{content:''}[dir=rtl] .ms-Icon--CompanyDirectoryMirrored::before{content:''}.ms-Icon--Compare::before{content:''}.ms-Icon--CompareUneven::before{content:''}.ms-Icon--CompassNW::before{content:''}.ms-Icon--Completed::before{content:''}.ms-Icon--CompletedSolid::before{content:''}.ms-Icon--ComplianceAudit::before{content:''}.ms-Icon--ConfigurationSolid::before{content:''}.ms-Icon--ConnectContacts::before{content:''}.ms-Icon--ConnectVirtualMachine::before{content:''}.ms-Icon--ConstructionCone::before{content:''}.ms-Icon--ConstructionConeSolid::before{content:''}.ms-Icon--Contact::before{content:''}.ms-Icon--ContactCard::before{content:''}.ms-Icon--ContactCardSettings::before{content:''}[dir=rtl] .ms-Icon--ContactCardSettings::before{content:''}.ms-Icon--ContactCardSettingsMirrored::before{content:''}[dir=rtl] .ms-Icon--ContactCardSettingsMirrored::before{content:''}.ms-Icon--ContactHeart::before{content:''}.ms-Icon--ContactInfo::before{content:''}.ms-Icon--ContactLink::before{content:''}.ms-Icon--ContactList::before{content:''}.ms-Icon--ContactLock::before{content:''}.ms-Icon--ContentFeed::before{content:''}.ms-Icon--ContentSettings::before{content:''}.ms-Icon--ContextMenu::before{content:''}.ms-Icon--Contrast::before{content:''}.ms-Icon--Copy::before{content:''}.ms-Icon--CortanaLogoBeckonInner::before{content:''}.ms-Icon--CortanaLogoBeckonOuter::before{content:''}.ms-Icon--CortanaLogoInner::before{content:''}.ms-Icon--CortanaLogoOuter::before{content:''}.ms-Icon--CortanaLogoReadyInner::before{content:''}.ms-Icon--CortanaLogoReadyOuter::before{content:''}.ms-Icon--Cotton::before{content:''}.ms-Icon--Coupon::before{content:''}.ms-Icon--CPlusPlus::before{content:''}.ms-Icon--CPlusPlusLanguage::before{content:''}.ms-Icon--CreateMailRule::before{content:''}.ms-Icon--Cricket::before{content:''}.ms-Icon--CRMProcesses::before{content:''}.ms-Icon--CRMReport::before{content:''}.ms-Icon--CRMServices::before{content:''}.ms-Icon--Crop::before{content:''}.ms-Icon--Crown::before{content:''}.ms-Icon--CrownSolid::before{content:''}.ms-Icon--CSharp::before{content:''}.ms-Icon--CSharpLanguage::before{content:''}.ms-Icon--CSS::before{content:''}.ms-Icon--CubeShape::before{content:''}.ms-Icon--CubeShapeSolid::before{content:''}.ms-Icon--CustomizeToolbar::before{content:''}.ms-Icon--CustomList::before{content:''}[dir=rtl] .ms-Icon--CustomList::before{content:''}.ms-Icon--CustomListMirrored::before{content:''}[dir=rtl] .ms-Icon--CustomListMirrored::before{content:''}.ms-Icon--Cut::before{content:''}.ms-Icon--Cycling::before{content:''}.ms-Icon--D365CoreHR::before{content:''}.ms-Icon--D365CustomerInsights::before{content:''}.ms-Icon--D365ProjectOperations::before{content:''}.ms-Icon--D365TalentInsight::before{content:''}.ms-Icon--D365TalentLearn::before{content:''}.ms-Icon--DashboardAdd::before{content:''}.ms-Icon--Database::before{content:''}.ms-Icon--DatabaseSync::before{content:''}.ms-Icon--DataConnectionLibrary::before{content:''}.ms-Icon--Dataflows::before{content:''}.ms-Icon--DataflowsLink::before{content:''}.ms-Icon--DataManagementSettings::before{content:''}.ms-Icon--DateTime12::before{content:''}.ms-Icon--DateTime2::before{content:''}.ms-Icon--DateTime::before{content:''}[dir=rtl] .ms-Icon--DateTime::before{content:''}.ms-Icon--DateTimeMirrored::before{content:''}[dir=rtl] .ms-Icon--DateTimeMirrored::before{content:''}.ms-Icon--DeactivateOrders::before{content:''}.ms-Icon--Decimals::before{content:''}.ms-Icon--DecisionSolid::before{content:''}.ms-Icon--DeclineCall::before{content:''}.ms-Icon--DecreaseIndentArrow::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrow::before{content:''}.ms-Icon--DecreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrowMirrored::before{content:''}.ms-Icon--DecreaseIndentLegacy::before{content:''}.ms-Icon--DecreaseIndent::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndent::before{content:''}.ms-Icon--DecreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentMirrored::before{content:''}.ms-Icon--DecreaseIndentText::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentText::before{content:''}.ms-Icon--DecreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentTextMirrored::before{content:''}.ms-Icon--DefaultRatio::before{content:''}.ms-Icon--DefectSolid::before{content:''}.ms-Icon--DefenderTVM::before{content:''}.ms-Icon--Delete::before{content:''}.ms-Icon--DeleteColumns::before{content:''}.ms-Icon--DeleteRows::before{content:''}[dir=rtl] .ms-Icon--DeleteRows::before{content:''}.ms-Icon--DeleteRowsMirrored::before{content:''}[dir=rtl] .ms-Icon--DeleteRowsMirrored::before{content:''}.ms-Icon--DeleteTable::before{content:''}.ms-Icon--DeliveryTruck::before{content:''}.ms-Icon--DelveAnalytics::before{content:''}.ms-Icon--DelveAnalyticsLogo::before{content:''}.ms-Icon--DelveLogo::before{content:''}.ms-Icon--DelveLogoFill::before{content:''}.ms-Icon--DelveLogoInverse::before{content:''}.ms-Icon--DependencyAdd::before{content:''}.ms-Icon--DependencyRemove::before{content:''}.ms-Icon--Deploy::before{content:''}.ms-Icon--Descending::before{content:''}.ms-Icon--Design::before{content:''}.ms-Icon--DesktopScreenshot::before{content:''}.ms-Icon--DeveloperTools::before{content:''}.ms-Icon--DeviceBug::before{content:''}.ms-Icon--DeviceOff::before{content:''}.ms-Icon--DeviceRun::before{content:''}.ms-Icon--Devices2::before{content:''}.ms-Icon--Devices3::before{content:''}.ms-Icon--Devices4::before{content:''}.ms-Icon--Diagnostic::before{content:''}.ms-Icon--DiagnosticDataBarTooltip::before{content:''}.ms-Icon--Dialpad::before{content:''}.ms-Icon--Diamond::before{content:''}.ms-Icon--DiamondSolid::before{content:''}.ms-Icon--Dictionary::before{content:''}.ms-Icon--DictionaryRemove::before{content:''}.ms-Icon--DietPlanNotebook::before{content:''}.ms-Icon--DiffInline::before{content:''}.ms-Icon--DiffSideBySide::before{content:''}.ms-Icon--DisableUpdates::before{content:''}.ms-Icon--DisconnectVirtualMachine::before{content:''}.ms-Icon--Dislike::before{content:''}.ms-Icon--DislikeSolid::before{content:''}.ms-Icon--DistributeDown::before{content:''}.ms-Icon--DockLeft::before{content:''}[dir=rtl] .ms-Icon--DockLeft::before{content:''}.ms-Icon--DockLeftMirrored::before{content:''}[dir=rtl] .ms-Icon--DockLeftMirrored::before{content:''}.ms-Icon--DockRight::before{content:''}.ms-Icon--DocLibrary::before{content:''}.ms-Icon--DocsLogoInverse::before{content:''}.ms-Icon--Document::before{content:''}.ms-Icon--DocumentApproval::before{content:''}.ms-Icon--Documentation::before{content:''}.ms-Icon--DocumentManagement::before{content:''}.ms-Icon--DocumentReply::before{content:''}.ms-Icon--DocumentSearch::before{content:''}.ms-Icon--DocumentSet::before{content:''}.ms-Icon--DOM::before{content:''}.ms-Icon--DonutChart::before{content:''}.ms-Icon--Door::before{content:''}.ms-Icon--DoubleBookmark::before{content:''}.ms-Icon--DoubleChevronDown::before{content:''}.ms-Icon--DoubleChevronDown12::before{content:''}.ms-Icon--DoubleChevronDown8::before{content:''}.ms-Icon--DoubleChevronLeft::before{content:''}.ms-Icon--DoubleChevronLeft12::before{content:''}.ms-Icon--DoubleChevronLeft8::before{content:''}.ms-Icon--DoubleChevronLeftMed::before{content:''}[dir=rtl] .ms-Icon--DoubleChevronLeftMed::before{content:''}.ms-Icon--DoubleChevronLeftMedMirrored::before{content:''}[dir=rtl] .ms-Icon--DoubleChevronLeftMedMirrored::before{content:''}.ms-Icon--DoubleChevronRight::before{content:''}.ms-Icon--DoubleChevronRight12::before{content:''}.ms-Icon--DoubleChevronRight8::before{content:''}.ms-Icon--DoubleChevronUp::before{content:''}.ms-Icon--DoubleChevronUp12::before{content:''}.ms-Icon--DoubleChevronUp8::before{content:''}.ms-Icon--DoubleColumn::before{content:''}.ms-Icon--DoubleColumnEdit::before{content:''}.ms-Icon--DoubleDownArrow::before{content:''}.ms-Icon--Down::before{content:''}.ms-Icon--Download::before{content:''}.ms-Icon--DownloadDocument::before{content:''}.ms-Icon--DragObject::before{content:''}.ms-Icon--DrillDown::before{content:''}.ms-Icon--DrillDownSolid::before{content:''}.ms-Icon--DrillExpand::before{content:''}.ms-Icon--DrillShow::before{content:''}.ms-Icon--DrillThrough::before{content:''}.ms-Icon--DriverOff::before{content:''}.ms-Icon--DRM::before{content:''}.ms-Icon--Drop::before{content:''}.ms-Icon--Dropdown::before{content:''}.ms-Icon--DropShape::before{content:''}.ms-Icon--DropShapeSolid::before{content:''}.ms-Icon--DuplicateRow::before{content:''}.ms-Icon--Duststorm::before{content:''}.ms-Icon--Dynamics365Logo::before{content:''}.ms-Icon--DynamicSMBLogo::before{content:''}.ms-Icon--EaseOfAccess::before{content:''}.ms-Icon--EatDrink::before{content:''}.ms-Icon--EdgeOldLogo::before{content:''}.ms-Icon--eDiscovery::before{content:''}.ms-Icon--EditContact::before{content:''}.ms-Icon--EditCreate::before{content:''}.ms-Icon--EditMail::before{content:''}.ms-Icon--Edit::before{content:''}[dir=rtl] .ms-Icon--Edit::before{content:''}.ms-Icon--EditMirrored::before{content:''}[dir=rtl] .ms-Icon--EditMirrored::before{content:''}.ms-Icon--EditNote::before{content:''}.ms-Icon--EditPhoto::before{content:''}.ms-Icon--EditSolid12::before{content:''}[dir=rtl] .ms-Icon--EditSolid12::before{content:''}.ms-Icon--EditSolidMirrored12::before{content:''}[dir=rtl] .ms-Icon--EditSolidMirrored12::before{content:''}.ms-Icon--EditStyle::before{content:''}.ms-Icon--Education::before{content:''}.ms-Icon--Ellipse::before{content:''}.ms-Icon--Embed::before{content:''}.ms-Icon--EMI::before{content:''}.ms-Icon--Emoji::before{content:''}.ms-Icon--Emoji2::before{content:''}.ms-Icon--EmojiDisappointed::before{content:''}.ms-Icon--EmojiNeutral::before{content:''}.ms-Icon--EmojiTabSymbols::before{content:''}.ms-Icon--EmptyRecycleBin::before{content:''}.ms-Icon--Encryption::before{content:''}.ms-Icon--EndPointSolid::before{content:''}.ms-Icon--EngineeringGroup::before{content:''}.ms-Icon--EntitlementPolicy::before{content:''}.ms-Icon--EntitlementRedemption::before{content:''}.ms-Icon--EntryDecline::before{content:''}.ms-Icon--EntryView::before{content:''}.ms-Icon--Equalizer::before{content:''}.ms-Icon--EraseTool::before{content:''}.ms-Icon--Error::before{content:''}.ms-Icon--ErrorBadge::before{content:''}.ms-Icon--Event::before{content:''}.ms-Icon--Event12::before{content:''}.ms-Icon--EventAccepted::before{content:''}.ms-Icon--EventDate::before{content:''}.ms-Icon--EventDateMissed12::before{content:''}.ms-Icon--EventDeclined::before{content:''}.ms-Icon--EventInfo::before{content:''}.ms-Icon--EventTentative::before{content:''}[dir=rtl] .ms-Icon--EventTentative::before{content:''}.ms-Icon--EventTentativeMirrored::before{content:''}[dir=rtl] .ms-Icon--EventTentativeMirrored::before{content:''}.ms-Icon--EventToDoLogo::before{content:''}.ms-Icon--ExcelDocument::before{content:''}.ms-Icon--ExcelLogo::before{content:''}.ms-Icon--ExcelLogo16::before{content:''}.ms-Icon--ExcelLogoFill::before{content:''}.ms-Icon--ExcelLogoFill16::before{content:''}.ms-Icon--ExcelLogoInverse::before{content:''}.ms-Icon--ExcelLogoInverse16::before{content:''}.ms-Icon--ExchangeLogo::before{content:''}.ms-Icon--ExchangeLogoFill::before{content:''}.ms-Icon--ExchangeLogoInverse::before{content:''}.ms-Icon--ExerciseTracker::before{content:''}.ms-Icon--ExpandMenu::before{content:''}.ms-Icon--ExploreContent::before{content:''}.ms-Icon--ExploreContentSingle::before{content:''}.ms-Icon--ExploreData::before{content:''}.ms-Icon--Export::before{content:''}[dir=rtl] .ms-Icon--Export::before{content:''}.ms-Icon--ExportMirrored::before{content:''}[dir=rtl] .ms-Icon--ExportMirrored::before{content:''}.ms-Icon--ExternalBuild::before{content:''}.ms-Icon--ExternalTFVC::before{content:''}.ms-Icon--ExternalXAML::before{content:''}.ms-Icon--Eyedropper::before{content:''}.ms-Icon--EyeShadow::before{content:''}.ms-Icon--F12DevTools::before{content:''}.ms-Icon--FabricAssetLibrary::before{content:''}.ms-Icon--FabricDataConnectionLibrary::before{content:''}.ms-Icon--FabricDocLibrary::before{content:''}.ms-Icon--FabricFolder::before{content:''}.ms-Icon--FabricFolderConfirm::before{content:''}.ms-Icon--FabricFolderFill::before{content:''}.ms-Icon--FabricFolderSearch::before{content:''}.ms-Icon--FabricFolderUpload::before{content:''}.ms-Icon--FabricFormLibrary::before{content:''}[dir=rtl] .ms-Icon--FabricFormLibrary::before{content:''}.ms-Icon--FabricFormLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FabricFormLibraryMirrored::before{content:''}.ms-Icon--FabricMovetoFolder::before{content:''}.ms-Icon--FabricNetworkFolder::before{content:''}.ms-Icon--FabricNewFolder::before{content:''}.ms-Icon--FabricOpenFolderHorizontal::before{content:''}.ms-Icon--FabricPictureLibrary::before{content:''}.ms-Icon--FabricPublicFolder::before{content:''}.ms-Icon--FabricReportLibrary::before{content:''}[dir=rtl] .ms-Icon--FabricReportLibrary::before{content:''}.ms-Icon--FabricReportLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FabricReportLibraryMirrored::before{content:''}.ms-Icon--FabricSyncFolder::before{content:''}.ms-Icon--FabricTextHighlight::before{content:''}.ms-Icon--FabricTextHighlightComposite::before{content:''}.ms-Icon--FabricUnsyncFolder::before{content:''}.ms-Icon--FabricUserFolder::before{content:''}.ms-Icon--Family::before{content:''}.ms-Icon--FangBody::before{content:''}.ms-Icon--FastForward::before{content:''}.ms-Icon--FastMode::before{content:''}.ms-Icon--Favicon::before{content:''}.ms-Icon--FavoriteList::before{content:''}.ms-Icon--FavoriteStar::before{content:''}.ms-Icon--FavoriteStarFill::before{content:''}.ms-Icon--Fax::before{content:''}.ms-Icon--Feedback::before{content:''}.ms-Icon--FeedbackRequestSolid::before{content:''}[dir=rtl] .ms-Icon--FeedbackRequestSolid::before{content:''}.ms-Icon--FeedbackRequestMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--FeedbackRequestMirroredSolid::before{content:''}.ms-Icon--FeedbackResponseSolid::before{content:''}.ms-Icon--Ferry::before{content:''}.ms-Icon--FerrySolid::before{content:''}.ms-Icon--FieldChanged::before{content:''}.ms-Icon--FieldEmpty::before{content:''}.ms-Icon--FieldFilled::before{content:''}.ms-Icon--FieldNotChanged::before{content:''}.ms-Icon--FieldReadOnly::before{content:''}.ms-Icon--FieldRequired::before{content:''}.ms-Icon--FileASPX::before{content:''}.ms-Icon--FileBug::before{content:''}.ms-Icon--FileCode::before{content:''}.ms-Icon--FileComment::before{content:''}.ms-Icon--FileCSS::before{content:''}.ms-Icon--FileHTML::before{content:''}.ms-Icon--FileImage::before{content:''}.ms-Icon--FileJAVA::before{content:''}.ms-Icon--FileLess::before{content:''}.ms-Icon--FileOff::before{content:''}.ms-Icon--FilePDB::before{content:''}.ms-Icon--FileRequest::before{content:''}.ms-Icon--FileSass::before{content:''}.ms-Icon--FileSQL::before{content:''}.ms-Icon--FileSymlink::before{content:''}.ms-Icon--FileTemplate::before{content:''}.ms-Icon--FileTypeSolution::before{content:''}.ms-Icon--FileYML::before{content:''}.ms-Icon--Filter::before{content:''}.ms-Icon--FilterAscending::before{content:''}.ms-Icon--FilterDescending::before{content:''}.ms-Icon--Filters::before{content:''}.ms-Icon--FilterSettings::before{content:''}.ms-Icon--FilterSolid::before{content:''}.ms-Icon--FiltersSolid::before{content:''}.ms-Icon--Financial::before{content:''}.ms-Icon--FinancialSolid::before{content:''}[dir=rtl] .ms-Icon--FinancialSolid::before{content:''}.ms-Icon--FinancialMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--FinancialMirroredSolid::before{content:''}.ms-Icon--Fingerprint::before{content:''}.ms-Icon--FitPage::before{content:''}.ms-Icon--FitWidth::before{content:''}.ms-Icon--FiveTileGrid::before{content:''}.ms-Icon--FixedAssetManagement::before{content:''}.ms-Icon--FixedColumnWidth::before{content:''}.ms-Icon--Flag::before{content:''}.ms-Icon--FlameSolid::before{content:''}.ms-Icon--FlashAuto::before{content:''}.ms-Icon--Flashlight::before{content:''}.ms-Icon--FlashOff::before{content:''}.ms-Icon--FlickDown::before{content:''}.ms-Icon--FlickLeft::before{content:''}.ms-Icon--FlickRight::before{content:''}.ms-Icon--FlickUp::before{content:''}.ms-Icon--Flow::before{content:''}.ms-Icon--FlowChart::before{content:''}.ms-Icon--Flower::before{content:''}.ms-Icon--FocalPoint::before{content:''}.ms-Icon--Focus::before{content:''}.ms-Icon--FocusView::before{content:''}.ms-Icon--Fog::before{content:''}.ms-Icon--Folder::before{content:''}.ms-Icon--FolderFill::before{content:''}.ms-Icon--FolderHorizontal::before{content:''}.ms-Icon--FolderList::before{content:''}[dir=rtl] .ms-Icon--FolderList::before{content:''}.ms-Icon--FolderListMirrored::before{content:''}[dir=rtl] .ms-Icon--FolderListMirrored::before{content:''}.ms-Icon--FolderOpen::before{content:''}.ms-Icon--FolderQuery::before{content:''}.ms-Icon--FolderSearch::before{content:''}.ms-Icon--FollowUser::before{content:''}.ms-Icon--Font::before{content:''}.ms-Icon--FontColor::before{content:''}.ms-Icon--FontColorA::before{content:''}.ms-Icon--FontColorSwatch::before{content:''}.ms-Icon--FontDecrease::before{content:''}.ms-Icon--FontIncrease::before{content:''}.ms-Icon--FontSize::before{content:''}.ms-Icon--FontSize2::before{content:''}.ms-Icon--Footer::before{content:''}.ms-Icon--FormatPainter::before{content:''}.ms-Icon--FormLibrary::before{content:''}[dir=rtl] .ms-Icon--FormLibrary::before{content:''}.ms-Icon--FormLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FormLibraryMirrored::before{content:''}.ms-Icon--Forum::before{content:''}.ms-Icon--Forward::before{content:''}.ms-Icon--ForwardEvent::before{content:''}.ms-Icon--Freezing::before{content:''}.ms-Icon--Frigid::before{content:''}.ms-Icon--FrontCamera::before{content:''}.ms-Icon--FSharp::before{content:''}.ms-Icon--FSharpLanguage::before{content:''}.ms-Icon--FullCircleMask::before{content:''}.ms-Icon--FullHistory::before{content:''}.ms-Icon--FullScreen::before{content:''}.ms-Icon--FullView::before{content:''}.ms-Icon--FullWidth::before{content:''}.ms-Icon--FullWidthEdit::before{content:''}.ms-Icon--FunctionalManagerDashboard::before{content:''}.ms-Icon--FunnelChart::before{content:''}.ms-Icon--GallatinLogo::before{content:''}.ms-Icon--Game::before{content:''}.ms-Icon--Generate::before{content:''}.ms-Icon--GenericScan::before{content:''}.ms-Icon--GenericScanFilled::before{content:''}.ms-Icon--GIF::before{content:''}.ms-Icon--Giftbox::before{content:''}.ms-Icon--GiftboxOpen::before{content:''}.ms-Icon--GiftBoxSolid::before{content:''}.ms-Icon--GiftCard::before{content:''}.ms-Icon--GitGraph::before{content:''}.ms-Icon--Glasses::before{content:''}.ms-Icon--Glimmer::before{content:''}.ms-Icon--GlobalNavButton::before{content:''}.ms-Icon--GlobalNavButtonActive::before{content:''}.ms-Icon--Globe::before{content:''}.ms-Icon--Globe2::before{content:''}.ms-Icon--GlobeFavorite::before{content:''}.ms-Icon--Golf::before{content:''}.ms-Icon--Go::before{content:''}[dir=rtl] .ms-Icon--Go::before{content:''}.ms-Icon--GoMirrored::before{content:''}[dir=rtl] .ms-Icon--GoMirrored::before{content:''}.ms-Icon--GoToDashboard::before{content:''}.ms-Icon--GotoToday::before{content:''}.ms-Icon--GreetingCard::before{content:''}.ms-Icon--GridViewLarge::before{content:''}.ms-Icon--GridViewMedium::before{content:''}.ms-Icon--GridViewSmall::before{content:''}.ms-Icon--GripperBarHorizontal::before{content:''}.ms-Icon--GripperBarVertical::before{content:''}.ms-Icon--GripperDotsVertical::before{content:''}.ms-Icon--GripperTool::before{content:''}.ms-Icon--Group::before{content:''}.ms-Icon--GroupedAscending::before{content:''}.ms-Icon--GroupedDescending::before{content:''}.ms-Icon--GroupedList::before{content:''}.ms-Icon--GroupList::before{content:''}.ms-Icon--GroupObject::before{content:''}.ms-Icon--GUID::before{content:''}.ms-Icon--Guitar::before{content:''}.ms-Icon--HailDay::before{content:''}.ms-Icon--HailNight::before{content:''}.ms-Icon--HalfAlpha::before{content:''}.ms-Icon--HalfCircle::before{content:''}.ms-Icon--HandsFree::before{content:''}.ms-Icon--Handwriting::before{content:''}.ms-Icon--HardDrive::before{content:''}.ms-Icon--HardDriveGroup::before{content:''}.ms-Icon--HardDriveLock::before{content:''}.ms-Icon--HardDriveUnlock::before{content:''}.ms-Icon--Header::before{content:''}.ms-Icon--Header1::before{content:''}.ms-Icon--Header2::before{content:''}.ms-Icon--Header3::before{content:''}.ms-Icon--Header4::before{content:''}.ms-Icon--Headset::before{content:''}.ms-Icon--HeadsetSolid::before{content:''}.ms-Icon--Health::before{content:''}.ms-Icon--HealthRefresh::before{content:''}.ms-Icon--HealthSolid::before{content:''}.ms-Icon--Heart::before{content:''}.ms-Icon--HeartBroken::before{content:''}.ms-Icon--HeartFill::before{content:''}.ms-Icon--Help::before{content:''}[dir=rtl] .ms-Icon--Help::before{content:''}.ms-Icon--HelpMirrored::before{content:''}[dir=rtl] .ms-Icon--HelpMirrored::before{content:''}.ms-Icon--HexaditeInvestigation::before{content:''}.ms-Icon--HexaditeInvestigationCancel::before{content:''}.ms-Icon--HexaditeInvestigationSemiAuto::before{content:''}.ms-Icon--Hexagon::before{content:''}.ms-Icon--Hide::before{content:''}.ms-Icon--Hide2::before{content:''}.ms-Icon--Hide3::before{content:''}.ms-Icon--Highlight::before{content:''}.ms-Icon--HighlightMappedShapes::before{content:''}.ms-Icon--HintText::before{content:''}.ms-Icon--HistoricalWeather::before{content:''}.ms-Icon--History::before{content:''}.ms-Icon--Home::before{content:''}.ms-Icon--HomeDropdown::before{content:''}.ms-Icon--HomeGroup::before{content:''}.ms-Icon--HomeSolid::before{content:''}.ms-Icon--HomeVerify::before{content:''}.ms-Icon--HorizontalDistributeCenter::before{content:''}.ms-Icon--HorizontalTabKey::before{content:''}.ms-Icon--Hospital::before{content:''}.ms-Icon--Hotel::before{content:''}.ms-Icon--HourGlass::before{content:''}.ms-Icon--IconSetsFlag::before{content:''}.ms-Icon--IDBadge::before{content:''}.ms-Icon--IgnoreConversation::before{content:''}.ms-Icon--ImageCrosshair::before{content:''}.ms-Icon--ImageDiff::before{content:''}.ms-Icon--ImageInAR::before{content:''}.ms-Icon--ImagePixel::before{content:''}.ms-Icon--ImageSearch::before{content:''}[dir=rtl] .ms-Icon--ImportAll::before{content:''}.ms-Icon--ImportAllMirrored::before{content:''}.ms-Icon--Important::before{content:''}.ms-Icon--Import::before{content:''}[dir=rtl] .ms-Icon--Import::before{content:''}.ms-Icon--ImportMirrored::before{content:''}[dir=rtl] .ms-Icon--ImportMirrored::before{content:''}.ms-Icon--Inbox::before{content:''}.ms-Icon--InboxCheck::before{content:''}.ms-Icon--IncidentTriangle::before{content:''}.ms-Icon--IncomingCall::before{content:''}.ms-Icon--IncreaseIndentArrow::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentArrow::before{content:''}.ms-Icon--IncreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentArrowMirrored::before{content:''}.ms-Icon--IncreaseIndentHanging::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentHanging::before{content:''}.ms-Icon--IncreaseIndentHangingMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentHangingMirrored::before{content:''}.ms-Icon--IncreaseIndentLegacy::before{content:''}.ms-Icon--IncreaseIndent::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndent::before{content:''}.ms-Icon--IncreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentMirrored::before{content:''}.ms-Icon--IncreaseIndentText::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentText::before{content:''}.ms-Icon--IncreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentTextMirrored::before{content:''}.ms-Icon--IndentFirstLine::before{content:''}.ms-Icon--Info::before{content:''}.ms-Icon--Info2::before{content:''}.ms-Icon--InformationBarriers::before{content:''}.ms-Icon--InfoSolid::before{content:''}.ms-Icon--InkingTool::before{content:''}.ms-Icon--InputAddress::before{content:''}.ms-Icon--Insert::before{content:''}.ms-Icon--InsertColumnsLeft::before{content:''}.ms-Icon--InsertColumnsRight::before{content:''}.ms-Icon--InsertRowsAbove::before{content:''}.ms-Icon--InsertRowsBelow::before{content:''}.ms-Icon--InsertSignatureLine::before{content:''}.ms-Icon--InsertTextBox::before{content:''}.ms-Icon--Insights::before{content:''}.ms-Icon--Installation::before{content:''}.ms-Icon--InstallToDrive::before{content:''}.ms-Icon--InternalInvestigation::before{content:''}.ms-Icon--InternetSharing::before{content:''}.ms-Icon--IRMForward::before{content:''}[dir=rtl] .ms-Icon--IRMForward::before{content:''}.ms-Icon--IRMForwardMirrored::before{content:''}[dir=rtl] .ms-Icon--IRMForwardMirrored::before{content:''}.ms-Icon--IRMReply::before{content:''}[dir=rtl] .ms-Icon--IRMReply::before{content:''}.ms-Icon--IRMReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--IRMReplyMirrored::before{content:''}.ms-Icon--IssueSolid::before{content:''}.ms-Icon--IssueTracking::before{content:''}[dir=rtl] .ms-Icon--IssueTracking::before{content:''}.ms-Icon--IssueTrackingMirrored::before{content:''}[dir=rtl] .ms-Icon--IssueTrackingMirrored::before{content:''}.ms-Icon--Italic::before{content:''}.ms-Icon--JavaScriptLanguage::before{content:''}.ms-Icon--JoinOnlineMeeting::before{content:''}.ms-Icon--JS::before{content:''}.ms-Icon--KaizalaLogo::before{content:''}.ms-Icon--KeyboardClassic::before{content:''}.ms-Icon--KeyPhraseExtraction::before{content:''}.ms-Icon--KnowledgeArticle::before{content:''}.ms-Icon--Label::before{content:''}.ms-Icon--LadybugSolid::before{content:''}.ms-Icon--Lamp::before{content:''}.ms-Icon--LandscapeOrientation::before{content:''}.ms-Icon--LaptopSecure::before{content:''}.ms-Icon--LaptopSelected::before{content:''}.ms-Icon--LargeGrid::before{content:''}.ms-Icon--LearningTools::before{content:''}.ms-Icon--Leave::before{content:''}.ms-Icon--LeaveUser::before{content:''}.ms-Icon--Library::before{content:''}.ms-Icon--Lifesaver::before{content:''}.ms-Icon--LifesaverLock::before{content:''}.ms-Icon--Light::before{content:''}.ms-Icon--Lightbulb::before{content:''}.ms-Icon--LightningBolt::before{content:''}.ms-Icon--LightWeight::before{content:''}.ms-Icon--Like::before{content:''}.ms-Icon--LikeSolid::before{content:''}.ms-Icon--Line::before{content:''}.ms-Icon--LineChart::before{content:''}.ms-Icon--LineSpacing::before{content:''}.ms-Icon--LineStyle::before{content:''}.ms-Icon--LineThickness::before{content:''}.ms-Icon--Link::before{content:''}.ms-Icon--Link12::before{content:''}.ms-Icon--LinkedDatabase::before{content:''}.ms-Icon--LinkedInLogo::before{content:''}.ms-Icon--List::before{content:''}[dir=rtl] .ms-Icon--List::before{content:''}.ms-Icon--ListMirrored::before{content:''}[dir=rtl] .ms-Icon--ListMirrored::before{content:''}.ms-Icon--LiveSite::before{content:''}.ms-Icon--LocaleLanguage::before{content:''}.ms-Icon--Location::before{content:''}.ms-Icon--LocationCircle::before{content:''}.ms-Icon--LocationDot::before{content:''}.ms-Icon--LocationFill::before{content:''}.ms-Icon--LocationOutline::before{content:''}.ms-Icon--Lock::before{content:''}.ms-Icon--Lock12::before{content:''}.ms-Icon--LockSolid::before{content:''}.ms-Icon--LogRemove::before{content:''}.ms-Icon--LookupEntities::before{content:''}.ms-Icon--LowerBrightness::before{content:''}.ms-Icon--LyncLogo::before{content:''}.ms-Icon--M365InvoicingLogo::before{content:''}.ms-Icon--MachineLearning::before{content:''}.ms-Icon--Mail::before{content:''}.ms-Icon--MailAlert::before{content:''}.ms-Icon--MailAttached::before{content:''}.ms-Icon--MailCheck::before{content:''}.ms-Icon--MailFill::before{content:''}.ms-Icon--MailForward::before{content:''}[dir=rtl] .ms-Icon--MailForward::before{content:''}.ms-Icon--MailForwardMirrored::before{content:''}[dir=rtl] .ms-Icon--MailForwardMirrored::before{content:''}.ms-Icon--MailLowImportance::before{content:''}.ms-Icon--MailOptions::before{content:''}.ms-Icon--MailPause::before{content:''}.ms-Icon--MailReminder::before{content:''}.ms-Icon--MailRepeat::before{content:''}.ms-Icon--MailReplyAll::before{content:''}[dir=rtl] .ms-Icon--MailReplyAll::before{content:''}.ms-Icon--MailReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--MailReplyAllMirrored::before{content:''}.ms-Icon--MailReply::before{content:''}[dir=rtl] .ms-Icon--MailReply::before{content:''}.ms-Icon--MailReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--MailReplyMirrored::before{content:''}.ms-Icon--MailSchedule::before{content:''}.ms-Icon--MailSolid::before{content:''}.ms-Icon--MailTentative::before{content:''}[dir=rtl] .ms-Icon--MailTentative::before{content:''}.ms-Icon--MailTentativeMirrored::before{content:''}[dir=rtl] .ms-Icon--MailTentativeMirrored::before{content:''}.ms-Icon--MailUndelivered::before{content:''}.ms-Icon--ManagerSelfService::before{content:''}.ms-Icon--Manufacturing::before{content:''}.ms-Icon--MapDirections::before{content:''}.ms-Icon--MapLayers::before{content:''}.ms-Icon--MapPin::before{content:''}.ms-Icon--MapPin12::before{content:''}.ms-Icon--MapPinSolid::before{content:''}.ms-Icon--MarkAsProtected::before{content:''}.ms-Icon--MarkDownLanguage::before{content:''}.ms-Icon--Market::before{content:''}.ms-Icon--MarketDown::before{content:''}.ms-Icon--MasterDatabase::before{content:''}.ms-Icon--MaximumValue::before{content:''}.ms-Icon--Medal::before{content:''}.ms-Icon--MedalSolid::before{content:''}.ms-Icon--Media::before{content:''}.ms-Icon--MediaAdd::before{content:''}.ms-Icon--Medical::before{content:''}.ms-Icon--Megaphone::before{content:''}.ms-Icon--MegaphoneSolid::before{content:''}.ms-Icon--Memo::before{content:''}.ms-Icon--Merge::before{content:''}.ms-Icon--MergeDuplicate::before{content:''}.ms-Icon--Message::before{content:''}.ms-Icon--MessageFill::before{content:''}.ms-Icon--MessageFriendRequest::before{content:''}.ms-Icon--MicOff::before{content:''}.ms-Icon--MicOff2::before{content:''}.ms-Icon--Microphone::before{content:''}.ms-Icon--MicrosoftFlowLogo::before{content:''}.ms-Icon--MicrosoftStaffhubLogo::before{content:''}.ms-Icon--MicrosoftTranslatorLogo::before{content:''}.ms-Icon--MicrosoftTranslatorLogoBlue::before{content:''}.ms-Icon--MicrosoftTranslatorLogoGreen::before{content:''}.ms-Icon--MiniContract::before{content:''}[dir=rtl] .ms-Icon--MiniContract::before{content:''}.ms-Icon--MiniContractMirrored::before{content:''}[dir=rtl] .ms-Icon--MiniContractMirrored::before{content:''}.ms-Icon--MiniExpand::before{content:''}[dir=rtl] .ms-Icon--MiniExpand::before{content:''}.ms-Icon--MiniExpandMirrored::before{content:''}[dir=rtl] .ms-Icon--MiniExpandMirrored::before{content:''}.ms-Icon--MiniLink::before{content:''}.ms-Icon--MinimumValue::before{content:''}.ms-Icon--MobileReport::before{content:''}.ms-Icon--MobileSelected::before{content:''}.ms-Icon--ModelingView::before{content:''}.ms-Icon--Money::before{content:''}.ms-Icon--More::before{content:''}.ms-Icon--MoreSports::before{content:''}.ms-Icon--MoreVertical::before{content:''}.ms-Icon--MountainClimbing::before{content:''}.ms-Icon--Move::before{content:''}.ms-Icon--Movers::before{content:''}.ms-Icon--MoveToFolder::before{content:''}.ms-Icon--MSNLogo::before{content:''}.ms-Icon--MSNVideos::before{content:''}.ms-Icon--MSNVideosSolid::before{content:''}.ms-Icon--MultiSelect::before{content:''}[dir=rtl] .ms-Icon--MultiSelect::before{content:''}.ms-Icon--MultiSelectMirrored::before{content:''}[dir=rtl] .ms-Icon--MultiSelectMirrored::before{content:''}.ms-Icon--MusicInCollection::before{content:''}.ms-Icon--MusicInCollectionFill::before{content:''}.ms-Icon--MusicNote::before{content:''}.ms-Icon--MuteChat::before{content:''}.ms-Icon--MyMoviesTV::before{content:''}.ms-Icon--MyNetwork::before{content:''}.ms-Icon--Nav2DMapView::before{content:''}.ms-Icon--NavigateBack::before{content:''}[dir=rtl] .ms-Icon--NavigateBack::before{content:''}.ms-Icon--NavigateBackMirrored::before{content:''}[dir=rtl] .ms-Icon--NavigateBackMirrored::before{content:''}.ms-Icon--NavigateExternalInline::before{content:''}.ms-Icon--NavigateForward::before{content:''}[dir=rtl] .ms-Icon--NavigateForward::before{content:''}.ms-Icon--NavigateForwardMirrored::before{content:''}[dir=rtl] .ms-Icon--NavigateForwardMirrored::before{content:''}.ms-Icon--NavigationFlipper::before{content:''}.ms-Icon--NetworkTower::before{content:''}.ms-Icon--NewAnalyticsQuery::before{content:''}.ms-Icon--NewFolder::before{content:''}.ms-Icon--NewMail::before{content:''}.ms-Icon--News::before{content:''}.ms-Icon--NewsSearch::before{content:''}.ms-Icon--NewTeamProject::before{content:''}.ms-Icon--Next::before{content:''}.ms-Icon--NormalWeight::before{content:''}.ms-Icon--NoteForward::before{content:''}.ms-Icon--NotePinned::before{content:''}.ms-Icon--NoteReply::before{content:''}.ms-Icon--NotExecuted::before{content:''}.ms-Icon--NotImpactedSolid::before{content:''}.ms-Icon--NugetLogo::before{content:''}.ms-Icon--NUIFace::before{content:''}.ms-Icon--NumberedList::before{content:''}[dir=rtl] .ms-Icon--NumberedList::before{content:''}.ms-Icon--NumberedListMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListMirrored::before{content:''}.ms-Icon--NumberedListNumber::before{content:''}[dir=rtl] .ms-Icon--NumberedListNumber::before{content:''}.ms-Icon--NumberedListNumberMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListNumberMirrored::before{content:''}.ms-Icon--NumberedListText::before{content:''}[dir=rtl] .ms-Icon--NumberedListText::before{content:''}.ms-Icon--NumberedListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListTextMirrored::before{content:''}.ms-Icon--NumberField::before{content:''}.ms-Icon--NumberSequence::before{content:''}.ms-Icon--NumberSymbol::before{content:''}.ms-Icon--Octagon::before{content:''}.ms-Icon--OEM::before{content:''}.ms-Icon--OfficeAddinsLogo::before{content:''}.ms-Icon--OfficeAssistantLogo::before{content:''}.ms-Icon--OfficeChat::before{content:''}.ms-Icon--OfficeChatSolid::before{content:''}.ms-Icon--OfficeFormsLogo::before{content:''}.ms-Icon--OfficeFormsLogo16::before{content:''}.ms-Icon--OfficeFormsLogo24::before{content:''}.ms-Icon--OfficeFormsLogoFill::before{content:''}.ms-Icon--OfficeFormsLogoFill16::before{content:''}.ms-Icon--OfficeFormsLogoFill24::before{content:''}.ms-Icon--OfficeFormsLogoInverse::before{content:''}.ms-Icon--OfficeFormsLogoInverse16::before{content:''}.ms-Icon--OfficeFormsLogoInverse24::before{content:''}.ms-Icon--OfficeLogo::before{content:''}.ms-Icon--OfficeStoreLogo::before{content:''}.ms-Icon--OfficeVideoLogo::before{content:''}.ms-Icon--OfficeVideoLogoFill::before{content:''}.ms-Icon--OfficeVideoLogoInverse::before{content:''}.ms-Icon--OfflineOneDriveParachute::before{content:''}.ms-Icon--OfflineOneDriveParachuteDisabled::before{content:''}.ms-Icon--OfflineStorage::before{content:''}.ms-Icon--OfflineStorageSolid::before{content:''}.ms-Icon--Onboarding::before{content:''}.ms-Icon--OneDriveAdd::before{content:''}.ms-Icon--OneDriveFolder16::before{content:''}.ms-Icon--OneDriveLogo::before{content:''}.ms-Icon--OneNoteEduLogoInverse::before{content:''}.ms-Icon--OneNoteLogo::before{content:''}.ms-Icon--OneNoteLogo16::before{content:''}.ms-Icon--OneNoteLogoFill::before{content:''}.ms-Icon--OneNoteLogoFill16::before{content:''}.ms-Icon--OneNoteLogoInverse::before{content:''}.ms-Icon--OneNoteLogoInverse16::before{content:''}.ms-Icon--OpenEnrollment::before{content:''}.ms-Icon--OpenFile::before{content:''}.ms-Icon--OpenFolderHorizontal::before{content:''}.ms-Icon--OpenInNewTab::before{content:''}.ms-Icon--OpenInNewWindow::before{content:''}.ms-Icon--OpenPane::before{content:''}[dir=rtl] .ms-Icon--OpenPane::before{content:''}.ms-Icon--OpenPaneMirrored::before{content:''}[dir=rtl] .ms-Icon--OpenPaneMirrored::before{content:''}.ms-Icon--OpenSource::before{content:''}.ms-Icon--OpenWith::before{content:''}[dir=rtl] .ms-Icon--OpenWith::before{content:''}.ms-Icon--OpenWithMirrored::before{content:''}[dir=rtl] .ms-Icon--OpenWithMirrored::before{content:''}.ms-Icon--Org::before{content:''}.ms-Icon--Orientation::before{content:''}.ms-Icon--Orientation2::before{content:''}.ms-Icon--OutlookLogo::before{content:''}.ms-Icon--OutlookLogo16::before{content:''}.ms-Icon--OutlookLogoFill::before{content:''}.ms-Icon--OutlookLogoFill16::before{content:''}.ms-Icon--OutlookLogoInverse::before{content:''}.ms-Icon--OutlookLogoInverse16::before{content:''}.ms-Icon--OutOfOffice::before{content:''}.ms-Icon--Package::before{content:''}.ms-Icon--Packages::before{content:''}.ms-Icon--Padding::before{content:''}.ms-Icon--PaddingBottom::before{content:''}.ms-Icon--PaddingLeft::before{content:''}.ms-Icon--PaddingRight::before{content:''}.ms-Icon--PaddingTop::before{content:''}.ms-Icon--Page::before{content:''}.ms-Icon--PageAdd::before{content:''}.ms-Icon--PageArrowRight::before{content:''}.ms-Icon--PageCheckedin::before{content:''}.ms-Icon--PageCheckedOut::before{content:''}.ms-Icon--PageData::before{content:''}.ms-Icon--PageEdit::before{content:''}.ms-Icon--PageHeader::before{content:''}.ms-Icon--PageHeaderEdit::before{content:''}.ms-Icon--PageLeft::before{content:''}.ms-Icon--PageLink::before{content:''}.ms-Icon--PageList::before{content:''}.ms-Icon--PageListFilter::before{content:''}.ms-Icon--PageListSolid::before{content:''}[dir=rtl] .ms-Icon--PageListSolid::before{content:''}.ms-Icon--PageListMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--PageListMirroredSolid::before{content:''}.ms-Icon--PageLock::before{content:''}.ms-Icon--PageRemove::before{content:''}.ms-Icon--PageRight::before{content:''}.ms-Icon--PageShared::before{content:''}.ms-Icon--PageSolid::before{content:''}.ms-Icon--PanoIndicator::before{content:''}.ms-Icon--Parachute::before{content:''}.ms-Icon--ParachuteSolid::before{content:''}.ms-Icon--Parameter::before{content:''}.ms-Icon--ParkingLocation::before{content:''}[dir=rtl] .ms-Icon--ParkingLocation::before{content:''}.ms-Icon--ParkingLocationMirrored::before{content:''}[dir=rtl] .ms-Icon--ParkingLocationMirrored::before{content:''}.ms-Icon--ParkingSolid::before{content:''}[dir=rtl] .ms-Icon--ParkingSolid::before{content:''}.ms-Icon--ParkingMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--ParkingMirroredSolid::before{content:''}.ms-Icon--PartlyCloudyDay::before{content:''}.ms-Icon--PartlyCloudyNight::before{content:''}.ms-Icon--PartyLeader::before{content:''}.ms-Icon--PassiveAuthentication::before{content:''}.ms-Icon--PasswordField::before{content:''}.ms-Icon--Paste::before{content:''}.ms-Icon--PasteAsCode::before{content:''}.ms-Icon--PasteAsText::before{content:''}.ms-Icon--Pause::before{content:''}.ms-Icon--PaymentCard::before{content:''}.ms-Icon--PC1::before{content:''}.ms-Icon--PDF::before{content:''}.ms-Icon--PencilReply::before{content:''}.ms-Icon--Pentagon::before{content:''}.ms-Icon--PenWorkspace::before{content:''}.ms-Icon--People::before{content:''}.ms-Icon--PeopleAdd::before{content:''}.ms-Icon--PeopleAlert::before{content:''}.ms-Icon--PeopleBlock::before{content:''}.ms-Icon--PeoplePause::before{content:''}.ms-Icon--PeopleRepeat::before{content:''}.ms-Icon--Permissions::before{content:''}.ms-Icon--PermissionsSolid::before{content:''}.ms-Icon--Personalize::before{content:''}.ms-Icon--Phishing::before{content:''}.ms-Icon--Phone::before{content:''}.ms-Icon--Photo::before{content:''}.ms-Icon--Photo2::before{content:''}.ms-Icon--Photo2Add::before{content:''}.ms-Icon--Photo2Fill::before{content:''}.ms-Icon--Photo2Remove::before{content:''}.ms-Icon--PhotoCollection::before{content:''}.ms-Icon--PhotoError::before{content:''}.ms-Icon--PhotoVideoMedia::before{content:''}.ms-Icon--Picture::before{content:''}.ms-Icon--PictureCenter::before{content:''}.ms-Icon--PictureFill::before{content:''}.ms-Icon--PictureLibrary::before{content:''}.ms-Icon--PicturePosition::before{content:''}.ms-Icon--PictureStretch::before{content:''}.ms-Icon--PictureTile::before{content:''}.ms-Icon--PieDouble::before{content:''}.ms-Icon--PieSingle::before{content:''}.ms-Icon--PieSingleSolid::before{content:''}.ms-Icon--Pill::before{content:''}.ms-Icon--Pin::before{content:''}.ms-Icon--Pinned::before{content:''}.ms-Icon--PinnedFill::before{content:''}.ms-Icon--PinnedSolid::before{content:''}.ms-Icon--PinSolid12::before{content:''}.ms-Icon--PinSolidOff12::before{content:''}.ms-Icon--PivotChart::before{content:''}.ms-Icon--PlainText::before{content:''}.ms-Icon--PlannerLogo::before{content:''}.ms-Icon--PlanView::before{content:''}.ms-Icon--Play::before{content:''}.ms-Icon--PlaybackRate1x::before{content:''}.ms-Icon--PlayerSettings::before{content:''}.ms-Icon--PlayResume::before{content:''}.ms-Icon--PlayReverse::before{content:''}.ms-Icon--PlayReverseResume::before{content:''}.ms-Icon--PlaySolid::before{content:''}.ms-Icon--Plug::before{content:''}.ms-Icon--PlugConnected::before{content:''}.ms-Icon--PlugDisconnected::before{content:''}.ms-Icon--PlugSolid::before{content:''}.ms-Icon--POI::before{content:''}.ms-Icon--POISolid::before{content:''}.ms-Icon--PollResults::before{content:''}.ms-Icon--PostUpdate::before{content:''}.ms-Icon--PowerApps::before{content:''}.ms-Icon--PowerApps2Logo::before{content:''}.ms-Icon--PowerAppsLogo::before{content:''}.ms-Icon--PowerBILogo::before{content:''}.ms-Icon--PowerBILogo16::before{content:''}.ms-Icon--PowerBILogoBackplate16::before{content:''}.ms-Icon--PowerButton::before{content:''}.ms-Icon--PowerPointDocument::before{content:''}.ms-Icon--PowerPointLogo::before{content:''}.ms-Icon--PowerPointLogo16::before{content:''}.ms-Icon--PowerPointLogoFill::before{content:''}.ms-Icon--PowerPointLogoFill16::before{content:''}.ms-Icon--PowerPointLogoInverse::before{content:''}.ms-Icon--PowerPointLogoInverse16::before{content:''}.ms-Icon--PowerShell::before{content:''}.ms-Icon--PowerShell2::before{content:''}.ms-Icon--Precipitation::before{content:''}.ms-Icon--PresenceChickletVideo::before{content:''}.ms-Icon--Presentation::before{content:''}.ms-Icon--Presentation12::before{content:''}.ms-Icon--Preview::before{content:''}.ms-Icon--PreviewLink::before{content:''}.ms-Icon--Previous::before{content:''}.ms-Icon--PrimaryCalendar::before{content:''}.ms-Icon--Print::before{content:''}.ms-Icon--PrintfaxPrinterFile::before{content:''}.ms-Icon--Processing::before{content:''}.ms-Icon--ProcessingCancel::before{content:''}.ms-Icon--ProcessingPause::before{content:''}.ms-Icon--ProcessingRun::before{content:''}.ms-Icon--ProcessMetaTask::before{content:''}.ms-Icon--Product::before{content:''}.ms-Icon--ProductCatalog::before{content:''}.ms-Icon--ProductionFloorManagement::before{content:''}.ms-Icon--ProductList::before{content:''}.ms-Icon--ProductRelease::before{content:''}.ms-Icon--ProductVariant::before{content:''}.ms-Icon--ProfileSearch::before{content:''}.ms-Icon--ProFootball::before{content:''}.ms-Icon--ProgressLoopInner::before{content:''}.ms-Icon--ProgressLoopOuter::before{content:''}.ms-Icon--ProgressRingDots::before{content:''}.ms-Icon--ProHockey::before{content:''}.ms-Icon--ProjectCollection::before{content:''}.ms-Icon--ProjectDocument::before{content:''}.ms-Icon--ProjectLogo16::before{content:''}.ms-Icon--ProjectLogo32::before{content:''}.ms-Icon--ProjectLogoFill16::before{content:''}.ms-Icon--ProjectLogoFill32::before{content:''}.ms-Icon--ProjectLogoInverse::before{content:''}.ms-Icon--PromotedDatabase::before{content:''}.ms-Icon--ProtectedDocument::before{content:''}.ms-Icon--ProtectionCenterLogo32::before{content:''}.ms-Icon--ProtectRestrict::before{content:''}.ms-Icon--ProvisioningPackage::before{content:''}.ms-Icon--PublicCalendar::before{content:''}.ms-Icon--PublicContactCard::before{content:''}[dir=rtl] .ms-Icon--PublicContactCard::before{content:''}.ms-Icon--PublicContactCardMirrored::before{content:''}[dir=rtl] .ms-Icon--PublicContactCardMirrored::before{content:''}.ms-Icon--PublicEmail::before{content:''}.ms-Icon--PublicFolder::before{content:''}.ms-Icon--PublishContent::before{content:''}.ms-Icon--PublishCourse::before{content:''}.ms-Icon--PublisherLogo::before{content:''}.ms-Icon--PublisherLogo16::before{content:''}.ms-Icon--PublisherLogoFill::before{content:''}.ms-Icon--PublisherLogoFill16::before{content:''}.ms-Icon--PublisherLogoInverse16::before{content:''}.ms-Icon--Puzzle::before{content:''}.ms-Icon--PY::before{content:''}.ms-Icon--PythonLanguage::before{content:''}.ms-Icon--QandA::before{content:''}.ms-Icon--QandAMirror::before{content:''}.ms-Icon--QRCode::before{content:''}.ms-Icon--QuadColumn::before{content:''}.ms-Icon--Quantity::before{content:''}.ms-Icon--QuarterCircle::before{content:''}.ms-Icon--QueryList::before{content:''}.ms-Icon--Questionnaire::before{content:''}[dir=rtl] .ms-Icon--Questionnaire::before{content:''}.ms-Icon--QuestionnaireMirrored::before{content:''}[dir=rtl] .ms-Icon--QuestionnaireMirrored::before{content:''}.ms-Icon--QuickNote::before{content:''}.ms-Icon--QuickNoteSolid::before{content:''}.ms-Icon--R::before{content:''}.ms-Icon--RadioBtnOff::before{content:''}.ms-Icon--RadioBtnOn::before{content:''}.ms-Icon--RadioBullet::before{content:''}.ms-Icon--Rain::before{content:''}.ms-Icon--RainShowersDay::before{content:''}.ms-Icon--RainShowersNight::before{content:''}.ms-Icon--RainSnow::before{content:''}.ms-Icon--RawSource::before{content:''}.ms-Icon--Read::before{content:''}.ms-Icon--ReadingMode::before{content:''}.ms-Icon--ReadingModeSolid::before{content:''}.ms-Icon--ReadOutLoud::before{content:''}.ms-Icon--RealEstate::before{content:''}.ms-Icon--ReceiptCheck::before{content:''}.ms-Icon--ReceiptForward::before{content:''}.ms-Icon--ReceiptReply::before{content:''}.ms-Icon--ReceiptTentative::before{content:''}[dir=rtl] .ms-Icon--ReceiptTentative::before{content:''}.ms-Icon--ReceiptTentativeMirrored::before{content:''}[dir=rtl] .ms-Icon--ReceiptTentativeMirrored::before{content:''}.ms-Icon--ReceiptUndelivered::before{content:''}.ms-Icon--Recent::before{content:''}.ms-Icon--Record2::before{content:''}.ms-Icon--RecruitmentManagement::before{content:''}.ms-Icon--RectangleShape::before{content:''}.ms-Icon--RectangleShapeSolid::before{content:''}.ms-Icon--RectangularClipping::before{content:''}.ms-Icon--RecurringEvent::before{content:''}.ms-Icon--RecurringTask::before{content:''}.ms-Icon--RecycleBin::before{content:''}.ms-Icon--Redeploy::before{content:''}.ms-Icon--RedEye::before{content:''}.ms-Icon--RedEye12::before{content:''}.ms-Icon--Redo::before{content:''}.ms-Icon--Refresh::before{content:''}.ms-Icon--RegistryEditor::before{content:''}.ms-Icon--Relationship::before{content:''}.ms-Icon--ReleaseDefinition::before{content:''}.ms-Icon--ReleaseGate::before{content:''}.ms-Icon--ReleaseGateCheck::before{content:''}.ms-Icon--ReleaseGateError::before{content:''}.ms-Icon--ReminderGroup::before{content:''}.ms-Icon--ReminderPerson::before{content:''}.ms-Icon--ReminderTime::before{content:''}.ms-Icon--Remote::before{content:''}.ms-Icon--Remove::before{content:''}.ms-Icon--RemoveContent::before{content:''}.ms-Icon--RemoveEvent::before{content:''}.ms-Icon--RemoveFilter::before{content:''}.ms-Icon--RemoveFromShoppingList::before{content:''}.ms-Icon--RemoveFromTrash::before{content:''}.ms-Icon--RemoveLink::before{content:''}.ms-Icon--RemoveLinkChain::before{content:''}.ms-Icon--RemoveLinkX::before{content:''}.ms-Icon--RemoveOccurrence::before{content:''}.ms-Icon--Rename::before{content:''}.ms-Icon--RenewalCurrent::before{content:''}.ms-Icon--RenewalFuture::before{content:''}.ms-Icon--ReopenPages::before{content:''}.ms-Icon--Repair::before{content:''}.ms-Icon--RepeatAll::before{content:''}.ms-Icon--RepeatHeaderRows::before{content:''}.ms-Icon--RepeatOne::before{content:''}.ms-Icon--ReplyAllAlt::before{content:''}.ms-Icon--ReplyAll::before{content:''}[dir=rtl] .ms-Icon--ReplyAll::before{content:''}.ms-Icon--ReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyAllMirrored::before{content:''}.ms-Icon--ReplyAlt::before{content:''}.ms-Icon--Reply::before{content:''}[dir=rtl] .ms-Icon--Reply::before{content:''}.ms-Icon--ReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyMirrored::before{content:''}.ms-Icon--Repo::before{content:''}.ms-Icon--ReportAdd::before{content:''}.ms-Icon--ReportDocument::before{content:''}.ms-Icon--ReportHacked::before{content:''}.ms-Icon--ReportLibrary::before{content:''}[dir=rtl] .ms-Icon--ReportLibrary::before{content:''}.ms-Icon--ReportLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--ReportLibraryMirrored::before{content:''}.ms-Icon--ReportLock::before{content:''}.ms-Icon--ReportWarning::before{content:''}.ms-Icon--RepoSolid::before{content:''}.ms-Icon--Rerun::before{content:''}.ms-Icon--ReservationOrders::before{content:''}.ms-Icon--Reset::before{content:''}.ms-Icon--ResetDevice::before{content:''}.ms-Icon--ResponsesMenu::before{content:''}.ms-Icon--ReturnKey::before{content:''}.ms-Icon--ReturnToSession::before{content:''}.ms-Icon--ReviewRequestSolid::before{content:''}[dir=rtl] .ms-Icon--ReviewRequestSolid::before{content:''}.ms-Icon--ReviewRequestMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--ReviewRequestMirroredSolid::before{content:''}.ms-Icon--ReviewResponseSolid::before{content:''}.ms-Icon--ReviewSolid::before{content:''}.ms-Icon--RevToggleKey::before{content:''}.ms-Icon--Rewind::before{content:''}.ms-Icon--Ribbon::before{content:''}.ms-Icon--RibbonSolid::before{content:''}.ms-Icon--RightDoubleQuote::before{content:''}.ms-Icon--RightTriangle::before{content:''}.ms-Icon--Ringer::before{content:''}.ms-Icon--RingerOff::before{content:''}.ms-Icon--RingerRemove::before{content:''}.ms-Icon--RingerSolid::before{content:''}.ms-Icon--Robot::before{content:''}.ms-Icon--Rocket::before{content:''}.ms-Icon--Room::before{content:''}.ms-Icon--Rotate::before{content:''}.ms-Icon--Rotate90Clockwise::before{content:''}.ms-Icon--Rotate90CounterClockwise::before{content:''}.ms-Icon--RowsChild::before{content:''}.ms-Icon--RowsGroup::before{content:''}.ms-Icon--Rugby::before{content:''}.ms-Icon--Running::before{content:''}.ms-Icon--Sad::before{content:''}.ms-Icon--SadSolid::before{content:''}.ms-Icon--Save::before{content:''}.ms-Icon--SaveAll::before{content:''}.ms-Icon--SaveAndClose::before{content:''}.ms-Icon--SaveAs::before{content:''}.ms-Icon--SaveTemplate::before{content:''}.ms-Icon--SaveToMobile::before{content:''}.ms-Icon--Savings::before{content:''}.ms-Icon--ScaleUp::before{content:''}.ms-Icon--ScaleVolume::before{content:''}.ms-Icon--ScatterChart::before{content:''}.ms-Icon--ScheduleEventAction::before{content:''}.ms-Icon--SchoolDataSyncLogo::before{content:''}.ms-Icon--ScopeTemplate::before{content:''}.ms-Icon--ScreenCast::before{content:''}.ms-Icon--Script::before{content:''}.ms-Icon--ScrollUpDown::before{content:''}.ms-Icon--SDCard::before{content:''}.ms-Icon--Search::before{content:''}.ms-Icon--SearchAndApps::before{content:''}.ms-Icon--SearchBookmark::before{content:''}.ms-Icon--SearchCalendar::before{content:''}.ms-Icon--SearchData::before{content:''}.ms-Icon--SearchIssue::before{content:''}[dir=rtl] .ms-Icon--SearchIssue::before{content:''}.ms-Icon--SearchIssueMirrored::before{content:''}[dir=rtl] .ms-Icon--SearchIssueMirrored::before{content:''}.ms-Icon--SearchNearby::before{content:''}.ms-Icon--SecondaryNav::before{content:''}.ms-Icon--Section::before{content:''}.ms-Icon--Sections::before{content:''}.ms-Icon--SecurityGroup::before{content:''}.ms-Icon--SeeDo::before{content:''}.ms-Icon--SelectAll::before{content:''}.ms-Icon--Sell::before{content:''}.ms-Icon--SemiboldWeight::before{content:''}.ms-Icon--Send::before{content:''}[dir=rtl] .ms-Icon--Send::before{content:''}.ms-Icon--SendMirrored::before{content:''}[dir=rtl] .ms-Icon--SendMirrored::before{content:''}.ms-Icon--SentimentAnalysis::before{content:''}.ms-Icon--Separator::before{content:''}.ms-Icon--Server::before{content:''}.ms-Icon--ServerEnviroment::before{content:''}.ms-Icon--ServerProcesses::before{content:''}.ms-Icon--ServiceOff::before{content:''}.ms-Icon--SetAction::before{content:''}.ms-Icon--Settings::before{content:''}.ms-Icon--ShakeDevice::before{content:''}.ms-Icon--Shapes::before{content:''}.ms-Icon--ShapeSolid::before{content:''}.ms-Icon--Share::before{content:''}.ms-Icon--SharedDatabase::before{content:''}.ms-Icon--ShareiOS::before{content:''}.ms-Icon--SharepointAppIcon16::before{content:''}.ms-Icon--SharepointLogo::before{content:''}.ms-Icon--SharepointLogoFill::before{content:''}.ms-Icon--SharepointLogoInverse::before{content:''}.ms-Icon--Shield::before{content:''}.ms-Icon--ShieldAlert::before{content:''}.ms-Icon--ShieldSolid::before{content:''}.ms-Icon--Shirt::before{content:''}.ms-Icon--Shop::before{content:''}.ms-Icon--ShoppingCart::before{content:''}.ms-Icon--ShoppingCartSolid::before{content:''}.ms-Icon--ShopServer::before{content:''}.ms-Icon--ShowGrid::before{content:''}.ms-Icon--ShowResults::before{content:''}[dir=rtl] .ms-Icon--ShowResults::before{content:''}.ms-Icon--ShowResultsMirrored::before{content:''}[dir=rtl] .ms-Icon--ShowResultsMirrored::before{content:''}.ms-Icon--ShowTimeAs::before{content:''}.ms-Icon--SidePanel::before{content:''}[dir=rtl] .ms-Icon--SidePanel::before{content:''}.ms-Icon--SidePanelMirrored::before{content:''}[dir=rtl] .ms-Icon--SidePanelMirrored::before{content:''}.ms-Icon--Signin::before{content:''}.ms-Icon--SignOut::before{content:''}.ms-Icon--SingleBookmark::before{content:''}.ms-Icon--SingleBookmarkSolid::before{content:''}.ms-Icon--SingleColumn::before{content:''}.ms-Icon--SingleColumnEdit::before{content:''}.ms-Icon--SIPMove::before{content:''}.ms-Icon--SiteScan::before{content:''}.ms-Icon--SizeLegacy::before{content:''}.ms-Icon--SkipBack10::before{content:''}.ms-Icon--SkipForward30::before{content:''}.ms-Icon--SkiResorts::before{content:''}.ms-Icon--SkypeArrow::before{content:''}.ms-Icon--SkypeCheck::before{content:''}.ms-Icon--SkypeCircleArrow::before{content:''}.ms-Icon--SkypeCircleCheck::before{content:''}.ms-Icon--SkypeCircleClock::before{content:''}.ms-Icon--SkypeCircleMinus::before{content:''}.ms-Icon--SkypeCircleSlash::before{content:''}.ms-Icon--SkypeClock::before{content:''}.ms-Icon--SkypeForBusinessLogo::before{content:''}.ms-Icon--SkypeForBusinessLogo16::before{content:''}.ms-Icon--SkypeForBusinessLogoFill::before{content:''}.ms-Icon--SkypeForBusinessLogoFill16::before{content:''}.ms-Icon--SkypeLogo::before{content:''}.ms-Icon--SkypeLogo16::before{content:''}.ms-Icon--SkypeMessage::before{content:''}.ms-Icon--SkypeMinus::before{content:''}.ms-Icon--SkypeSlash::before{content:''}.ms-Icon--Slider::before{content:''}.ms-Icon--SliderHandleSize::before{content:''}.ms-Icon--SliderThumb::before{content:''}.ms-Icon--Slideshow::before{content:''}.ms-Icon--SmartGlassRemote::before{content:''}.ms-Icon--SnapToGrid::before{content:''}.ms-Icon--Snooze::before{content:''}.ms-Icon--Snow::before{content:''}.ms-Icon--Snowflake::before{content:''}.ms-Icon--SnowShowerDay::before{content:''}.ms-Icon--SnowShowerNight::before{content:''}.ms-Icon--Soccer::before{content:''}.ms-Icon--SocialListeningLogo::before{content:''}.ms-Icon--Sort::before{content:''}.ms-Icon--SortDown::before{content:''}.ms-Icon--SortLines::before{content:''}.ms-Icon--SortUp::before{content:''}.ms-Icon--Source::before{content:''}.ms-Icon--Spacer::before{content:''}.ms-Icon--Speakers::before{content:''}.ms-Icon--SpecialEvent::before{content:''}.ms-Icon--SpeedHigh::before{content:''}.ms-Icon--Spelling::before{content:''}.ms-Icon--Split::before{content:''}.ms-Icon--SplitObject::before{content:''}.ms-Icon--Sprint::before{content:''}.ms-Icon--Squalls::before{content:''}.ms-Icon--SquareShape::before{content:''}.ms-Icon--SquareShapeSolid::before{content:''}.ms-Icon--Stack::before{content:''}.ms-Icon--StackColumnChart::before{content:''}.ms-Icon--StackedBarChart::before{content:''}.ms-Icon--StackedColumnChart2::before{content:''}.ms-Icon--StackedColumnChart2Fill::before{content:''}.ms-Icon--StackedLineChart::before{content:''}.ms-Icon--StackIndicator::before{content:''}.ms-Icon--StaffNotebookLogo16::before{content:''}.ms-Icon--StaffNotebookLogo32::before{content:''}.ms-Icon--StaffNotebookLogoFill16::before{content:''}.ms-Icon--StaffNotebookLogoFill32::before{content:''}.ms-Icon--StaffNotebookLogoInverted16::before{content:''}.ms-Icon--StaffNotebookLogoInverted32::before{content:''}.ms-Icon--Starburst::before{content:''}.ms-Icon--StarburstSolid::before{content:''}.ms-Icon--StatusCircleBlock::before{content:''}.ms-Icon--StatusCircleBlock2::before{content:''}.ms-Icon--StatusCircleCheckmark::before{content:''}.ms-Icon--StatusCircleErrorX::before{content:''}.ms-Icon--StatusCircleExclamation::before{content:''}.ms-Icon--StatusCircleInfo::before{content:''}.ms-Icon--StatusCircleInner::before{content:''}.ms-Icon--StatusCircleOuter::before{content:''}.ms-Icon--StatusCircleQuestionMark::before{content:''}.ms-Icon--StatusCircleRing::before{content:''}.ms-Icon--StatusCircleSync::before{content:''}.ms-Icon--StatusErrorFull::before{content:''}.ms-Icon--StatusTriangle::before{content:''}.ms-Icon--StatusTriangleExclamation::before{content:''}.ms-Icon--StatusTriangleInner::before{content:''}.ms-Icon--StatusTriangleOuter::before{content:''}.ms-Icon--Step::before{content:''}.ms-Icon--StepInsert::before{content:''}.ms-Icon--StepShared::before{content:''}.ms-Icon--StepSharedAdd::before{content:''}.ms-Icon--StepSharedInsert::before{content:''}.ms-Icon--StickyNotesOutlineAppIcon::before{content:''}.ms-Icon--StickyNotesSolidAppIcon::before{content:''}.ms-Icon--StockDown::before{content:''}.ms-Icon--StockUp::before{content:''}.ms-Icon--Stop::before{content:''}.ms-Icon--StopSolid::before{content:''}.ms-Icon--Stopwatch::before{content:''}.ms-Icon--StorageOptical::before{content:''}.ms-Icon--StoreLogo16::before{content:''}.ms-Icon--StoreLogoMed20::before{content:''}.ms-Icon--Storyboard::before{content:''}.ms-Icon--Streaming::before{content:''}.ms-Icon--StreamingOff::before{content:''}.ms-Icon--StreamLogo::before{content:''}.ms-Icon--Street::before{content:''}.ms-Icon--StreetsideSplitMinimize::before{content:''}.ms-Icon--Strikethrough::before{content:''}.ms-Icon--Subscribe::before{content:''}.ms-Icon--Subscript::before{content:''}.ms-Icon--SubstitutionsIn::before{content:''}.ms-Icon--Suitcase::before{content:''}.ms-Icon--SunAdd::before{content:''}.ms-Icon--Sunny::before{content:''}.ms-Icon--SunQuestionMark::before{content:''}.ms-Icon--Superscript::before{content:''}.ms-Icon--SurveyQuestions::before{content:''}.ms-Icon--SwayLogo16::before{content:''}.ms-Icon--SwayLogo32::before{content:''}.ms-Icon--SwayLogoFill16::before{content:''}.ms-Icon--SwayLogoFill32::before{content:''}.ms-Icon--SwayLogoInverse::before{content:''}.ms-Icon--Switch::before{content:''}.ms-Icon--SwitcherStartEnd::before{content:''}.ms-Icon--SwitchUser::before{content:''}.ms-Icon--Sync::before{content:''}.ms-Icon--SyncFolder::before{content:''}.ms-Icon--SyncOccurence::before{content:''}.ms-Icon--SyncStatus::before{content:''}.ms-Icon--SyncStatusSolid::before{content:''}.ms-Icon--SyncToPC::before{content:''}.ms-Icon--System::before{content:''}.ms-Icon--Tab::before{content:''}.ms-Icon--TabCenter::before{content:''}.ms-Icon--Table::before{content:''}.ms-Icon--TableBrandedColumn::before{content:''}.ms-Icon--TableBrandedRow::before{content:''}.ms-Icon--TableComputed::before{content:''}.ms-Icon--TableFirstColumn::before{content:''}.ms-Icon--TableGroup::before{content:''}.ms-Icon--TableHeaderRow::before{content:''}.ms-Icon--TableLastColumn::before{content:''}.ms-Icon--TableLink::before{content:''}.ms-Icon--Tablet::before{content:''}.ms-Icon--TabletMode::before{content:''}.ms-Icon--TableTotalRow::before{content:''}.ms-Icon--TabletSelected::before{content:''}.ms-Icon--TabOneColumn::before{content:''}.ms-Icon--TabThreeColumn::before{content:''}.ms-Icon--TabTwoColumn::before{content:''}.ms-Icon--Tag::before{content:''}.ms-Icon--TagGroup::before{content:''}.ms-Icon--TagSolid::before{content:''}.ms-Icon--TagUnknown::before{content:''}.ms-Icon--TagUnknown12::before{content:''}.ms-Icon--TagUnknown12Mirror::before{content:''}.ms-Icon--TagUnknownMirror::before{content:''}.ms-Icon--Taskboard::before{content:''}.ms-Icon--TaskGroup::before{content:''}[dir=rtl] .ms-Icon--TaskGroup::before{content:''}.ms-Icon--TaskGroupMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskGroupMirrored::before{content:''}.ms-Icon--TaskList::before{content:''}.ms-Icon--TaskLogo::before{content:''}.ms-Icon--TaskManager::before{content:''}[dir=rtl] .ms-Icon--TaskManager::before{content:''}.ms-Icon--TaskManagerMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskManagerMirrored::before{content:''}.ms-Icon--TaskSolid::before{content:''}.ms-Icon--Taxi::before{content:''}.ms-Icon--TeamFavorite::before{content:''}.ms-Icon--TeamsLogo::before{content:''}.ms-Icon--TeamsLogo16::before{content:''}.ms-Icon--TeamsLogoFill::before{content:''}.ms-Icon--TeamsLogoFill16::before{content:''}.ms-Icon--TeamsLogoInverse::before{content:''}.ms-Icon--Teamwork::before{content:''}.ms-Icon--Teeth::before{content:''}.ms-Icon--Telemarketer::before{content:''}.ms-Icon--TemporaryUser::before{content:''}.ms-Icon--Tennis::before{content:''}.ms-Icon--TestAutoSolid::before{content:''}.ms-Icon--TestBeaker::before{content:''}.ms-Icon--TestBeakerSolid::before{content:''}.ms-Icon--TestCase::before{content:''}.ms-Icon--TestExploreSolid::before{content:''}.ms-Icon--TestImpactSolid::before{content:''}.ms-Icon--TestParameter::before{content:''}.ms-Icon--TestPlan::before{content:''}.ms-Icon--TestStep::before{content:''}.ms-Icon--TestSuite::before{content:''}.ms-Icon--TestUserSolid::before{content:''}.ms-Icon--TextAlignBottom::before{content:''}.ms-Icon--TextAlignMiddle::before{content:''}.ms-Icon--TextAlignTop::before{content:''}.ms-Icon--TextBox::before{content:''}.ms-Icon--TextCallout::before{content:''}.ms-Icon--TextDocument::before{content:''}.ms-Icon--TextDocumentShared::before{content:''}.ms-Icon--TextField::before{content:''}.ms-Icon--TextOverflow::before{content:''}.ms-Icon--TextParagraphOption::before{content:''}.ms-Icon--TextRecognition::before{content:''}.ms-Icon--TextRotate270Degrees::before{content:''}.ms-Icon--TextRotate90Degrees::before{content:''}.ms-Icon--TextRotateHorizontal::before{content:''}.ms-Icon--TextRotation::before{content:''}.ms-Icon--TFVCLogo::before{content:''}.ms-Icon--ThisPC::before{content:''}.ms-Icon--ThreeQuarterCircle::before{content:''}.ms-Icon--ThumbnailView::before{content:''}[dir=rtl] .ms-Icon--ThumbnailView::before{content:''}.ms-Icon--ThumbnailViewMirrored::before{content:''}[dir=rtl] .ms-Icon--ThumbnailViewMirrored::before{content:''}.ms-Icon--Thunderstorms::before{content:''}.ms-Icon--Ticket::before{content:''}.ms-Icon--Tiles::before{content:''}.ms-Icon--Tiles2::before{content:''}.ms-Icon--TimeEntry::before{content:''}.ms-Icon--Timeline::before{content:''}.ms-Icon--TimelineDelivery::before{content:''}.ms-Icon--TimelineMatrixView::before{content:''}.ms-Icon--TimelineProgress::before{content:''}.ms-Icon--TimePicker::before{content:''}.ms-Icon--Timer::before{content:''}.ms-Icon--TimeSheet::before{content:''}.ms-Icon--ToDoLogoBottom::before{content:''}.ms-Icon--ToDoLogoInverse::before{content:''}.ms-Icon--ToDoLogoOutline::before{content:''}.ms-Icon--ToDoLogoTop::before{content:''}.ms-Icon--ToggleBorder::before{content:''}.ms-Icon--ToggleFilled::before{content:''}.ms-Icon--ToggleLeft::before{content:''}.ms-Icon--ToggleRight::before{content:''}.ms-Icon--ToggleThumb::before{content:''}.ms-Icon--Toll::before{content:''}.ms-Icon--Toolbox::before{content:''}.ms-Icon--Total::before{content:''}.ms-Icon--Touch::before{content:''}.ms-Icon--TouchPointer::before{content:''}.ms-Icon--Trackers::before{content:''}[dir=rtl] .ms-Icon--Trackers::before{content:''}.ms-Icon--TrackersMirrored::before{content:''}[dir=rtl] .ms-Icon--TrackersMirrored::before{content:''}.ms-Icon--Train::before{content:''}.ms-Icon--TrainSolid::before{content:''}.ms-Icon--TransferCall::before{content:''}.ms-Icon--Transition::before{content:''}.ms-Icon--TransitionEffect::before{content:''}.ms-Icon--TransitionPop::before{content:''}.ms-Icon--TransitionPush::before{content:''}.ms-Icon--Translate::before{content:''}.ms-Icon--Trending12::before{content:''}.ms-Icon--TriangleDown12::before{content:''}.ms-Icon--TriangleLeft12::before{content:''}.ms-Icon--TriangleRight12::before{content:''}.ms-Icon--TriangleShape::before{content:''}.ms-Icon--TriangleShapeSolid::before{content:''}.ms-Icon--TriangleSolid::before{content:''}.ms-Icon--TriangleSolidDown12::before{content:''}.ms-Icon--TriangleSolidLeft12::before{content:''}.ms-Icon--TriangleSolidRight12::before{content:''}.ms-Icon--TriangleSolidUp12::before{content:''}.ms-Icon--TriangleUp12::before{content:''}.ms-Icon--TriggerApproval::before{content:''}.ms-Icon--TriggerAuto::before{content:''}.ms-Icon--TriggerUser::before{content:''}.ms-Icon--Trim::before{content:''}.ms-Icon--TrimEnd::before{content:''}.ms-Icon--TrimStart::before{content:''}.ms-Icon--TripleColumn::before{content:''}.ms-Icon--TripleColumnEdit::before{content:''}.ms-Icon--TripleColumnWide::before{content:''}.ms-Icon--Trophy::before{content:''}.ms-Icon--Trophy2::before{content:''}.ms-Icon--Trophy2Solid::before{content:''}.ms-Icon--TurnRight::before{content:''}.ms-Icon--TVMonitor::before{content:''}.ms-Icon--TVMonitorSelected::before{content:''}.ms-Icon--TypeScriptLanguage::before{content:''}.ms-Icon--Umbrella::before{content:''}.ms-Icon--Underline::before{content:''}.ms-Icon--Undo::before{content:''}.ms-Icon--Uneditable2::before{content:''}[dir=rtl] .ms-Icon--Uneditable2::before{content:''}.ms-Icon--Uneditable2Mirrored::before{content:''}[dir=rtl] .ms-Icon--Uneditable2Mirrored::before{content:''}.ms-Icon--Uneditable::before{content:''}[dir=rtl] .ms-Icon--Uneditable::before{content:''}.ms-Icon--UneditableMirrored::before{content:''}[dir=rtl] .ms-Icon--UneditableMirrored::before{content:''}.ms-Icon--UneditableSolid12::before{content:''}[dir=rtl] .ms-Icon--UneditableSolid12::before{content:''}.ms-Icon--UneditableSolidMirrored12::before{content:''}[dir=rtl] .ms-Icon--UneditableSolidMirrored12::before{content:''}.ms-Icon--Unfavorite::before{content:''}.ms-Icon--UngroupObject::before{content:''}.ms-Icon--UnknownCall::before{content:''}.ms-Icon--Unknown::before{content:''}[dir=rtl] .ms-Icon--Unknown::before{content:''}.ms-Icon--UnknownMirrored::before{content:''}[dir=rtl] .ms-Icon--UnknownMirrored::before{content:''}.ms-Icon--UnknownSolid::before{content:''}[dir=rtl] .ms-Icon--UnknownSolid::before{content:''}.ms-Icon--UnknownMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--UnknownMirroredSolid::before{content:''}.ms-Icon--Unlock::before{content:''}.ms-Icon--UnlockSolid::before{content:''}.ms-Icon--Unpin::before{content:''}.ms-Icon--UnpublishContent::before{content:''}.ms-Icon--UnSetColor::before{content:''}.ms-Icon--UnstackSelected::before{content:''}.ms-Icon--Unsubscribe::before{content:''}.ms-Icon--UnsyncFolder::before{content:''}.ms-Icon--UnsyncOccurence::before{content:''}.ms-Icon--Untag::before{content:''}.ms-Icon--Up::before{content:''}.ms-Icon--UpdateRestore::before{content:''}.ms-Icon--UpgradeAnalysis::before{content:''}.ms-Icon--Upload::before{content:''}.ms-Icon--URLBlock::before{content:''}.ms-Icon--USB::before{content:''}.ms-Icon--UserEvent::before{content:''}.ms-Icon--UserFollowed::before{content:''}.ms-Icon--UserGauge::before{content:''}.ms-Icon--UserOptional::before{content:''}.ms-Icon--UserPause::before{content:''}.ms-Icon--UserRemove::before{content:''}.ms-Icon--UserSync::before{content:''}.ms-Icon--UserWarning::before{content:''}.ms-Icon--Vacation::before{content:''}.ms-Icon--Vaccination::before{content:''}.ms-Icon--Variable::before{content:''}.ms-Icon--Variable2::before{content:''}.ms-Icon--VariableGroup::before{content:''}.ms-Icon--VB::before{content:''}.ms-Icon--VennDiagram::before{content:''}.ms-Icon--VerifiedBrand::before{content:''}.ms-Icon--VerifiedBrandSolid::before{content:''}.ms-Icon--VersionControlPush::before{content:''}.ms-Icon--VerticalDistributeCenter::before{content:''}.ms-Icon--Video::before{content:''}.ms-Icon--Video360Generic::before{content:''}.ms-Icon--VideoLightOff::before{content:''}.ms-Icon--VideoOff::before{content:''}.ms-Icon--VideoSearch::before{content:''}.ms-Icon--VideoSolid::before{content:''}.ms-Icon--View::before{content:''}.ms-Icon--ViewAll::before{content:''}.ms-Icon--ViewAll2::before{content:''}.ms-Icon--ViewDashboard::before{content:''}.ms-Icon--ViewInAR::before{content:''}.ms-Icon--ViewList::before{content:''}.ms-Icon--ViewListGroup::before{content:''}.ms-Icon--ViewListTree::before{content:''}.ms-Icon--ViewOriginal::before{content:''}.ms-Icon--VisioDiagram::before{content:''}.ms-Icon--VisioDiagramSync::before{content:''}.ms-Icon--VisioDocument::before{content:''}.ms-Icon--VisioLogo::before{content:''}.ms-Icon--VisioLogo16::before{content:''}.ms-Icon--VisioLogoFill::before{content:''}.ms-Icon--VisioLogoFill16::before{content:''}.ms-Icon--VisioLogoInverse::before{content:''}.ms-Icon--VisioLogoInverse16::before{content:''}.ms-Icon--VisualBasicLanguage::before{content:''}.ms-Icon--VisuallyImpaired::before{content:''}.ms-Icon--VisualsFolder::before{content:''}.ms-Icon--VisualsStore::before{content:''}.ms-Icon--VisualStudioIDELogo32::before{content:''}.ms-Icon--VisualStudioLogo::before{content:''}.ms-Icon--VoicemailForward::before{content:''}.ms-Icon--VoicemailIRM::before{content:''}.ms-Icon--VoicemailReply::before{content:''}.ms-Icon--Volume0::before{content:''}.ms-Icon--Volume1::before{content:''}.ms-Icon--Volume2::before{content:''}.ms-Icon--Volume3::before{content:''}.ms-Icon--VolumeDisabled::before{content:''}.ms-Icon--VSTSAltLogo1::before{content:''}.ms-Icon--VSTSAltLogo2::before{content:''}.ms-Icon--VSTSLogo::before{content:''}.ms-Icon--Waffle::before{content:''}.ms-Icon--WaffleOffice365::before{content:''}.ms-Icon--WaitlistConfirm::before{content:''}[dir=rtl] .ms-Icon--WaitlistConfirm::before{content:''}.ms-Icon--WaitlistConfirmMirrored::before{content:''}[dir=rtl] .ms-Icon--WaitlistConfirmMirrored::before{content:''}.ms-Icon--Warning::before{content:''}.ms-Icon--Warning12::before{content:''}.ms-Icon--WarningSolid::before{content:''}.ms-Icon--WavingHand::before{content:''}.ms-Icon--WebAppBuilderFragment::before{content:''}.ms-Icon--WebAppBuilderFragmentCreate::before{content:''}.ms-Icon--WebAppBuilderModule::before{content:''}.ms-Icon--WebAppBuilderSlot::before{content:''}.ms-Icon--Webcam2::before{content:''}.ms-Icon--Webcam2Off::before{content:''}.ms-Icon--WebComponents::before{content:''}.ms-Icon--WebEnvironment::before{content:''}.ms-Icon--WebPublish::before{content:''}.ms-Icon--Website::before{content:''}.ms-Icon--WebTemplate::before{content:''}.ms-Icon--Weights::before{content:''}.ms-Icon--Wheelchair::before{content:''}.ms-Icon--WhiteBoardApp16::before{content:''}.ms-Icon--WhiteBoardApp32::before{content:''}.ms-Icon--WifiEthernet::before{content:''}.ms-Icon--WifiWarning4::before{content:''}.ms-Icon--WindDirection::before{content:''}.ms-Icon--WindowEdit::before{content:''}.ms-Icon--WindowsLogo::before{content:''}.ms-Icon--Wines::before{content:''}.ms-Icon--WipePhone::before{content:''}.ms-Icon--WordDocument::before{content:''}.ms-Icon--WordLogo::before{content:''}.ms-Icon--WordLogo16::before{content:''}.ms-Icon--WordLogoFill::before{content:''}.ms-Icon--WordLogoFill16::before{content:''}.ms-Icon--WordLogoInverse::before{content:''}.ms-Icon--WordLogoInverse16::before{content:''}.ms-Icon--Work::before{content:''}.ms-Icon--WorkFlow::before{content:''}.ms-Icon--WorkforceManagement::before{content:''}.ms-Icon--WorkItem::before{content:''}.ms-Icon--WorkItemAlert::before{content:''}.ms-Icon--WorkItemBar::before{content:''}.ms-Icon--WorkItemBarSolid::before{content:''}.ms-Icon--WorkItemBug::before{content:''}.ms-Icon--World::before{content:''}.ms-Icon--WorldClock::before{content:''}.ms-Icon--YammerLogo::before{content:''}.ms-Icon--ZipFolder::before{content:''}.ms-Icon--Zoom::before{content:''}.ms-Icon--ZoomIn::before{content:''}.ms-Icon--ZoomOut::before{content:''}.ms-Icon--ZoomToFit::before{content:''}.ms-Icon--HumanResources::before{content:''}.ms-Icon--StoreLogo::before{content:''}.ms-Icon--OneDrive::before{content:''}.ms-Icon--ToggleOff::before{content:''}.ms-Icon--StoreLogoMed::before{content:''}@font-face{font-family:FabricMDL2Icons;src:url(https://static2.sharepointonline.com/files/fabric/assets/icons/fabricmdl2icons-3.70.woff) format('woff');font-weight:400;font-style:normal}@media (max-width:479.99999px){.ms-hiddenLgDown,.ms-hiddenMdDown,.ms-hiddenSm,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:480px) and (max-width:639.99999px){.ms-hiddenLgDown,.ms-hiddenMd,.ms-hiddenMdDown,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:640px) and (max-width:1023.99999px){.ms-hiddenLg,.ms-hiddenLgDown,.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1024px) and (max-width:1365.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXl,.ms-hiddenXlDown,.ms-hiddenXlUp,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1366px) and (max-width:1919.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxl,.ms-hiddenXxlDown,.ms-hiddenXxlUp{display:none!important}}@media (min-width:1920px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxlUp,.ms-hiddenXxxl{display:none!important}}.ms-sm12{width:100%}.ms-sm11{width:91.66666666666666%}.ms-sm10{width:83.33333333333334%}.ms-sm9{width:75%}.ms-sm8{width:66.66666666666666%}.ms-sm7{width:58.333333333333336%}.ms-sm6{width:50%}.ms-sm5{width:41.66666666666667%}.ms-sm4{width:33.33333333333333%}.ms-sm3{width:25%}.ms-sm2{width:16.666666666666664%}.ms-sm1{width:8.333333333333332%}[dir=ltr] .ms-smPull12{right:100%}[dir=rtl] .ms-smPull12{left:100%}[dir=ltr] .ms-smPull11{right:91.66667%}[dir=rtl] .ms-smPull11{left:91.66667%}[dir=ltr] .ms-smPull10{right:83.33333%}[dir=rtl] .ms-smPull10{left:83.33333%}[dir=ltr] .ms-smPull9{right:75%}[dir=rtl] .ms-smPull9{left:75%}[dir=ltr] .ms-smPull8{right:66.66667%}[dir=rtl] .ms-smPull8{left:66.66667%}[dir=ltr] .ms-smPull7{right:58.33333%}[dir=rtl] .ms-smPull7{left:58.33333%}[dir=ltr] .ms-smPull6{right:50%}[dir=rtl] .ms-smPull6{left:50%}[dir=ltr] .ms-smPull5{right:41.66667%}[dir=rtl] .ms-smPull5{left:41.66667%}[dir=ltr] .ms-smPull4{right:33.33333%}[dir=rtl] .ms-smPull4{left:33.33333%}[dir=ltr] .ms-smPull3{right:25%}[dir=rtl] .ms-smPull3{left:25%}[dir=ltr] .ms-smPull2{right:16.66667%}[dir=rtl] .ms-smPull2{left:16.66667%}[dir=ltr] .ms-smPull1{right:8.33333%}[dir=rtl] .ms-smPull1{left:8.33333%}[dir=ltr] .ms-smPull0{right:auto}[dir=rtl] .ms-smPull0{left:auto}[dir=ltr] .ms-smPush12{left:100%}[dir=rtl] .ms-smPush12{right:100%}[dir=ltr] .ms-smPush11{left:91.66667%}[dir=rtl] .ms-smPush11{right:91.66667%}[dir=ltr] .ms-smPush10{left:83.33333%}[dir=rtl] .ms-smPush10{right:83.33333%}[dir=ltr] .ms-smPush9{left:75%}[dir=rtl] .ms-smPush9{right:75%}[dir=ltr] .ms-smPush8{left:66.66667%}[dir=rtl] .ms-smPush8{right:66.66667%}[dir=ltr] .ms-smPush7{left:58.33333%}[dir=rtl] .ms-smPush7{right:58.33333%}[dir=ltr] .ms-smPush6{left:50%}[dir=rtl] .ms-smPush6{right:50%}[dir=ltr] .ms-smPush5{left:41.66667%}[dir=rtl] .ms-smPush5{right:41.66667%}[dir=ltr] .ms-smPush4{left:33.33333%}[dir=rtl] .ms-smPush4{right:33.33333%}[dir=ltr] .ms-smPush3{left:25%}[dir=rtl] .ms-smPush3{right:25%}[dir=ltr] .ms-smPush2{left:16.66667%}[dir=rtl] .ms-smPush2{right:16.66667%}[dir=ltr] .ms-smPush1{left:8.33333%}[dir=rtl] .ms-smPush1{right:8.33333%}[dir=ltr] .ms-smPush0{left:auto}[dir=rtl] .ms-smPush0{right:auto}[dir=ltr] .ms-smOffset11{margin-left:91.66667%}[dir=rtl] .ms-smOffset11{margin-right:91.66667%}[dir=ltr] .ms-smOffset10{margin-left:83.33333%}[dir=rtl] .ms-smOffset10{margin-right:83.33333%}[dir=ltr] .ms-smOffset9{margin-left:75%}[dir=rtl] .ms-smOffset9{margin-right:75%}[dir=ltr] .ms-smOffset8{margin-left:66.66667%}[dir=rtl] .ms-smOffset8{margin-right:66.66667%}[dir=ltr] .ms-smOffset7{margin-left:58.33333%}[dir=rtl] .ms-smOffset7{margin-right:58.33333%}[dir=ltr] .ms-smOffset6{margin-left:50%}[dir=rtl] .ms-smOffset6{margin-right:50%}[dir=ltr] .ms-smOffset5{margin-left:41.66667%}[dir=rtl] .ms-smOffset5{margin-right:41.66667%}[dir=ltr] .ms-smOffset4{margin-left:33.33333%}[dir=rtl] .ms-smOffset4{margin-right:33.33333%}[dir=ltr] .ms-smOffset3{margin-left:25%}[dir=rtl] .ms-smOffset3{margin-right:25%}[dir=ltr] .ms-smOffset2{margin-left:16.66667%}[dir=rtl] .ms-smOffset2{margin-right:16.66667%}[dir=ltr] .ms-smOffset1{margin-left:8.33333%}[dir=rtl] .ms-smOffset1{margin-right:8.33333%}[dir=ltr] .ms-smOffset0{margin-left:0}[dir=rtl] .ms-smOffset0{margin-right:0}@media (min-width:480px){.ms-md12{width:100%}}@media (min-width:480px){.ms-md11{width:91.66666666666666%}}@media (min-width:480px){.ms-md10{width:83.33333333333334%}}@media (min-width:480px){.ms-md9{width:75%}}@media (min-width:480px){.ms-md8{width:66.66666666666666%}}@media (min-width:480px){.ms-md7{width:58.333333333333336%}}@media (min-width:480px){.ms-md6{width:50%}}@media (min-width:480px){.ms-md5{width:41.66666666666667%}}@media (min-width:480px){.ms-md4{width:33.33333333333333%}}@media (min-width:480px){.ms-md3{width:25%}}@media (min-width:480px){.ms-md2{width:16.666666666666664%}}@media (min-width:480px){.ms-md1{width:8.333333333333332%}}@media (min-width:480px){[dir=ltr] .ms-mdPull12{right:100%}[dir=rtl] .ms-mdPull12{left:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPull11{right:91.66667%}[dir=rtl] .ms-mdPull11{left:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull10{right:83.33333%}[dir=rtl] .ms-mdPull10{left:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull9{right:75%}[dir=rtl] .ms-mdPull9{left:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPull8{right:66.66667%}[dir=rtl] .ms-mdPull8{left:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull7{right:58.33333%}[dir=rtl] .ms-mdPull7{left:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull6{right:50%}[dir=rtl] .ms-mdPull6{left:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPull5{right:41.66667%}[dir=rtl] .ms-mdPull5{left:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull4{right:33.33333%}[dir=rtl] .ms-mdPull4{left:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull3{right:25%}[dir=rtl] .ms-mdPull3{left:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPull2{right:16.66667%}[dir=rtl] .ms-mdPull2{left:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull1{right:8.33333%}[dir=rtl] .ms-mdPull1{left:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull0{right:auto}[dir=rtl] .ms-mdPull0{left:auto}}@media (min-width:480px){[dir=ltr] .ms-mdPush12{left:100%}[dir=rtl] .ms-mdPush12{right:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPush11{left:91.66667%}[dir=rtl] .ms-mdPush11{right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush10{left:83.33333%}[dir=rtl] .ms-mdPush10{right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush9{left:75%}[dir=rtl] .ms-mdPush9{right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPush8{left:66.66667%}[dir=rtl] .ms-mdPush8{right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush7{left:58.33333%}[dir=rtl] .ms-mdPush7{right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush6{left:50%}[dir=rtl] .ms-mdPush6{right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPush5{left:41.66667%}[dir=rtl] .ms-mdPush5{right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush4{left:33.33333%}[dir=rtl] .ms-mdPush4{right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush3{left:25%}[dir=rtl] .ms-mdPush3{right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPush2{left:16.66667%}[dir=rtl] .ms-mdPush2{right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush1{left:8.33333%}[dir=rtl] .ms-mdPush1{right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush0{left:auto}[dir=rtl] .ms-mdPush0{right:auto}}@media (min-width:480px){[dir=ltr] .ms-mdOffset11{margin-left:91.66667%}[dir=rtl] .ms-mdOffset11{margin-right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset10{margin-left:83.33333%}[dir=rtl] .ms-mdOffset10{margin-right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset9{margin-left:75%}[dir=rtl] .ms-mdOffset9{margin-right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset8{margin-left:66.66667%}[dir=rtl] .ms-mdOffset8{margin-right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset7{margin-left:58.33333%}[dir=rtl] .ms-mdOffset7{margin-right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset6{margin-left:50%}[dir=rtl] .ms-mdOffset6{margin-right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset5{margin-left:41.66667%}[dir=rtl] .ms-mdOffset5{margin-right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset4{margin-left:33.33333%}[dir=rtl] .ms-mdOffset4{margin-right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset3{margin-left:25%}[dir=rtl] .ms-mdOffset3{margin-right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset2{margin-left:16.66667%}[dir=rtl] .ms-mdOffset2{margin-right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset1{margin-left:8.33333%}[dir=rtl] .ms-mdOffset1{margin-right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset0{margin-left:0}[dir=rtl] .ms-mdOffset0{margin-right:0}}@media (min-width:640px){.ms-lg12{width:100%}}@media (min-width:640px){.ms-lg11{width:91.66666666666666%}}@media (min-width:640px){.ms-lg10{width:83.33333333333334%}}@media (min-width:640px){.ms-lg9{width:75%}}@media (min-width:640px){.ms-lg8{width:66.66666666666666%}}@media (min-width:640px){.ms-lg7{width:58.333333333333336%}}@media (min-width:640px){.ms-lg6{width:50%}}@media (min-width:640px){.ms-lg5{width:41.66666666666667%}}@media (min-width:640px){.ms-lg4{width:33.33333333333333%}}@media (min-width:640px){.ms-lg3{width:25%}}@media (min-width:640px){.ms-lg2{width:16.666666666666664%}}@media (min-width:640px){.ms-lg1{width:8.333333333333332%}}@media (min-width:640px){[dir=ltr] .ms-lgPull12{right:100%}[dir=rtl] .ms-lgPull12{left:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPull11{right:91.66667%}[dir=rtl] .ms-lgPull11{left:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull10{right:83.33333%}[dir=rtl] .ms-lgPull10{left:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull9{right:75%}[dir=rtl] .ms-lgPull9{left:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPull8{right:66.66667%}[dir=rtl] .ms-lgPull8{left:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull7{right:58.33333%}[dir=rtl] .ms-lgPull7{left:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull6{right:50%}[dir=rtl] .ms-lgPull6{left:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPull5{right:41.66667%}[dir=rtl] .ms-lgPull5{left:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull4{right:33.33333%}[dir=rtl] .ms-lgPull4{left:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull3{right:25%}[dir=rtl] .ms-lgPull3{left:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPull2{right:16.66667%}[dir=rtl] .ms-lgPull2{left:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull1{right:8.33333%}[dir=rtl] .ms-lgPull1{left:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull0{right:auto}[dir=rtl] .ms-lgPull0{left:auto}}@media (min-width:640px){[dir=ltr] .ms-lgPush12{left:100%}[dir=rtl] .ms-lgPush12{right:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPush11{left:91.66667%}[dir=rtl] .ms-lgPush11{right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush10{left:83.33333%}[dir=rtl] .ms-lgPush10{right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush9{left:75%}[dir=rtl] .ms-lgPush9{right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPush8{left:66.66667%}[dir=rtl] .ms-lgPush8{right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush7{left:58.33333%}[dir=rtl] .ms-lgPush7{right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush6{left:50%}[dir=rtl] .ms-lgPush6{right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPush5{left:41.66667%}[dir=rtl] .ms-lgPush5{right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush4{left:33.33333%}[dir=rtl] .ms-lgPush4{right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush3{left:25%}[dir=rtl] .ms-lgPush3{right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPush2{left:16.66667%}[dir=rtl] .ms-lgPush2{right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush1{left:8.33333%}[dir=rtl] .ms-lgPush1{right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush0{left:auto}[dir=rtl] .ms-lgPush0{right:auto}}@media (min-width:640px){[dir=ltr] .ms-lgOffset11{margin-left:91.66667%}[dir=rtl] .ms-lgOffset11{margin-right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset10{margin-left:83.33333%}[dir=rtl] .ms-lgOffset10{margin-right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset9{margin-left:75%}[dir=rtl] .ms-lgOffset9{margin-right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset8{margin-left:66.66667%}[dir=rtl] .ms-lgOffset8{margin-right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset7{margin-left:58.33333%}[dir=rtl] .ms-lgOffset7{margin-right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset6{margin-left:50%}[dir=rtl] .ms-lgOffset6{margin-right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset5{margin-left:41.66667%}[dir=rtl] .ms-lgOffset5{margin-right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset4{margin-left:33.33333%}[dir=rtl] .ms-lgOffset4{margin-right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset3{margin-left:25%}[dir=rtl] .ms-lgOffset3{margin-right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset2{margin-left:16.66667%}[dir=rtl] .ms-lgOffset2{margin-right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset1{margin-left:8.33333%}[dir=rtl] .ms-lgOffset1{margin-right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset0{margin-left:0}[dir=rtl] .ms-lgOffset0{margin-right:0}}@media (min-width:1024px){.ms-xl12{width:100%}}@media (min-width:1024px){.ms-xl11{width:91.66666666666666%}}@media (min-width:1024px){.ms-xl10{width:83.33333333333334%}}@media (min-width:1024px){.ms-xl9{width:75%}}@media (min-width:1024px){.ms-xl8{width:66.66666666666666%}}@media (min-width:1024px){.ms-xl7{width:58.333333333333336%}}@media (min-width:1024px){.ms-xl6{width:50%}}@media (min-width:1024px){.ms-xl5{width:41.66666666666667%}}@media (min-width:1024px){.ms-xl4{width:33.33333333333333%}}@media (min-width:1024px){.ms-xl3{width:25%}}@media (min-width:1024px){.ms-xl2{width:16.666666666666664%}}@media (min-width:1024px){.ms-xl1{width:8.333333333333332%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull12{right:100%}[dir=rtl] .ms-xlPull12{left:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull11{right:91.66667%}[dir=rtl] .ms-xlPull11{left:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull10{right:83.33333%}[dir=rtl] .ms-xlPull10{left:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull9{right:75%}[dir=rtl] .ms-xlPull9{left:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull8{right:66.66667%}[dir=rtl] .ms-xlPull8{left:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull7{right:58.33333%}[dir=rtl] .ms-xlPull7{left:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull6{right:50%}[dir=rtl] .ms-xlPull6{left:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull5{right:41.66667%}[dir=rtl] .ms-xlPull5{left:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull4{right:33.33333%}[dir=rtl] .ms-xlPull4{left:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull3{right:25%}[dir=rtl] .ms-xlPull3{left:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull2{right:16.66667%}[dir=rtl] .ms-xlPull2{left:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull1{right:8.33333%}[dir=rtl] .ms-xlPull1{left:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull0{right:auto}[dir=rtl] .ms-xlPull0{left:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlPush12{left:100%}[dir=rtl] .ms-xlPush12{right:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush11{left:91.66667%}[dir=rtl] .ms-xlPush11{right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush10{left:83.33333%}[dir=rtl] .ms-xlPush10{right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush9{left:75%}[dir=rtl] .ms-xlPush9{right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush8{left:66.66667%}[dir=rtl] .ms-xlPush8{right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush7{left:58.33333%}[dir=rtl] .ms-xlPush7{right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush6{left:50%}[dir=rtl] .ms-xlPush6{right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush5{left:41.66667%}[dir=rtl] .ms-xlPush5{right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush4{left:33.33333%}[dir=rtl] .ms-xlPush4{right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush3{left:25%}[dir=rtl] .ms-xlPush3{right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush2{left:16.66667%}[dir=rtl] .ms-xlPush2{right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush1{left:8.33333%}[dir=rtl] .ms-xlPush1{right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush0{left:auto}[dir=rtl] .ms-xlPush0{right:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xlOffset11{margin-right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xlOffset10{margin-right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset9{margin-left:75%}[dir=rtl] .ms-xlOffset9{margin-right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xlOffset8{margin-right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xlOffset7{margin-right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset6{margin-left:50%}[dir=rtl] .ms-xlOffset6{margin-right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xlOffset5{margin-right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xlOffset4{margin-right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset3{margin-left:25%}[dir=rtl] .ms-xlOffset3{margin-right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xlOffset2{margin-right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xlOffset1{margin-right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset0{margin-left:0}[dir=rtl] .ms-xlOffset0{margin-right:0}}@media (min-width:1366px){.ms-xxl12{width:100%}}@media (min-width:1366px){.ms-xxl11{width:91.66666666666666%}}@media (min-width:1366px){.ms-xxl10{width:83.33333333333334%}}@media (min-width:1366px){.ms-xxl9{width:75%}}@media (min-width:1366px){.ms-xxl8{width:66.66666666666666%}}@media (min-width:1366px){.ms-xxl7{width:58.333333333333336%}}@media (min-width:1366px){.ms-xxl6{width:50%}}@media (min-width:1366px){.ms-xxl5{width:41.66666666666667%}}@media (min-width:1366px){.ms-xxl4{width:33.33333333333333%}}@media (min-width:1366px){.ms-xxl3{width:25%}}@media (min-width:1366px){.ms-xxl2{width:16.666666666666664%}}@media (min-width:1366px){.ms-xxl1{width:8.333333333333332%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull12{right:100%}[dir=rtl] .ms-xxlPull12{left:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull11{right:91.66667%}[dir=rtl] .ms-xxlPull11{left:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull10{right:83.33333%}[dir=rtl] .ms-xxlPull10{left:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull9{right:75%}[dir=rtl] .ms-xxlPull9{left:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull8{right:66.66667%}[dir=rtl] .ms-xxlPull8{left:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull7{right:58.33333%}[dir=rtl] .ms-xxlPull7{left:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull6{right:50%}[dir=rtl] .ms-xxlPull6{left:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull5{right:41.66667%}[dir=rtl] .ms-xxlPull5{left:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull4{right:33.33333%}[dir=rtl] .ms-xxlPull4{left:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull3{right:25%}[dir=rtl] .ms-xxlPull3{left:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull2{right:16.66667%}[dir=rtl] .ms-xxlPull2{left:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull1{right:8.33333%}[dir=rtl] .ms-xxlPull1{left:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull0{right:auto}[dir=rtl] .ms-xxlPull0{left:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush12{left:100%}[dir=rtl] .ms-xxlPush12{right:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush11{left:91.66667%}[dir=rtl] .ms-xxlPush11{right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush10{left:83.33333%}[dir=rtl] .ms-xxlPush10{right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush9{left:75%}[dir=rtl] .ms-xxlPush9{right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush8{left:66.66667%}[dir=rtl] .ms-xxlPush8{right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush7{left:58.33333%}[dir=rtl] .ms-xxlPush7{right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush6{left:50%}[dir=rtl] .ms-xxlPush6{right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush5{left:41.66667%}[dir=rtl] .ms-xxlPush5{right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush4{left:33.33333%}[dir=rtl] .ms-xxlPush4{right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush3{left:25%}[dir=rtl] .ms-xxlPush3{right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush2{left:16.66667%}[dir=rtl] .ms-xxlPush2{right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush1{left:8.33333%}[dir=rtl] .ms-xxlPush1{right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush0{left:auto}[dir=rtl] .ms-xxlPush0{right:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxlOffset11{margin-right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxlOffset10{margin-right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset9{margin-left:75%}[dir=rtl] .ms-xxlOffset9{margin-right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxlOffset8{margin-right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxlOffset7{margin-right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset6{margin-left:50%}[dir=rtl] .ms-xxlOffset6{margin-right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxlOffset5{margin-right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxlOffset4{margin-right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset3{margin-left:25%}[dir=rtl] .ms-xxlOffset3{margin-right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxlOffset2{margin-right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxlOffset1{margin-right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset0{margin-left:0}[dir=rtl] .ms-xxlOffset0{margin-right:0}}@media (min-width:1920px){.ms-xxxl12{width:100%}}@media (min-width:1920px){.ms-xxxl11{width:91.66666666666666%}}@media (min-width:1920px){.ms-xxxl10{width:83.33333333333334%}}@media (min-width:1920px){.ms-xxxl9{width:75%}}@media (min-width:1920px){.ms-xxxl8{width:66.66666666666666%}}@media (min-width:1920px){.ms-xxxl7{width:58.333333333333336%}}@media (min-width:1920px){.ms-xxxl6{width:50%}}@media (min-width:1920px){.ms-xxxl5{width:41.66666666666667%}}@media (min-width:1920px){.ms-xxxl4{width:33.33333333333333%}}@media (min-width:1920px){.ms-xxxl3{width:25%}}@media (min-width:1920px){.ms-xxxl2{width:16.666666666666664%}}@media (min-width:1920px){.ms-xxxl1{width:8.333333333333332%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull12{right:100%}[dir=rtl] .ms-xxxlPull12{left:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull11{right:91.66667%}[dir=rtl] .ms-xxxlPull11{left:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull10{right:83.33333%}[dir=rtl] .ms-xxxlPull10{left:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull9{right:75%}[dir=rtl] .ms-xxxlPull9{left:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull8{right:66.66667%}[dir=rtl] .ms-xxxlPull8{left:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull7{right:58.33333%}[dir=rtl] .ms-xxxlPull7{left:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull6{right:50%}[dir=rtl] .ms-xxxlPull6{left:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull5{right:41.66667%}[dir=rtl] .ms-xxxlPull5{left:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull4{right:33.33333%}[dir=rtl] .ms-xxxlPull4{left:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull3{right:25%}[dir=rtl] .ms-xxxlPull3{left:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull2{right:16.66667%}[dir=rtl] .ms-xxxlPull2{left:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull1{right:8.33333%}[dir=rtl] .ms-xxxlPull1{left:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull0{right:auto}[dir=rtl] .ms-xxxlPull0{left:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush12{left:100%}[dir=rtl] .ms-xxxlPush12{right:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush11{left:91.66667%}[dir=rtl] .ms-xxxlPush11{right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush10{left:83.33333%}[dir=rtl] .ms-xxxlPush10{right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush9{left:75%}[dir=rtl] .ms-xxxlPush9{right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush8{left:66.66667%}[dir=rtl] .ms-xxxlPush8{right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush7{left:58.33333%}[dir=rtl] .ms-xxxlPush7{right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush6{left:50%}[dir=rtl] .ms-xxxlPush6{right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush5{left:41.66667%}[dir=rtl] .ms-xxxlPush5{right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush4{left:33.33333%}[dir=rtl] .ms-xxxlPush4{right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush3{left:25%}[dir=rtl] .ms-xxxlPush3{right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush2{left:16.66667%}[dir=rtl] .ms-xxxlPush2{right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush1{left:8.33333%}[dir=rtl] .ms-xxxlPush1{right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush0{left:auto}[dir=rtl] .ms-xxxlPush0{right:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxxlOffset11{margin-right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxxlOffset10{margin-right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset9{margin-left:75%}[dir=rtl] .ms-xxxlOffset9{margin-right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxxlOffset8{margin-right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxxlOffset7{margin-right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset6{margin-left:50%}[dir=rtl] .ms-xxxlOffset6{margin-right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxxlOffset5{margin-right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxxlOffset4{margin-right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset3{margin-left:25%}[dir=rtl] .ms-xxxlOffset3{margin-right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxxlOffset2{margin-right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxxlOffset1{margin-right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset0{margin-left:0}[dir=rtl] .ms-xxxlOffset0{margin-right:0}}.ms-borderBox,.ms-borderBox::after,.ms-borderBox::before{box-sizing:border-box}.ms-borderBase{border:1px solid}.ms-clearfix{zoom:1}.ms-clearfix::after,.ms-clearfix::before{display:table;content:'';line-height:0}.ms-clearfix::after{clear:both}.ms-normalize{box-sizing:border-box;box-shadow:none;margin:0;padding:0}[dir=ltr] .ms-textAlignLeft{text-align:left}[dir=rtl] .ms-textAlignLeft{text-align:right}[dir=ltr] .ms-textAlignRight{text-align:right}[dir=rtl] .ms-textAlignRight{text-align:left}.ms-textAlignCenter{text-align:center}.ms-screenReaderOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ms-textTruncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.ms-noWrap{white-space:nowrap}.ms-Fabric{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#323130;font-family:'Segoe UI Web (West European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif;font-size:14px}.ms-Fabric button,.ms-Fabric input,.ms-Fabric textarea{font-family:inherit}.ms-Fabric [lang^=ar],.ms-Fabric[lang^=ar],[lang^=ar] .ms-Fabric{font-family:'Segoe UI Web (Arabic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=bg],.ms-Fabric[lang^=bg],[lang^=bg] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=cs],.ms-Fabric[lang^=cs],[lang^=cs] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=el],.ms-Fabric[lang^=el],[lang^=el] .ms-Fabric{font-family:'Segoe UI Web (Greek)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=et],.ms-Fabric[lang^=et],[lang^=et] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=he],.ms-Fabric[lang^=he],[lang^=he] .ms-Fabric{font-family:'Segoe UI Web (Hebrew)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hi],.ms-Fabric[lang^=hi],[lang^=hi] .ms-Fabric{font-family:'Nirmala UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hr],.ms-Fabric[lang^=hr],[lang^=hr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hu],.ms-Fabric[lang^=hu],[lang^=hu] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ja],.ms-Fabric[lang^=ja],[lang^=ja] .ms-Fabric{font-family:'Yu Gothic UI','Meiryo UI',Meiryo,'MS Pgothic',Osaka,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=kk],.ms-Fabric[lang^=kk],[lang^=kk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ko],.ms-Fabric[lang^=ko],[lang^=ko] .ms-Fabric{font-family:'Malgun Gothic',Gulim,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lo],.ms-Fabric[lang^=lo],[lang^=lo] .ms-Fabric{font-family:'Leelawadee UI Web','Lao UI',DokChampa,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lt],.ms-Fabric[lang^=lt],[lang^=lt] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lv],.ms-Fabric[lang^=lv],[lang^=lv] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=pl],.ms-Fabric[lang^=pl],[lang^=pl] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ru],.ms-Fabric[lang^=ru],[lang^=ru] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sk],.ms-Fabric[lang^=sk],[lang^=sk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sr-latn],.ms-Fabric[lang^=sr-latn],[lang^=sr-latn] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=th],.ms-Fabric[lang^=th],[lang^=th] .ms-Fabric{font-family:'Leelawadee UI Web','Kmer UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=tr],.ms-Fabric[lang^=tr],[lang^=tr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=uk],.ms-Fabric[lang^=uk],[lang^=uk] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=vi],.ms-Fabric[lang^=vi],[lang^=vi] .ms-Fabric{font-family:'Segoe UI Web (Vietnamese)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hans],.ms-Fabric[lang^=zh-hans],[lang^=zh-hans] .ms-Fabric{font-family:'Microsoft Yahei UI',Verdana,Simsun,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hant],.ms-Fabric[lang^=zh-hant],[lang^=zh-hant] .ms-Fabric{font-family:'Microsoft Jhenghei UI',Pmingliu,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric--selawik{font-family:'Selawik Web','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../css-loader/dist/cjs.js!./fabric.min.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n"],"names":["TimeConstants","MillisecondsInOneDay","MillisecondsIn1Sec","MillisecondsIn1Min","MillisecondsIn30Mins","MillisecondsIn1Hour","MinutesInOneDay","MinutesInOneHour","DaysInOneWeek","MonthInOneYear","HoursInOneDay","SecondsInOneMinute","OffsetTo24HourFormat","TimeFormatRegex","elementContains","parent","child","allowVirtualParents","isContained","nextParent","contains","findElementRecursive","element","matchFunction","document","body","getParent","isVirtualElement","_virtual","getVirtualParent","parentNode","portalContainsElement","target","elementMatch","testElement","hasAttribute","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","setAttribute","createComponent","view","options","_a","factoryOptions","defaultProp","ResultComponent","componentProps","displayName","context","fields","DefaultFields","settings","getSettings","customizations","stateReducer","state","theme","tokens","_resolveTokens","styles","props","allStyles","_i","arguments","length","apply","map","_resolveStyles","viewProps","_defaultStyles","name","create","statics","allTokens","allTokens_1","currentTokens","Array","isArray","withSlots","type","children","slotType","isSlot","toArray","createFactory","DefaultComponent","userProps","userSlotOptions","defaultStyles","flattenedUserProps","slotProps","transformedProps","_translateShorthand","finalProps","allProps","classNames","allProps_1","push","className","rtl","_constructFinalProps","component","UserComponent","render","defaultFactory","getSlots","slots","result","mixedProps","_loop_1","name_1","hasOwnProperty","slot","args","Error","ComponentType","slotOptions","undefined","_renderSlot","assign","extendStatics","d","b","Object","setPrototypeOf","__proto__","p","prototype","call","__assign","t","s","i","n","this","SuppressedError","focusZoneStyles","IS_FOCUSABLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","raiseClickFromKeyboardEvent","ev","event","MouseEvent","ctrlKey","metaKey","shiftKey","altKey","bubbles","cancelable","createEvent","initMouseEvent","window","dispatchEvent","_allInstances","_outerZones","Set","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","FocusZone","_super","_b","_c","_d","_this","_root","_mergedRef","createMergedRef","_onFocus","_portalContainsElement","newActiveElement","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","onFocus","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","_isImmediateDescendantOfZone","parentElement","current","maybeElementToFocus","focus","_activeElement","initialElementFocused","_setFocusAlignment","_updateTabIndexes","stopPropagation","_onBlur","_setParkedFocus","_onMouseDown","disabled","path","pop","_setActiveElement","_onKeyDown","direction","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","onKeyDown","isDefaultPrevented","_getDocument","activeElement","_isInnerZone","innerZone","_getFirstInnerZone","focusElement","firstChild","which","KeyCodes","space","_shouldRaiseClicksOnSpace","_tryInvokeClickForFocusable","left","vertical","_preventDefaultWhenHandled","_moveFocusLeft","right","_moveFocusRight","up","horizontal","_moveFocusUp","down","_moveFocusDown","pageDown","_moveFocusPaging","pageUp","tab","allowTabKey","handleTabKey","all","inputOnly","_isElementInput","focusChanged","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","home","_isContentEditableElement","_shouldInputLoseFocus","end","lastChild","enter","_shouldRaiseClicksOnEnter","preventDefault","_getHorizontalDistanceFromCenter","isForward","activeRect","targetRect","leftAlignment","_focusAlignment","x","targetRectTop","Math","floor","top","activeRectBottom","bottom","targetRectBottom","activeRectTop","width","abs","initializeComponentRef","_id","getId","shouldRaiseClicksFallback","shouldRaiseClicks","defaultProps","shouldRaiseClicksOnEnter","shouldRaiseClicksOnSpace","TypeError","String","__","constructor","__extends","getOuterZones","size","_onKeyDownCapture","forEach","zone","componentDidMount","root","nodeType","add","addEventListener","querySelector","defaultActiveElement","shouldFocusOnMount","componentDidUpdate","doc","_defaultFocusElement","preventFocusRestoration","_lastIndexPath","elementToFocus","componentWillUnmount","delete","removeEventListener","tag","as","elementType","rootProps","ariaDescribedBy","ariaLabelledBy","divProps","Tag","_evaluateFocusBeforeRender","css","mergeStyles","selectors","outline","ref","elementRef","onMouseDownCapture","forceIntoFirstElement","bypassHiddenElements","getAttribute","ownerZoneElement","_getOwnerZone","ownerZone","focusLast","forceAlignment","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","point","defineProperty","get","enumerable","configurable","focusedElement","shouldRestoreFocus","isParked","_isParked","allowFocusRoot","_parkedTabIndex","removeAttribute","previousActiveElement","tabIndex","preventDefaultWhenHandled","targetElement","tagName","rootElement","firstElementChild","match","nextElementSibling","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","bidirectional","getBoundingClientRect","elementDistance","isCircularNavigation","lastElementChild","targetTop","distance","shouldWrap","parseFloat","toFixed","scrollableParent","targetBottom","pagesize","clientHeight","isHorizontal","isVertical","rect","top_1","height","childNodes","childIndex","toLowerCase","indexOf","selectionStart","isRangeSelected","selectionEnd","inputValue","value","isReadonly","readOnly","shouldInputLoseFocusOnArrowKey","noWrapDataAttribute","checkForNoWrap","getDocument","FocusZoneDirection","FocusZoneTabbableElements","none","useAsync","asyncRef","dispose","useBoolean","initialState","setValue","setTrue","setFalse","toggle","currentValue","useConst","initialValue","useControllableValue","controlledValue","defaultUncontrolledValue","onChange","isControlled","valueRef","onChangeRef","setValueOrCallOnChange","update","newValue","useId","prefix","providedId","useMergedRefs","refs","mergedCallback","refs_1","to","from","pack","ar","l","slice","concat","__spreadArray","useOnEvent","eventName","callback","useCapture","callbackRef","actualElement","on","usePrevious","useRef","useEffect","useSetTimeout","timeoutIds","keys","id","clearTimeout","setTimeout","func","duration","useTarget","hostElement","previousTargetProp","targetRef","targetWindow","currentElement","currentDoc","useUnmount","unmountRef","WindowContext","useWindow","useDocument","DirectionalHint","topLeftEdge","topCenter","topRightEdge","topAutoEdge","bottomLeftEdge","bottomCenter","bottomRightEdge","bottomAutoEdge","leftTopEdge","leftCenter","leftBottomEdge","rightTopEdge","rightCenter","rightBottomEdge","SELECTION_BACKWARD","Autofill","_inputElement","_autoFillEnabled","_onCompositionStart","setState","isComposing","_onCompositionUpdate","_updateValue","_getCurrentInputValue","_onCompositionEnd","_tryEnableAutofill","_async","_onClick","nativeEvent","backspace","prev","suggestedDisplayValue","enableAutofillOnKeyPress","_onInputChanged","nativeEventComposing","_onChanged","composing","onInputChange","onInputValueChange","defaultVisibleValue","getDerivedStateFromProps","updateValueInWillReceiveProps","updatedInputValue","inputElement","selectionDirection","Boolean","_getControlledValue","_","_1","cursor","shouldSelectFullInputValueInComponentDidUpdate","differenceIndex","preventValueSelection","_doesTextStartWith","shouldSelectFullRange","setSelectionRange","toLocaleLowerCase","start","dir","nativeProps","style","fontFamily","autoCapitalize","autoComplete","_getDisplayValue","onCompositionStart","onCompositionUpdate","onCompositionEnd","onInput","onClick","clear","getSnapshotBeforeUpdate","inel","oldValue","isComposed","displayValue","console","warn","toString","contextType","text","startWith","getClassNames","classNamesFunction","nullFunction","nonActionableItemProps","color","semanticColors","bodyText","BreadcrumbBase","_focusZone","_onReduceData","data","renderedItems","renderedOverflowItems","overflowIndex","movedItem","splice","_onGrowData","maxDisplayedItems","_onRenderBreadcrumb","ariaLabel","dividerAs","DividerType","Icon","onRenderItem","overflowAriaLabel","onRenderOverflowIcon","overflowButtonAs","contextualItems","item","isActionable","href","key","_onBreadcrumbClicked","bind","itemProps","lastItemIndex","hasOverflowItems","itemElements","index","finalOnRenderItem","_onRenderItem","onRender","composeRenderFunction","_classNames","listItem","chevron","iconName","iconProps","onRenderMenuIcon","OverflowButton","IconButton","overflow","overflowButton","role","menuProps","items","directionalHint","componentRef","focusZoneProps","list","isCurrentItem","onRenderContent","additionalProps","finalOnRenderContent","defaultOnRenderCrumbContent","onRenderItemContent","Link","itemLink","TooltipHost","content","overflowMode","Parent","tooltipHostProps","_validateProps","onReduceData","onGrowData","breadcrumbData","ResizeGroup","onRenderData","GlobalClassNames","SingleLineTextStyle","whiteSpace","textOverflow","MinimumScreenSelector","MediumScreenSelector","Breadcrumb","styled","_e","palette","fonts","itemBackgroundHoveredColor","menuItemBackgroundHovered","itemBackgroundPressedColor","menuItemBackgroundPressed","itemTextColor","neutralSecondary","itemTextFontWeight","regular","itemTextHoveredOrPressedColor","neutralPrimary","itemLastChildTextColor","itemLastChildTextFontWeight","semibold","chevronButtonColor","overflowButtonColor","lastChildItemStyles","fontWeight","itemStateSelectors","backgroundColor","textDecoration","commonItemStyles","padding","lineHeight","fontSize","medium","margin","display","alignItems","listStyleType","position","MsHighContrastAdjust","forcedColorAdjust","small","highContrastStyle","mediumPlus","neutralDark","scope","ActionButton","variantClassName","onRenderDescription","getStyles","customStyles","baseButtonStyles","actionButtonStyles","border","borderColor","rootHovered","themePrimary","iconHovered","rootPressed","black","rootExpanded","iconPressed","themeDarker","rootDisabled","neutralTertiary","rootChecked","iconChecked","flexContainer","justifyContent","icon","themeDarkAlt","iconDisabled","menuIcon","textContainer","flexGrow","ButtonGlobalClassNames","msButton","msButtonHasMenu","msButtonIcon","msButtonMenuIcon","msButtonLabel","msButtonDescription","msButtonScreenReaderText","msButtonFlexContainer","msButtonTextContainer","getBaseButtonClassNames","iconClassName","menuIconClassName","hasMenu","checked","expanded","isSplit","isExpanded","iconExpandedHovered","menuIconExpandedHovered","rootExpandedHovered","rootHasMenu","labelHovered","descriptionHovered","menuIconHovered","rootFocused","descriptionPressed","menuIconPressed","rootCheckedDisabled","rootCheckedHovered","rootCheckedPressed","iconExpanded","label","labelChecked","labelDisabled","menuIconChecked","menuIconDisabled","menuIconExpanded","description","descriptionChecked","descriptionDisabled","screenReaderText","ImageIcon","imageProps","altText","alt","hasName","title","imageNameProps","containerProps","image","Image","memoize","primaryDisabled","splitButtonMenuButton","splitButtonMenuButtonExpanded","splitButtonMenuButtonDisabled","splitButtonMenuButtonChecked","splitButtonMenuFocused","splitButtonContainer","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonMenuIcon","splitButtonMenuIconDisabled","splitButtonFlexContainer","divider","splitButtonDivider","splitButtonDividerDisabled","COMPONENT_NAME","BaseButton","_buttonElement","_splitButtonContainer","_renderedVisibleMenu","_getMemoizedMenuButtonKeytipProps","keytipProps","_onRenderIcon","buttonProps","defaultRender","rest","FontIcon","_onRenderTextContents","secondaryText","onRenderText","_onRenderText","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","ariaDescription","_ariaDescriptionId","_onRenderMenuIcon","menuIconProps","_onRenderMenu","MenuType","menuAs","composeComponentAs","ContextualMenu","_onDismissMenu","onDismiss","defaultPrevented","_dismissMenu","_menuShouldFocusOnMount","_menuShouldFocusOnContainer","menuHidden","_openMenu","shouldFocusOnContainer","_onToggleMenu","_onSplitContainerFocusCapture","container","_onSplitButtonPrimaryClick","singleTouchTarget","_processingTouch","_onMenuClick","_onMenuKeyDown","_onKeyUp","onKeyUp","_onKeyPress","onKeyPress","_onMouseUp","onMouseUp","onMouseDown","_onSplitButtonContainerKeyDown","click","isUp","isDown","_isValidMenuOpenKey","onMenuClick","setFocusVisibility","registeredProviders","forceUpdate","_onTouchStart","_isSplitButton","_handleTouchAndPointerEvent","pointerType","Async","_events","EventGroup","warnConditionallyRequiredProps","w","split","warnDeprecations","toggled","ariaHidden","allowDisabledFocus","isPrimaryButtonDisabled","renderAsAnchor","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","_onRenderSplitButtonContent","_onRenderContent","_onPointerDown","onPointerUp","prevProps","prevState","onAfterMenuDismiss","dismissMenu","openMenu","onRenderIcon","onRenderAriaDescription","onRenderChildren","onRenderMenu","Button","keytipAttributes","doNotLayer","_shouldRenderMenu","_getMenuProps","Content","KeytipData","persistMenu","renderPersistedMenuHiddenOnMount","labelElementId","hidden","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","SplitButton","onTouchStart","onFocusCapture","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","stopImmediatePropagation","_lastTouchTimeoutId","menuTriggerKeyCode","baseClassName","noOutline","iconStyle","textAlign","flexShrink","effects","buttonBorder","disabledBackground","disabledText","buttonHighContrastFocus","outlineColor","inset","borderRadius","roundedCorner2","boxSizing","userSelect","flexWrap","splitButtonDividerBaseStyles","standardStyles","buttonBackground","buttonBackgroundPressed","buttonBackgroundHovered","buttonBackgroundDisabled","buttonText","buttonTextHovered","buttonTextDisabled","buttonTextChecked","buttonTextCheckedHovered","white","neutralLight","neutralTertiaryAlt","neutralQuaternaryAlt","primaryStyles","_f","_g","_h","_j","primaryButtonBackground","primaryButtonText","primaryButtonBackgroundHovered","primaryButtonTextHovered","primaryButtonBackgroundPressed","primaryButtonTextPressed","primaryButtonTextDisabled","primaryButtonBackgroundDisabled","focusInset","focusColor","_k","_l","_m","_o","_p","baseSplitButtonStyles","commandButtonStyles","minWidth","neutralLighter","themeDark","disabledBodySubtext","borderTopRightRadius","borderBottomRightRadius","CommandBarButton","customizable","CommandButton","primary","splitButtonStyles","compoundButtonStyles","maxWidth","minHeight","flexDirection","flexBasis","standardCompoundTheme","primaryCompoundTheme","CompoundButton","defaultButtonStyles","DefaultButton","iconButtonStyles","link","PrimaryButton","pointerEvents","borderRight","borderRightWidth","borderLeftWidth","neutralSecondaryAlt","borderLeft","verticalAlign","marginLeft","marginTop","marginRight","marginBottom","Rectangle","equals","_createPositionData","targetEdge","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","maintainSize","difference","returnRect","_alignEdges","gap","_isEdgeInBounds","bounds","_getOutOfBoundsDegree","total","breakingEdges_1","pow","_alignOutOfBoundsEdges","outOfBoundsEdges","elementEstimate","bounding","preserveEdge","outOfBoundsEdges_1","edgeAttempt","elementRectangle","forcedInBounds","_centerEdgeToPoint","_estimatePosition","elementToPosition","positionData","coverTarget","estimatedElementPosition","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","_finalizeElementPosition","doNotFinalizeReturnEdge","forceWithinBounds","returnValue","_getRectangleFromElement","_isEdgeOnBounds","getClosestEdge","targetCenter","boundingCenter","_positionElementWithinBounds","directionalHintFixed","alignTargetEdge","directions","oobDegree","currentEstimate","currentEdge","currentAlignment","bestEdge","bestAlignment","currentOOBDegree","_flipToFit","fixedEdge","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_adjustFitWithinBounds","clientRect","_positionElementRelative","previousPositions","gapSpace","targetRectangle","clientX","clientY","rectOrPoint","y","outOfBounds_1","_getTargetRect","_getAlignmentData","directionalHintForRTL","positionInformation","_getPositionData","positionedElement","_positionCallout","callout","beakWidth","isBeakVisible","sqrt","_calculateActualBeakWidthInPixels","positionProps","elementPosition","positionedBeak","showBeak","innerWidth","innerHeight","finalizedBeakPosition","beakTargetPoint","elementBounds","beakPosition","_positionBeak","closestEdge","hideBeak","_finalizePositionData","ANIMATIONS","slideUpIn10","slideDownIn10","slideLeftIn10","slideRightIn10","OFF_SCREEN_STYLE","opacity","filter","ARIA_ROLE_ATTRIBUTES","DEFAULT_PROPS","preventDismissOnLostFocus","preventDismissOnScroll","preventDismissOnResize","minPagePadding","disableCaching","usePositions","calloutElement","getBounds","positions","setPositions","positionAttempts","previousTarget","async","finalHeight","calloutMaxHeight","onPositioned","timerId_1","requestAnimationFrame","prevElementPositions","newElementPosition","currentProps","dupeCalloutElement","cloneNode","maxHeight","visibility","appendChild","newPositions","_positionCard","positionCard","positionCallout","removeChild","comparePositions","cancelAnimationFrame","CalloutContentBase","propsWithoutDefaults","forwardedRef","getPropsWithDefaults","calloutWidth","calloutMaxWidth","calloutMinWidth","hideOverflow","onScroll","onLayerMounted","popupProps","setCalloutElement","calloutCallback","calloutEl","rootRef","targetWindowResized","setTargetWindowResized","cachedBounds","currentBounds","segments","getWindowSegments","segments_1","segment","_getBoundsFromTargetWindow","getBoundsFromTargetWindow","debounce","leading","useBounds","setMaxHeight","calculatedHeight","topBounds","bottomBounds","useMaxHeight","dismissOnTargetClick","shouldDismissOnWindowFocus","preventDismissOnEvent","isMouseDownOnPopup","mouseDownHandlers","positionsExists","dismissOnScroll","dismissOnClickOrScroll","dismissOnResize","dismissOnLostFocus","eventPaths","composedPath","isEventTargetOutsideCallout","dismissOnTargetWindowBlur","hasFocus","relatedTarget","disposablesPromise","Promise","resolve","disposables_1","documentElement","then","useDismissHandlers","mouseDownOnPopup","mouseUpOnPopup","isForcedInBounds","cssPositions","setInitialFocus","hasPositions","timerId_2","useAutoFocus","overflowYHidden","beakVisible","overflowStyle","overflowY","visibilityStyle","beak","getBeakPosition","beakCurtain","Popup","calloutMain","onRestoreFocus","previousProps","nextProps","shouldUpdateWhenHidden","beakPositionStyle","newElementPositions","oldPositionEdge","newPositionEdge","getBeakStyle","CalloutContent","zIndex","Layer","boxShadow","elevation16","borderWidth","borderStyle","menuBackground","transform","overflowX","Callout","layerProps","CheckBase","useFastIcons","IconComponent","circle","check","Check","CheckGlobalClassNames","checkHost","checkBoxHeight","isRTL","sharedCircleCheck","background","bodyBackground","CheckboxBase","required","inputProps","ariaPositionInSet","ariaSetSize","checkmarkIconProps","boxSide","mergedRootRefs","inputRef","defaultChecked","isChecked","setIsChecked","indeterminate","defaultIndeterminate","isIndeterminate","setIsIndeterminate","useFocusRects","reversed","isUsingCustomLabelRender","onRenderLabel","defaultLabelRenderer","checkboxProps","setNativeIndeterminate","setIndeterminate","checkBoxRef","useComponentRef","ariaChecked","mergedInputProps","input","htmlFor","checkbox","checkmark","MS_CHECKBOX_LABEL_SIZE","MS_CHECKBOX_TRANSITION_DURATION","MS_CHECKBOX_TRANSITION_TIMING","Checkbox","_q","_r","_s","_t","checkmarkFontColor","inputForegroundChecked","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","inputBackgroundChecked","checkboxBorderColorChecked","checkboxBorderColorDisabled","checkboxBorderHoveredColor","inputBorderHovered","checkboxBorderIndeterminateHoveredColor","inputBackgroundCheckedHovered","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","inputTextHovered","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","indeterminateDotStyles","transitionProperty","transitionDuration","transitionTimingFunction","outlineOffset","imageSize","ChoiceGroupOptionBase","itemKey","focused","imageSrc","hasIcon","hasImage","imageIsLarge","defaultOnRenderLabel","labelId","defaultOnRenderField","imageAlt","selectedImageSrc","field","innerField","imageWrapper","src","selectedImageWrapper","iconWrapper","labelWrapper","onRenderField","choiceFieldWrapper","evt","onBlur","choiceFieldTransitionDuration","choiceFieldTransitionTiming","getChoiceGroupFocusStyle","focusBorderColor","hasIconOrImage","getImageWrapperStyle","isSelectedImageWrapper","paddingBottom","ChoiceGroupOption","circleBorderColor","circleHoveredBorderColor","circleCheckedBorderColor","circleCheckedHoveredBorderColor","circleDisabledBorderColor","circleBackgroundColor","dotUncheckedHoveredColor","dotCheckedColor","dotCheckedHoveredColor","dotDisabledColor","labelHoverFocusColor","focusBorder","iconOrImageChoiceBorderUncheckedHoveredColor","iconOrImageChoiceBorderCheckedColor","iconOrImageChoiceBorderCheckedHoveredColor","iconOrImageChoiceBackgroundColor","fieldHoverOrFocusProperties","enabledFieldWithImageHoverOrFocusProperties","circleAreaProperties","dotAreaProperties","choiceFieldSize","radioButtonSpacing","paddingLeft","paddingTop","disabledBodyText","paddingRight","labelWrapperLineHeight","getOptionId","option","findOption","focusSelectedOption","keyChecked","focusProviders","optionToFocus","getElementById","ChoiceGroupBase","defaultSelectedKey","optionsContainIconOrImage","some","selectedKey","setKeyChecked","keyFocused","setKeyFocused","focusContext","checkedOption","onOptionChange","onRadioFocus","HTMLElement","dataset","isFocusTrapZoneBumper","focusFromFocusTrapZone","Label","ChoiceGroup","getFullColorString","h","v","r","hsv2rgb","g","rgb2hex","updateSV","hex","str","_rgbaOrHexString","a","ColorRectangleBase","_disposables","_isAdjustingSaturation","increment","_updateColor","clamp","_onMouseMove","_disposeListeners","newColor","_getNewColor","_onTouchMove","capture","passive","minSize","ariaValueFormat","valueText","replace","light","dark","thumb","oldColor","prevColor","rectSize","coords","touchEvent","touches","lastTouch","mouseEvent","sPercentage","vPercentage","round","ColorRectangle","elevation8","ColorSliderBase","maxValue","_maxValue","win","getWindow","currentPercentage","thumbColor","overlayStyle","isAlpha","minValue","_type","overlayColor","sliderOverlay","sliderThumb","hueStyle","join","alphaStyle","backgroundImage","ColorSlider","useAlphaBackground","updateA","updateT","allColorComponents","errorKeys","ColorPickerBase","_onSVChanged","_onHChanged","updateH","_onATChanged","updater","alphaType","editingColor","isHex","isTransparency","minLength","isNaN","Number","getColorFromString","substring","getColorFromRGBA","correctRGB","strings","hexLabel","redLabel","greenLabel","blueLabel","alphaLabel","alphaSliderHidden","hue","_getColorFromProps","_textChangeHandlers","allColorComponents_1","_onTextChange","defaultStrings","_textLabels","red","green","blue","alpha","transparency","_strings","alphaAriaLabel","transparencyAriaLabel","textLabels","tooltipProps","useTransparency","colorComponents","atValue","atLabel","selectedColorAriaParts","rootAriaLabelFormat","panel","svAriaLabel","svAriaDescription","svAriaValueFormat","colorRectangle","flexSlider","hueAriaLabel","showPreview","flexPreviewBox","colorSquare","table","cellPadding","cellSpacing","tableHeader","tableHexCell","tableAlphaCell","comp","tooltipContent","_getTooltipValue","TextField","spellCheck","invalid","errorKey","substr","test","hexError","alphaError","transparencyError","redError","greenError","blueError","ColorPicker","tableLayout","td","SearchDirection","HoverStatus","getDisabledStyles","listOptionHighContrastStyles","inputHighContrastStyles","getOptionStyles","customStylesForAllOptions","customOptionStylesForCurrentOption","isPending","isHidden","isSelected","textHoveredColor","menuItemTextHovered","textSelectedColor","textDisabledColor","backgroundHoveredColor","backgroundPressedColor","optionStyles","wordWrap","overflowWrap","isFocusedOnly","optionText","optionTextWrapper","getCaretDownButtonStyles","caret","buttonTextColor","bodySubtext","buttonTextHoveredCheckedColor","buttonBackgroundHoveredColor","listItemBackgroundHovered","buttonBackgroundCheckedColor","listItemBackgroundChecked","buttonBackgroundCheckedHoveredColor","listItemBackgroundCheckedHovered","buttonHighContrastStyles","comboBoxOptionWidth","textColor","inputText","inputBorder","borderHoveredColor","borderPressedColor","inputFocusBorderAlt","borderFocusedColor","inputBackground","erroredColor","errorText","headerTextColor","menuHeader","dividerBorderColor","bodyDivider","placeholderHighContrastStyles","placeholderStyles","inputPlaceholderText","placeholderStylesHovered","disabledPlaceholderStyles","ComboBoxRootHighContrastFocused","focusBorderStyles","rootError","rootDisallowFreeForm","font","inputDisabled","errorMessage","optionsContainerWrapper","optionsContainer","header","isOpen","allowFreeForm","hasErrorMessage","getComboBoxOptionClassNames","ComboBoxOptionWrapper","oldProps","newProps","allowFreeform","buttonIconProps","ComboBox","mergedRootRef","getSelectedIndices","selectedKeys","buildSelectedKeys","buildDefaultSelectedKeys","selectedIndices","setSelectedIndices","currentOptions","setCurrentOptions","setSuggestedDisplayValue","indices","useOptionsState","ComboBoxInternal","hoisted","findFirstDescendant","allowVirtualChildren","getChildren","candidate","_autofill","_comboBoxWrapper","_comboBoxMenu","_selectedElement","_overrideScrollDismiss","shouldOpenOnFocus","useFocusAsync","_hasFocus","focusState","_onUpdateValueInAutofillWillReceiveProps","comboBox","normalizeToString","_currentVisibleValue","_renderComboBoxWrapper","multiselectAccessibleText","errorMessageId","isButtonAriaHidden","placeholderProp","placeholder","autofill","iconButtonProps","ariaActiveDescendantValue","multiSelect","labelProps","trim","_onInputKeyDown","_onInputKeyUp","_onAutofillClick","_onInputChange","_getAriaAutoCompleteValue","_onShouldSelectFullInputValueInAutofillComponentDidUpdate","_getCaretButtonStyles","_onComboBoxClick","_getVisibleValue","allowFreeInput","currentPendingValueValidIndex","currentPendingValue","currentPendingIndexValid","indexWithinBounds","_getPendingString","_getMultiselectDisplayString","_getFirstSelectedIndex","getPreviewText","updatedValue","_handleInputWhenDisabled","_processInputChangeWithFreeform","_processInputChangeWithoutFreeform","select","_onResolveOptions","onResolveOptions","newOptions_1","_currentPromise","newOptionsFromPromise","isBlurFromComboBoxTitle","isBlurFromComboBoxMenu","isBlurFromComboBoxMenuAncestor","_submitPendingValue","_onRenderContainer","onRenderList","calloutProps","dropdownWidth","dropdownMaxWidth","onRenderUpperContent","_onRenderUpperContent","onRenderLowerContent","_onRenderLowerContent","useComboBoxAsMenuWidth","comboBoxMenuWidth","clientWidth","_onLayerMounted","_onDismiss","_onCalloutMouseDown","_onScroll","_preventDismissOnScrollOrResize","_onRenderList","_onCalloutLayerMounted","_scrollIntoView","_onRenderLabel","onRenderLabelProps","queue","renderedList","emptyQueue","newGroup","itemType","Header","id_1","Divider","placeRenderedOptionIntoQueue","_renderSeparator","_renderHeader","_renderOption","onRenderOption","_onRenderOptionContent","_isOptionSelected","_isOptionChecked","_isOptionIndeterminate","_getCurrentOptionStyles","optionClassNames","_onItemClick","_renderCheckboxLabel","onMouseEnter","_onOptionMouseEnter","onMouseMove","_onOptionMouseMove","onMouseLeave","_onOptionMouseLeave","_isScrollIdle","_scrollIdleTimeoutId","_onRenderMultiselectOptionContent","onMenuDismiss","_setOpenStateAndFocusOnClose","_resetSelectedIndex","_onAfterClearPendingInfo","_processingClearPendingInfo","currentPendingValueValidIndexOnHover","_lastKeyDownWasAltOrMeta","isAltOrMeta","_getPendingSelectedIndex","escape","clearAll","_setPendingInfoFromIndexAndDirection","backward","forward","directionToSearch","keyCode","keyPressIsAltOrMetaAlone","shouldHandleKey","openOnKeyboardFocus","_shouldIgnoreMouseEvent","warnMutuallyExclusive","_gotMouseMove","default","onMenuOpen","onMenuDismissed","_focusInputAfterClose","_notifyPendingValueChanged","_overrideScrollDimissTimeout","newCurrentPendingValueValidIndex","_updateAutocompleteIndexWithoutFreeform","descendantText","onRenderContainer","comboBoxWrapper","displayValues","idx","SelectAll","multiSelectDelimiter","isNormalOption","_setPendingInfo","originalUpdatedValue","newSuggestedDisplayValue","_autoCompleteTimeout","matchingIndex","_setPendingInfoFromIndex","_getNextSelectableIndex","searchDirection","newIndex","max","min","isSelectableOption","_setSelectedIndex","submitPendingValueEvent","onPendingValueChanged","initialIndices","changedOptions","selected","currentOption","selectAllOption","o","selectAllState","_isSelectAllChecked","selectAllIndex_1","persist","_hasPendingValue","_clearPendingInfo","pendingOptionText","isValueSelected","newOption","newOptions","_isOptionHighlighted","testIndices","find","selectAllIndex","compareSelectedIndices","selectableOptions","includeCurrentPendingValue","onScrollToItem","scrollSelectedToTop","currentPendingSelectedIndex","scrollToElement","offsetParent","alignToTop","offsetHeight","offsetTop","parentOffsetHeight","scrollTop","isBelow","scrollTo","scrollIntoView","onItemClick","selectedIndex","indexUpdate","newPendingIndex","newPendingValue","focusInputAfterClose","customCaretDownButtonStyles","caretDownButtonStyles","comboBoxOptionStyles","customStylesForCurrentOption","_isPendingOption","selectedKeys_1","sort","useAriaLabelAsText","getCommandButtonStyles","rootStyles","labelStyles","restCustomStyles","CommandBarBase","_overflowSet","_resizeGroup","_onRenderData","primaryGroupAriaLabel","farItemsGroupAriaLabel","hasSecondSet","farItems","OverflowSet","primarySet","primaryItems","overflowItems","onRenderOverflowButton","_onRenderOverflowButton","secondarySet","itemText","commandButtonProps","buttonStyles","iconOnly","subMenuProps","_onButtonClick","setAriaDescribedBy","_commandButton","ButtonAs","buttonAs","CommandBarButtonAs","commandBarButtonAs","Type","overflowButtonProps","combinedOverflowItems","overflowProps","OverflowButtonType","shiftOnReduce","onDataReduced","cacheKey","renderedInOverflow","newData","_computeCacheKey","onDataGrown","minimumOverflowItems","dataDidRender","resizeGroupAs","ResizeGroupAs","commandBarData","overflowSet","remeasure","inactive","returnKey","acc","reduce","CommandBar","getIsChecked","canCheck","hasSubmenu","isItemDisabled","isDisabled","getMenuItemAriaRole","defaultIconRenderer","renderItemIcon","hasIcons","renderCheckMarkIcon","onCheckmarkClick","isItemChecked","checkmarkIcon","e","renderItemName","renderSecondaryText","renderSubMenuIcon","submenuIconProps","subMenuIcon","ContextualMenuItemBase","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissAll","renderContent","_renderLayout","linkContentMenu","linkContent","defaultRenders","getDividerClassNames","wrapper","CONTEXTUAL_MENU_ITEM_HEIGHT","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","bodyTextChecked","anchorLink","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","large","iconColor","CONTEXTUAL_SPLIT_MENU_MINWIDTH","getSplitButtonVerticalDividerClassNames","splitMenu","getItemClassNames","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","splitPrimary","splitContainer","getItemStyles","ContextualMenuItem","ContextualMenuItemWrapper","_onItemMouseEnter","onItemMouseEnter","currentTarget","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubmenuTarget","shouldComponentUpdate","ContextualMenuAnchor","_anchor","_renderAriaDescription","focusableElementIndex","totalItemCount","hasCheckmarks","expandedMenuItemKey","ChildrenRenderer","contextualMenuItemAs","anchorRel","rel","itemHasSubmenu","ariaDescribedByIds","additionalItemProperties","ContextualMenuSplitButton","_executeItemClick","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","_dismissLabelId","splitButton","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","itemComponentProps","VerticalDivider","onItemMouseDown","onTap","ContextualMenuButton","_btn","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","MenuContext","getContextualMenuItemClassNames","getItemCount","items_1","customOnRenderListLength","getSubmenuItems","overrideItems","items_2","subItem","preferMenuTargetAsEventTarget","contextItem","getOnClickWithOverrideTarget","_getMenuItemStylesFunction","styleProps","useSubMenuState","dismiss","menuTarget","setExpandedMenuItemKey","setSubmenuTarget","setShouldFocusOnContainer","subMenuId","closeSubMenu","focusContainer","submenuItemKey","onSubMenuDismiss","isMountedRef","useOnSubmenuDismiss","findItemByKeyFromItems","submenuProps","isSubMenu","ContextualMenuBase","asyncTracker","menuId","tryFocusPreviousActiveElement","documentContainsFocus","useIsomorphicLayoutEffect","originalElement","containsFocus","newElement","usePreviousActiveElement","getSubmenuProps","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","useShouldUpdateFocusOnMouseMove","isScrollIdle","scrollIdleTimeoutId","useScrollHandler","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","onTimerExpired","useSubmenuEnterTimer","startSubmenuTimer","subMenuEntryTimer","responsiveMode","useResponsiveMode","onMenuOpened","previousHidden","onMenuOpenedRef","onMenuClosedRef","propsRef","useVisibility","contextMenuStyle","focusZoneDirection","lastKeyDownWasAltOrMeta","keyHandler","dismissAllMenus","handled","shouldHandleKeyDown","submenuCloseKey","shouldCloseSubMenu","shouldHandleKeyUp","hasModifier","openKey","useKeyHandlers","onMenuKeyDown","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","overrideTarget","shouldDismiss","setActive","useMouseHandlers","onItemMouseEnterBase","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","onDefaultRenderMenuList","menuListProps","menuClassNames","indexCorrection","menuItem","renderMenuItem","indexIncrease","itemClassNames","subMenuIconClassName","itemStyleProps","subComponentStyles","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","Section","renderSectionItem","defaultRenderNormalItem","renderNormalItem","onRenderContextualMenuItem","sectionItem","sectionProps","groupProps","headerContextualMenuItem","ariaLabelledby","id_2","correctedIndex_1","topDivider","contextualMenuItem","itemsIndex","bottomDivider","fromSection","commonProps","ContextualMenuAnchorAs","contextualMenuItemWrapperAs","ContextualMenuSplitButtonAs","ContextualMenuButtonAs","divHtmlProperties","useTargetWidth","useTargetAsMinWidth","onRenderSubMenu","onDefaultRenderSubMenu","onRenderMenuList","getMenuClassNames","itemsHaveIcons","contextualMenuItems","contextualMenuItems_1","adjustedFocusZoneProps","submenuItem","canAnyMenuItemsCheck","targetAsHtmlElement","offsetWidth","targetWidth","totalItemCount_1","calloutStyles_1","Consumer","menuContext","focusZoneAs","renderFocusZone","defaultMenuItemRenderer","items_3","Event","Element","isopen","LocalContextualMenu","ContextualMenuItemType","DayOfWeek","MonthOfYear","FirstWeekOfYear","DateRangeType","DEFAULT_DATE_FORMATTING","formatDay","date","getDate","formatMonth","months","getMonth","formatYear","getFullYear","formatMonthDayYear","formatMonthYear","DEFAULT_CALENDAR_STRINGS","shortMonths","days","shortDays","goToToday","weekNumberFormatString","prevMonthAriaLabel","nextMonthAriaLabel","prevYearAriaLabel","nextYearAriaLabel","prevYearRangeAriaLabel","nextYearRangeAriaLabel","closeButtonAriaLabel","selectedDateFormatString","todayDateFormatString","monthPickerHeaderAriaLabel","yearPickerHeaderAriaLabel","dayMarkedAriaLabel","addDays","Date","getTime","setDate","addWeeks","weeks","addMonths","newMonth","setMonth","addYears","years","setFullYear","getMonthStart","getMonthEnd","month","compareDates","date1","date2","compareDatePart","getDatePartHashValue","getDateRangeArray","dateRangeType","firstDayOfWeek","workWeekDays","daysToSelectInDayView","startDate","datesArray","endDate","Monday","Tuesday","Wednesday","Thursday","Friday","Day","getDatePart","Week","WorkWeek","daysOffset","getDay","getStartDateOfWeek","Month","nextDate","isInDateRangeArray","dateRange","dateRange_1","getWeekNumber","firstWeekOfYear","FirstFullWeek","getWeekOfYearFullDays","FirstFourDayWeek","num","getDayOfYear","num3","getFirstDayWeekOfYear","numberOfFullDays","dayOfYear","daysInYear","December","num2","year","daysUntilDate","daysInMonth","getBoundedDateRange","minDate","maxDate","boundedDateRange","isBeforeMinDate","isAfterMaxDate","isRestrictedDate","restrictedDates","rd","CalendarMonthHeaderRow","showWeekNumbers","allFocusable","weeksToShow","dayLabels","firstOfMonthIndex","day","originalDate","dayCell","val","weekDayLabelCell","findAvailableDate","targetDate","initialDate","restrictedDateOptions","getOwnPropertySymbols","propertyIsEnumerable","__rest","availableDate","CalendarGridDayCell","navigatedDate","dateTimeFormatter","activeDescendantId","navigatedDayRef","calculateRoundedStyles","dayIndex","weekIndex","weekCorners","customDayCellRef","onSelectDate","onNavigateDate","getDayInfosInRangeOfDay","getRefsFromDayInfos","cornerStyle","isNavigatedDate","isMarked","daySelected","isInBounds","dayOutsideBounds","isInMonth","dayOutsideNavigatedMonth","setRef","onSelected","onMouseOver","dayInfos","dayRefs","dayRef","classList","remove","bottomLeftCornerDate","bottomRightCornerDate","topLeftCornerDate","topRightCornerDate","classNamesToAdd","onMouseOut","findAvailableDateOptions","week","dayToCompare","navigateMonthEdge","isToday","dayButton","dayIsToday","dayMarker","CalendarGridRow","rowClassName","ariaRole","weekNumbers","weeksInMonth","selectedYear","selectedMonth","dayOfMonth","fistDayOfMonth","endOfFirstWeek","dateWeekDay","Sunday","adjustWeekDay","endOfWeekRange","weeksArray","getWeekNumbersInMonth","titleString","weekNumberCell","useWeeks","getSetRefCallback","weeksGrid","selectedDate","today","markedDays","todaysDate","isAllDaysOfWeekOutOfMonth","selectedDateRangeType","isSingleWeek","daySet","amountOfNoNeighbors","days_1","nextDay","has","isContiguous","getDateRangeTypeToUse","selectedDates","shouldGetWeeks","dayInfo","markedDay","getDayGrid","firstVisibleDay","lastVisibleDay","getMarkedDays","CalendarDayGridBase","daysRef","dayKey","useDayRefs","restrictedDatesOptions","animateBackwards","previousNavigatedDate","useAnimateBackwards","above","below","roundedTopRight","roundedBottomLeft","roundedBottomRight","isInSameHoverRange","date1Selected","date2Selected","initialWeeks","weekCornersStyled","datesAbove","datesBelow","datesRight","datesLeft","calculateBorderStyles","useWeekCornerStyles","getWeekCornerStyles","labelledBy","lightenDaysOutsideNavigatedMonth","animationDirection","partialWeekProps","dateRangeHoverType","sortedWWDays","accumulatedValue","currentWeek","weekDay","dayInfosInRange","firstTransitionWeek","weekRow","lastTransitionWeek","AnimationDirection","hoverStyle","pressedStyle","dayIsTodayStyle","daySelectedStyle","transitionRowDisappearance","CalendarDayGrid","rowAnimationStyle","Horizontal","slideRightIn20","slideLeftIn20","slideDownIn20","slideUpIn20","firstTransitionRowAnimationStyle","lastTransitionRowAnimationStyle","animationName","slideUpOut20","slideDownOut20","disabledStyle","borderCollapse","borderSpacing","fadeIn200","neutralLighterAlt","span","borderTopLeftRadius","borderBottomLeftRadius","borderTop","borderBottom","CalendarDayBase","dayGrid","onHeaderSelect","showSixWeeksByDefault","monthAndYearId","headerIsClickable","monthAndYear","HeaderButtonComponentType","headerAriaLabel","onButtonKeyDown","CalendarDayNavigationButtons","navigationIcons","showCloseButton","onSelectNextMonth","onSelectPrevMonth","leftNavigationIcon","leftNavigation","rightNavigationIcon","rightNavigation","closeNavigationIcon","closeIcon","prevMonthInBounds","nextMonthInBounds","monthComponents","headerIconButton","CalendarDay","alignSelf","hasHeaderClickCallback","highlightCurrent","highlightSelected","animationStyle","headerAnimationStyle","headerContainer","currentItemButton","navigationButtonsContainer","navigationButton","gridContainer","buttonRow","itemButton","themeLight","defaultCalendarStrings","defaultCalendarNavigationIcons","DefaultCalendarYearStrings","prevRangeAriaLabel","nextRangeAriaLabel","CalendarYearGridCell","highlightCurrentYear","highlightSelectedYear","onSelectYear","onRenderYear","buttonRef","CalendarYearNavDirection","CalendarYearGrid","fromYear","toYear","minYear","maxYear","selectedCellRef","currentCellRef","yearToRender","gridAriaLabel","cells","j","cellRow","CalendarYearNavArrow","onSelectPrev","onSelectNext","Previous","newRangeOffset","ariaLabelString","onNavigate","isLeftNavigation","Next","CalendarYearNav","CalendarYearTitle","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","CalendarYearHeader","onRenderTitle","CalendarYearBase","navigatedYear","rangeYear","previousFromYear","setFromYear","useYearRangeState","onNavNext","onNavPrevious","gridRef","CalendarYear","yearPickerHidden","CalendarMonthBase","navigatedMonthRef","calendarYearRef","focusOnUpdate","useFocusLogic","focusOnNextUpdate","isYearPickerVisible","setIsYearPickerVisible","currentYear","previousYear","highlightCurrentMonth","highlightSelectedMonth","selectMonthCallback","onSelectMonth","onSelectNextYear","onSelectPrevYear","dateFormatter","isPrevYearInBounds","isNextYearInBounds","yearToString","yearFormattingDate","yearRangeToString","yearRange","getYearStrings","yearStrings","newNavigationDate","rowIndexes","yearString","rowNum","monthsForRow","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isCurrentMonth","CalendarMonth","defaultWorkWeekDays","isMonthPickerVisible","isDayPickerVisible","showMonthPickerAsOverlay","showGoToToday","FirstDay","CalendarBase","setSelectedDate","navigatedDay","setNavigatedDay","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","selectedDateRangeArray","useDateState","onDateSelected","navigateDay","navigateMonth","getShowMonthPickerAsOverlay","setIsMonthPickerVisible","setIsDayPickerVisible","useVisibilityState","toggleDayMonthPickerVisibility","dayPicker","monthPicker","renderGoToTodayButton","goTodayEnabled","classes","goTodayButton","onGotoToday","calendarDayProps","calendarMonthProps","monthPickerOnly","overlaidWithButton","overlayedWithButton","todayDateString","selectedDateString","dateStringFormatter","selectionAndTodayString","liveRegion","focusOnNavigatedDay","monthPickerWrapper","Calendar","totalWidth","defaultDatePickerStrings","isRequiredErrorMessage","invalidInputErrorMessage","isResetStatusMessage","allowTextInput","formatDate","toDateString","parseDateFromString","dateStr","parse","initialPickerDate","isRequired","borderless","pickerAriaLabel","underlined","DatePickerBase","calendarProps","textFieldProps","textField","calendarAs","CalendarType","disableAutoFocus","calloutId","calendar","datePickerDiv","textFieldRef","preventFocusOpeningPicker","preventNextFocusOpeningPicker","isCalendarShown","setIsCalendarShown","isMounted","useCalendarVisibility","setSelectedDateState","formattedDate","setFormattedDate","newDate","useSelectedDate","setErrorMessage","statusMessage","setStatusMessage","isFirstLoadRef","validateOnLoad","isDateOutOfBounds","isOutOfBoundsErrorMessage","selectedText","statusText","useErrorMessage","validateTextInput","showDatePickerPopup","reset","dismissDatePickerPopup","newlySelectedDate","calendarDismissed","isDatePickerShown","textFieldId","handleEscKey","openOnClick","onRenderInput","readOnlyTextFieldClassName","readOnlyTextField","readOnlyPlaceholder","shouldFocus","FocusTrapZone","isClickableOutsideFocusTrap","disableFirstFocus","withLabel","withoutLabel","DatePicker","DatePickerIcon","TEXTFIELD_HEIGHT","CollapseAllVisibility","defaultOnRenderHeader","column","isIconOnly","accessibleLabel","DetailsColumnBase","_tooltipRef","_onRenderFilterIcon","columnProps","_onRenderColumnHeaderTooltip","hostClassName","_onColumnClick","onColumnClick","columnActionsMode","_onColumnBlur","_onColumnFocus","show","_onDragStart","itemIndex","selectedItems","_updateHeaderDragInfo","borderWhileDragging","noBorderWhileDragging","_onDragEnd","setDraggedItemIndex","updateDragInfo","_onColumnContextMenu","onColumnContextMenu","_onRootMouseDown","isDraggable","button","parentId","cellStyleProps","onRenderColumnHeaderTooltip","headerClassName","isEmpty","isIconVisible","isSorted","isGrouped","isFiltered","isPadded","transitionDurationDrag","transitionDurationDrop","onRenderFilterIcon","onRenderHeader","hasInnerButton","shouldAssociateTooltip","_hasAccessibleDescription","accNameDescription","isSortedDescending","draggable","calculatedWidth","cellLeftPadding","cellRightPadding","cellExtraRightPadding","gripperBarVerticalStyle","cellTooltip","cellTitle","onContextMenu","hasDropdown","isMenuOpen","cellName","nearIcon","showSortIconWhenUnsorted","sortIcon","filterChevron","_renderAccessibleDescription","dragDropHelper","_addDragDropHandling","isDropped","borderAfterDropping","noBorderAfterDropping","TRANSITION_DURATION_DROP","_dragDropSubscription","off","_getColumnDragDropOptions","columnIndex","selectionIndex","canDrag","canDrop","onDragStart","updateDropState","onDrop","onDragEnd","filterAriaLabel","sortAscendingAriaLabel","sortDescendingAriaLabel","groupAriaLabel","sortableAriaLabel","subscribe","cellIsCheck","collapseButton","isCollapsed","isAllSelected","isSelectAllHidden","isResizingColumn","cellSizer","isResizing","dropHintCircleStyle","dropHintLineStyle","DetailsColumn","colors","iconForegroundColor","headerForegroundColor","headerBackgroundColor","dropdownChevronForegroundColor","resizerColor","nearIconStyle","borderAfterDragOrDrop","listHeaderBackgroundHovered","listHeaderBackgroundPressed","alignContent","flex","transition","NO_COLUMNS","DetailsHeaderBase","_rootElement","_rootComponent","_draggedColumnIndex","_dropHintDetails","_updateDroppingState","_resetDropHints","_onDragOver","_computeDropHintToBeShown","_onDrop","columnReorderProps","_getColumnReorderProps","targetIndex","_currentDropHintIndex","isValidDrop","_isValidCurrentDropHintIndex","_onDropIndexInfo","sourceIndex","onColumnDrop","dragDropDetails","draggedIndex","handleColumnReorder","_computeColumnIndexOffset","showCheckbox","offset","groupNestingDepth","_updateDragInfo","_isCheckboxColumnHidden","_getDropHintPositions","onColumnDragStart","onColumnDragEnd","columnDragEndLocation","_isEventOnHeader","dropLocation","prevRef","columns","prevX","prevMid","frozenColumnCountFromStart","frozenColumnCountFromEnd","dropHintElement","querySelectorAll","offsetLeft","newMid","originX","startX","endX","dropHintElementRef","isRtl","eventXRelativePosition","currentDropHintIndex","_liesBetween","currentIndex","lastValidColumn","indexToUpdate","_isBefore","_isAfter","startIndex","endIndex","middleIndex","ceil","_updateDropHintElement","_renderColumnSizer","columnResizeDetails","isResizable","_stopPropagation","_onSizerBlur","cellSizerStart","cellSizerEnd","cellIsResizing","onDoubleClick","_onSizerDoubleClick","_onSelectAllClicked","selection","toggleAllSelected","columnIndexAttr","columnMinWidth","_onRootMouseMove","isSizing","_onRootKeyDown","onColumnResized","_onSizerMouseMove","buttons","onColumnIsSizingChanged","movement","_onSizerMouseUp","_onToggleCollapseAll","onToggleCollapseAll","newCollapsed","isAllCollapsed","_dragDropHelper","DragDropHelper","getSelection","minimumPixelsForDrag","_onSelectionChanged","_subscriptionObject","_getHeaderDragDropOptions","previousColumns","ariaLabelForToggleAllGroupsButton","ariaLabelForSelectAllCheckbox","selectAllVisibility","ariaLabelForSelectionColumn","indentWidth","selectionMode","onRenderDetailsCheckbox","checkboxVisibility","isCheckboxHidden","isCheckboxAlwaysVisible","always","hasGroupExpander","showGroupExpander","collapseAllVisibility","visible","columnIndexOffset","checkTooltip","DetailsRowCheck","D","multiple","isHeader","anySelected","canSelect","isVisible","cellIsGroupExpander","GroupSpacer","count","_isDraggable","_renderDropHint","_renderColumnDivider","sizingOverlay","columnReorderOptions","onDragOver","displayProperty","onRenderDivider","dropHintIndex","dropHintStyle","dropHintCaretStyle","onColumnAutoResized","DetailsHeader","tooltipHost","cell","gripperBarVertical","HEADER_HEIGHT","getCellStyles","getDetailsHeaderStyles","cellSizerFadeInStyles","cellStyles","cellWrapperPadded","cellIsActionable","cellIsEmpty","transformOrigin","SelectAllVisibility","withViewport","ComposedComponent","WithViewportComponent","_registerResizeObserver","_viewportResizeObserver","ResizeObserver","_onAsyncResize","observe","_unregisterResizeObserver","disconnect","_updateViewport","withForceUpdate","viewport","viewportElement","scrollElement","scrollRect","getRect","_resizeAttempts","_composedComponentInstance","delayFirstMeasure","disableResizeObserver","skipViewportMeasures","_isResizeObserverAvailable","previousSkipViewportMeasures","newViewport","_updateComposedComponentRef","BaseDecorator","MIN_COLUMN_WIDTH","rowFocusZoneAddTabIndexProps","rowFocusZoneNoTabIndexProps","DetailsListInner","ariaLabelForListHeader","compact","constrainMode","dragDropEvents","groups","isPlaceholderData","isHeaderVisible","layoutMode","onItemInvoked","onItemContextMenu","onColumnHeaderClick","onColumnHeaderContextMenu","mode","selectionPreservedOnEmptyClick","selectionZoneProps","ariaLabelForGrid","rowElementEventMap","shouldApplyApplicationRole","getKey","listProps","usePageCache","onShouldVirtualize","getGroupHeight","onRenderCheckbox","adjustedColumns","isSomeGroupExpanded","version","listRef","focusZoneRef","groupedListRef","headerRef","onGroupExpandStateChanged","onRowDidMount","onRowWillUnmount","disableSelectionZone","isSelectedOnFocus","onToggleCollapse","onActiveRowChanged","eventsToRegister","onRenderMissingItem","onRenderItemColumn","getCellValueKey","getRowAriaLabel","getRowAriaDescribedBy","checkButtonAriaLabel","checkButtonGroupAriaLabel","checkboxCellClassName","useReducedRowRenderer","enableUpdateAnimations","enterModalSelectionOnTouch","onRenderDefaultRow","selectionZoneRef","rowId","level","groupsInLevel","getGroupNestingDepth","groupedDetailsListIndexMap","indexMap","rowCount","numGroupHeaders","groups_1","group","numOfGroupHeadersBeforeItem","totalRowCount","useGroupedDetailsListIndexMap","additionalListProps","renderedWindowsAhead","renderedWindowsBehind","single","isCollapsedGroupSelectVisible","headerProps","defaultOnRenderDetailsHeader","detailsHeaderProps","defaultOnRenderDetailsFooter","propsOnRenderDetailsHeader","onRenderDetailsHeader","propsOnRenderDetailsFooter","onRenderDetailsFooter","detailsFooterProps","columnReorderOnDragEnd","finalDropLocation","outside","surface","remainingGroups","currentGroup","GetGroupCount","colCount","isFixed","fixedColumns","isHorizontalConstrained","horizontalConstrained","onRenderDetailsGroupFooter","onRenderFooter","finalOnRenderDetailsGroupFooter","groupFooterProps","onRenderDetailsGroupHeader","finalOnRenderDetailsGroupHeader","groupHeaderProps","groupIndex","groupKey","ariaColSpan","ariaLevel","ariaPosInSet","ariaRowCount","ariaRowIndex","finalGroupProps","selectAllButtonProps","sumColumnWidths","rowWidth","onRenderCell","nestingDepth","finalOnRenderRow","onRenderRow","rowRole","rowFocusZoneProps","rowProps","flatIndexOffset","onDidMount","onWillUnmount","isGridRow","onRenderListCell","isRightArrow","focusZoneInnerProps","focusZone","FinalGroupedList","groupedListAs","GroupedList","List","onHeaderKeyDown","setIndexSelected","onContentKeyDown","headerWrapper","contentWrapper","SelectionZone","selectionClearedOnEscapePress","toggleWithoutModifierPressed","enterModalOnTouch","DetailsListBase","_header","_groupedList","_list","_selectionZone","_onRenderRow","DetailsRow","_getDerivedStateFromProps","previousState","setKey","_selection","isAllGroupsCollapsed","newViewportWidth","oldViewportWidth","shouldResetSelection","shouldForceUpdates","nextState","_initialFocusedIndex","initialFocusedIndex","focusedItemIndex","setItems","_adjustColumns","_onGroupExpandStateChanged","_onColumnIsSizingChanged","_onRowDidMount","row","_getItemKey","_activeRows","_setFocusToRowIfPending","_onRowWillUnmount","_onToggleCollapse","collapsed","toggleCollapseAll","_onColumnResized","resizingColumn","newWidth","resizingColumnIndex","newCalculatedWidth","onColumnResize","_rememberCalculatedWidth","_onColumnAutoResized","totalCount","measureCell","_onActiveRowChanged","el","onActiveItemChanged","_columnOverrides","lastWidth","_getAdjustedColumns","Selection","onSelectionChanged","scrollToIndex","measureItem","scrollToMode","focusIndex","_setFocusToRow","getStartItemIndexInView","updateColumn","newColumnIndex","findIndex","col","isCheckboxColumnHidden","_notifyColumnsResized","onDidUpdate","_forceListUpdates","_getGroupNestingDepth","ignoreNextFocus","currentWidth","viewportWidth","newItems","newColumns","lastSelectionMode","canResizeColumns","sortedColumnKey","groupedColumnKey","isMultiline","firstItem","propName","fieldName","isCollapsible","buildColumns","isRowHeader","clickable","_getFixedColumns","_getJustifiedColumns","_getColumnOverride","flexMargin","remainingWidth","sumProportionalWidth","getPaddedWidth","rowCheckWidth","groupExpandWidth","widthFraction","newColumn","fullWidth","shrinkWidth","MAX_VALUE","minimumWidth","availableWidth","baseColumn","isCollapsable","lastIndex","overflowWidth","originalWidth","isLast","overrides","spaceLeft","justified","onHover","paddingOnly","listCell","DetailsList","listText","wordBreak","WebkitOverflowScrolling","ColumnActionsMode","ConstrainMode","ColumnDragEndLocation","DetailsListLayoutMode","CheckboxVisibility","DetailsRowFields","rowClassNames","propsOnRenderField","cellsByColumn","rowHeaderId","cellValueKeysRef","cellValueKeys","fieldProps","cellValueKey","fieldItem","fieldItemIndex","cellPadded","cellUnpadded","getValueKey","defaultOnRender","previousValueKey","showAnimation","cellAnimation","getCellText","DetailsRowBase","_cellMeasurer","selectionState","getSelectionState","isDropping","onDragEnter","_droppingClassNames","onDragLeave","columnMeasureInfo","_getRowDragDropOptions","_onDidMountCalled","onMeasureDone","newSelectionState","onRenderCheck","_onRenderCheck","getRowAriaDescription","rowFieldsAs","isSelectionModal","droppingClassName","ariaRowDescription","canSelectItem","isContentUnselectable","ariaSelected","_rowClassNames","RowFields","rowFields","columnStartIndex","_ariaRowDescriptionId","hasRowHeader","groupedListRowProps","checkCell","cellMeasurer","eventMap","isIndexSelected","isModal","DetailsRowGlobalClassNames","cellCheck","listCellFirstChild","isCheckVisible","DEFAULT_CELL_STYLE_PROPS","DEFAULT_ROW_HEIGHTS","rowHeight","compactRowHeight","values","rowVerticalPadding","compactRowVerticalPadding","getDetailsRowStyles","focusedLinkColor","linkHovered","defaultHeaderText","defaultMetaText","defaultBackground","defaultHoverHeaderText","defaultHoverMetaText","defaultHoverBackground","selectedHeaderText","selectedMetaText","selectedBackground","selectedHoverHeaderText","selectedHoverMetaText","selectedHoverBackground","focusHeaderText","focusMetaText","focusBackground","focusHoverBackground","selectedStyles","cannotSelectStyles","rootCompactStyles","cellCompactStyles","defaultCellStyles","fadeIn400","slideLeftIn40","nativeElementMap","audio","video","ol","li","textarea","tr","th","colGroup","form","iframe","img","FastCheck","_defaultCheckboxRender","_fastDefaultCheckboxRender","checkClassName","defaultCheckboxRender","detailsCheckboxProps","excludedPropNames","allowedPropNames","getNativeElementProps","checkRole","CHECK_CELL_WIDTH","getDetailsRowCheckStyles","ShimmerElementType","ShimmerElementsDefaultHeights","shimmerWrapper","shimmerGradient","dataWrapper","BACKGROUND_OFF_SCREEN_POSITION","shimmerAnimation","shimmerAnimationRTL","topLeftCorner","topRightCorner","bottomLeftCorner","bottomRightCorner","ShimmerLine","globalClassNames","borderStyles","sharedCornerStyles","fill","borderTopStyle","borderBottomStyle","ShimmerGap","svg","ShimmerCircle","viewBox","getElementStyles","elementHeight","dif","borderBottomWidth","borderTopWidth","line","ShimmerElementsGroup","shimmerElements","next","findMaxElementHeight","renderedElements","filteredElem","getRenderedElements","ShimmerBase","customElementsGroup","shimmerColors","isDataLoaded","improveCSSPerformance","transitionAnimationInterval","shimmerColor","shimmer","shimmerWaveColor","shimmerWave","internalState","lastTimeoutId","contentLoaded","setContentLoaded","divStyleProp","DelayedRender","Shimmer","animationDuration","animationTimingFunction","animationIterationCount","ShimmeredDetailsListBase","_onRenderShimmerPlaceholder","onRenderCustomPlaceholder","placeholderElements","_renderDefaultShimmerPlaceholder","gapHeight","shimmerElementsRow","columnIdx","groupWidth","_shimmerItems","shimmerLines","detailsListStyles","enableShimmer","removeFadingOverlay","ariaLabelForShimmer","restProps","listClassName","newListProps","ShimmeredDetailsList","whiteTranslucent40","DefaultModalProps","isDarkOverlay","isBlocking","containerClassName","topOffsetFixed","enableAriaHiddenSiblings","DefaultDialogContentProps","normal","topButtonsProps","DialogBase","_getSubTextId","ariaDescribedById","modalProps","dialogContentProps","subText","subtitleAriaId","_defaultSubTextId","_getTitleTextId","ariaLabelledById","titleAriaId","_defaultTitleTextId","dialogDraggableClassName","dragOptions","contentClassName","elementToFocusOnDismiss","firstFocusableSelector","forceFocusInsideTrap","disableRestoreFocus","ignoreExternalFocusing","onDismissed","onLayerDidMount","mergedLayerProps","dragHandleSelector","mergedModalProps","draggableHeaderClassName","titleProps","titleId","dialogDefaultMinWidth","dialogDefaultMaxWidth","Modal","main","DialogContent","subTextId","withResponsiveMode","Dialog","DialogFooterType","DialogFooter","DialogContentBase","subTextContent","isLargeHeader","largeHeader","isClose","close","groupings","_groupChildren","topButton","uniqueId","inner","innerContent","contents","footers","contentLgHeader","headerLg","xLarge","xxLarge","DialogType","DialogFooterBase","actions","actionsRight","_renderChildrenAsActions","action","VerticalDividerBase","deprecatedGetClassNames","names","DocumentCardContext","DocumentCardBase","_onAction","onClickHref","onClickTarget","open","location","accentColor","actionable","borderBottomColor","documentCardContextValue","Provider","DocumentCardPreviewGlobalClassNames","rootActionable","rootCompact","DocumentCard","WebkitFontSmoothing","DocumentCardType","DocumentCardActivityBase","activity","people","multiplePeople","_renderAvatars","details","_getNameString","avatars","_renderAvatar","person","avatar","PersonaCoin","imageInitials","initials","imageUrl","profileImageSrc","initialsColor","allowPhoneInitials","size32","nameString","DocumentCardActivity","DocumentCardActivityGlobalClassNames","HORIZONTAL_PADDING","DocumentCardDetailsBase","DocumentCardDetails","DocumentCardImageBase","_onImageLoad","imageHasLoaded","imageFit","onLoad","_renderCornerIcon","_renderCenterIcon","centeredIconWrapper","centeredIcon","cornerIcon","centeredIconSize","cornerIconSize","DocumentCardImage","DocumentCardLocationBase","locationHref","DocumentCardLocation","DocumentCardLocationGlobalClassNames","DocumentCardTitleBase","_titleElement","_truncateTitle","_needMeasurement","_truncateWhenInAnimation","originalTitle","getComputedStyle","scrollWidth","_clientWidth","lines","parseInt","overFlowRate","truncatedLength","truncatedTitleFirstPiece","truncatedTitleSecondPiece","_shrinkTitle","titleElement","scrollHeight","shouldTruncate","_updateTruncation","showAsSecondaryTitle","_timerId","DocumentCardTitle","DocumentCardTitleGlobalClassNames","DropdownSizePosCache","_size","updateOptions","displayOnlyOptionsCache","notSelectableOptionsCache","_displayOnlyOptionsCache","_notSelectableOptionsCache","_cachedOptions","positionInSet","DropdownBase","selectedKeyPropToUse","defaultSelectedKeys","oldOptions","didOptionsChange","oldSelectedKeyProp","getSelectedIndex","searchKey","selectedKeyPropToUse_1","getSelectedIndexes","useSelectedItemsState","DropdownInternal","activeTimeouts","_host","_dropDown","_scrollIdleDelay","_sizePosCache","_requestAnimationFrame","cb","extendComponent","timeoutId","_onChange","onChanged","changedOpt","_getPlaceholder","placeHolder","_getTitle","_unused","_onRenderTitle","_onRenderPlaceholder","panelProps","isSmall","focusTrapZoneProps","firstFocusableTarget","_listId","panelStyles","Panel","hasCloseButton","isLightDismiss","_renderFocusableList","_onPositioned","_onRenderCaretDown","caretDown","_onRenderOption","isItemSelected","dropdownItemHidden","dropdownItemSelectedAndDisabled","dropdownItemSelected","dropdownItemDisabled","dropdownItem","multiSelectItemStyles","multiSelectItem","_onMouseItemLeave","_onRenderItemLabel","optionSetSize","dropdownOptionText","_onRenderMultiselectOption","_hasBeenPositioned","calloutRenderEdge","setSelectedIndex","_onDropdownBlur","_isDisabled","_onDropdownKeyDown","_isAltOrMeta","containsExpandCollapseModifier","_moveIndex","_onDropdownKeyUp","_shouldHandleKeyUp","_onZoneKeyDown","document_1","_onZoneKeyUp","_onDropdownClick","_shouldOpenOnFocus","_isFocusedByClick","_onDropdownMouseDown","_optionId","propStyles","onRenderCaretDown","onRenderPlaceholder","onRenderPlaceHolder","cachedOptions","selectedOptions","hasError","hasLabel","isRenderingPlaceholder","panelClassName","calloutClassName","dropdown","caretDownWrapper","notifyOnReselect","newIndexes","_copyArray","array","newArray","array_1","stepValue","stepCounter","dropdownItemsWrapper","dropdownItems","separatorClassName","dropdownDividerHidden","dropdownDivider","dropdownItemHeaderHidden","dropdownItemHeader","titleIsPlaceHolder","titleHasError","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","Dropdown","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","menuItemText","borderColorError","dropdownItemStyle","dropdownHeaderStyle","selectedItemBackgroundColor","itemSelectors","titleOpenBorderRadius","calloutOpenBorderRadius","DROPDOWN_HEIGHT","contentInner","customButtonStyles","FacepileButton","FacepileBase","_getPersonaControl","persona","getPersonaProps","personaSize","Persona","personaName","_getPersonaCoinControl","chevronButtonProps","maxDisplayablePersonas","personas","overflowPersonas","showAddButton","showTooltip","numPersonasToShow","hasOverflowPersonas","personasPrimary","personasOverflow","itemContainer","_getAddNewElement","members","_onRenderVisiblePersonas","_getOverflowElement","screenReaderOnly","singlePersona","onRenderPersona","onRenderPersonaCoin","onRenderPersonaWrapper","personaControl","defaultPersonaRender","_getElementWithOnClickEvent","_getElementWithoutOnClickEvent","member","_getElementProps","_onPersonaClick","_onPersonaMouseMove","_onPersonaMouseOut","overflowButtonType","descriptive","_getDescriptiveOverflowElement","downArrow","_getIconElement","more","personaNames","numPersonasNotPictured","descriptiveOverflowButton","onRenderInitials","_renderInitialsNotPictured","transparent","_renderInitials","addButtonProps","addButton","overflowInitialsIcon","Facepile","spacingAroundItemButton","ItemButtonStyles","useEventCallback","fn","firstBumper","lastBumper","isFirstRender","focusStackId","focusPreviouslyFocusedInnerElement","bumperProps","focusElementAsync","focusFTZ","previouslyFocusedElementInTrapZone","firstFocusableChild","focusSelector","focusBumper","isFirstBumper","nextFocusable","returnFocusToInitiator","focusStack","forceFocusOrClickInTrap","disposables","modalize","previouslyFocusedElement","onBlurCapture","dropIcon","expand","iconTag","beziers","GroupHeaderBase","_toggleCollapse","isGroupLoading","newLoadingVisible","isLoadingVisible","onGroupHeaderKeyUp","shouldOpen","_onToggleClick","_onHeaderClick","onGroupHeaderClick","onRenderName","_onRenderName","headerCount","hasMoreData","groupLevel","loadingText","onRenderGroupHeaderCheckbox","expandButtonProps","expandButtonIcon","canSelectGroup","isSelectionCheckVisible","currentlySelected","groupHeaderContainer","expandIsCollapsed","Spinner","GroupHeader","finalRowHeight","checkExpandResetStyles","listBackground","actionLinkHovered","durationValue4","durationValue1","transitionDelay","durationValue3","neutralQuaternary","durationValue2","SPACER_WIDTH","GroupShowAll","showAllLinkText","onToggleSummarize","memoizedOnClick","useCallback","GroupFooter","footerText","GroupedListSection","_subGroupRefs","_droppingClassName","_onRenderGroupHeader","_onRenderGroupShowAll","_onRenderGroupFooter","_renderSubGroup","subGroup","subGroupIndex","getGroupItemLimit","showAllProps","footerProps","onRenderGroupHeader","onRenderGroupShowAll","onRenderGroupFooter","showEmptyGroups","_getGroupKey","_getGroupDragDropOptions","isGroup","newIsDropping","_onSelectionChange","groupedListClassNames","renderCount","Infinity","isShowAllVisible","isShowingAll","hasNestedGroups","dividerProps","ariaControlsProps","groupedListId","groupShowAllProps","canDragGroups","_getDroppingClassName","getItemCountForPage","_returnOne","_onRenderGroup","forceListUpdate","subGroupCount","pageRefs","_onRenderGroupCell","groupIsDropping","ROW_HEIGHT","COMPACT_ROW_HEIGHT","GroupedListBase","_renderGroup","onToggleSelectGroup","_onToggleSelectGroup","_onToggleSummarize","finalListProps","onRenderShowAll","_getDefaultGroupItemLimit","_getGroupItemLimit","_getGroupHeight","_getPageHeight","pageGroup","_updateIsSomeGroupExpanded","toggleRangeSelected","_isInnerZoneKeystroke","_getPageSpecification","_isSomeGroupExpanded","_computeIsSomeGroupExpanded","listVersion","_setGroupsCollapsedState","rootListProps","getPageHeight","getPageSpecification","allCollapsed","newIsSomeGroupExpanded","getIconContent","subset","code","fontFace","mergeImageProps","iconContent","accessibleName","finalChildren","IconType","cacheSize","IconBase","_onImageLoadingStateChange","onLoadingStateChange","error","imageLoadError","imageErrorAs","isPlaceholder","isImage","iconType","iconContentChildren","RootType","ImageType","finalIconContentChildren","MS_ICON","imageContainer","SVG_REGEX","ImageBase","frameElement","imageElement","onError","notLoaded","loadState","setLoadState","naturalWidth","naturalHeight","complete","loaded","onImageLoaded","onImageError","useLoadState","shouldFadeIn","shouldStartVisible","maximizeFrame","loading","coverStyle","previousLoadState","cover","contain","centerContain","centerCover","desiredRatio","landscape","portrait","computeCoverStyle","useCoverStyle","isLoaded","isLandscape","isCenter","center","isCenterContain","isCenterCover","isContain","isCover","isNone","isError","isNotImageFit","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","ImageFitStyles","supportsObjectFit","navigator","msMaxTouchPoints","fallbackObjectFitStyles","objectFit","ImageFit","ImageCoverStyle","ImageLoadState","sequencesToID","keySequences","prevValue","keySequence","keytipManager","KeytipManager","K","getInstance","prevOptions","register","unregister","nativeKeytipProps","keytipId","describedByPrepend","newKeytipProps","addParentOverflow","describedby","getAriaDescribedBy","overflowSetSequence","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","mergeOverflows","getKeytipData","useKeytipData","LabelBase","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","PortalCompatContext","portalCompatContextDefaultValue","FocusRectsProvider","providerRef","layerRoot","parentContext","inheritParentContext","registerProvider","unregisterProvider","mergeSettings","oldSettings","newSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","Customizer","_onCustomizationChange","Customizations","unobserve","contextTransform","CustomizerContext","newContext","scopedSettingsFromProps","scopedSettings","oldScopedSettings","newScopedSettings","scopeName","inCustomizerContext","mergeCustomizations","getFabricTheme","createTheme","FabricBase","applyTheme","applyThemeToBody","bodyThemed","currentDoc_1","useApplyThemeToBody","Root","contextDir","pageDir","componentDir","rootDir","needsTheme","getDir","renderedContent","useRenderedContent","filteredEventProps","inheritFont","Fabric","preventBlanketFontInheritance","_layersByHostId","_layerHostsById","defaultHostId","_defaultHostSelector","LayerBase","_React_useContext","registerPortalEl","mergedRef","layerRef","fabricElementRef","needRaiseLayerMount","setNeedRaiseLayerMount","focusRectsRef","isFocusVisible","eventBubblingEnabled","fabricProps","hostId","insertFirst","onLayerWillUnmount","fabricRef","isNotHost","removeLayerElement","elem","createLayerElement","host","layerHost","layerHosts","getLayerHost","defaultHostSelector","createElement","cssText","createDefaultLayerHost","getHost","ownerDocument","virtualChild","virtualParent","oldParent","setVirtualParent","insertBefore","layerHosts_1","notifyLayersChanged","registerLayer","unregisterPortalEl","layers","layerHosts_2","unregisterLayer","onFilterEvent","eventPhase","BUBBLING_PHASE","rootNoHost","adjustPropsForRootType","underline","LinkBase","isButton","isUnderlined","rootType","useLink","linkColor","linkInteractedColor","linkDisabledColor","getScrollYPosition","scrollPos","scrollY","setScrollYPosition","pos","scrollX","SPACER_KEY_PREFIX","EMPTY_RECT","_measurePageRect","_measureSurfaceRect","_measureScrollRect","_surface","_pageRefs","hasMounted","renderEarly","canUseDOM","_resetRequiredWindows","_requiredRect","_measureVersion","_invalidatePageCache","_updatePages","_onRenderRoot","surfaceElement","_onRenderSurface","surfaceRef","pageElements","_onRenderPage","pageProps","onRenderCellConditional","page","cellRole","renderCell","ignoreScrollingState","isScrolling","pages","_estimatedPageHeight","_totalEstimates","_requiredWindowsAhead","_requiredWindowsBehind","_onAsyncScroll","maxWait","_onAsyncIdle","_onScrollingDone","_cachedPageHeights","_focusedIndex","_pageCache","_getRenderCount","allowedRect","_allowedRect","itemsPerPage","pageSpecification","pageHeight","itemCount","_scrollElement","scrollPosition","scrollWindow","itemPositionWithinPage","itemIndexInPage","scrollBottom","pages_1","isSpacer","_scrollTop","totalRowHeight","finalState","pagesVersion","_updatePageMeasurements","_materializedRect","_hasCompletedFirstRender","onPagesUpdated","newState","oldPages","newPages","oldPage","newPage","_updateRenderRects","getTotalListHeight","_surfaceRect","onRenderSurface","onRenderRoot","pages_2","_renderPage","finalOnRenderSurface","_shouldVirtualize","cachedPage","pageElement","pageStyle","_getPageStyle","onRenderPage","newRef","getPageStyle","indexString","innerRect","outerRect","requiredWindowsAhead","requiredWindowsBehind","windowsAhead","windowsBehind","newListState","_buildPages","oldListPages","_notifyPageChanges","onPageAdded","onPageRemoved","renderedIndexes","oldPages_1","newPages_1","_onPageAdded","_onPageRemoved","heightChanged","_measurePage","hasChangedHeight","cachedHeight","measureVersion","newClientRect","materializedRect","pageTop","currentSpacer","focusedIndex","shouldVirtualize","this_1","pageData","newRect","pageBottom","isPageRendered","isPageInAllowedRange","isPageInRequiredRange","itemsInPage","_createPage","_visibleRect","visibleRect","_getItemCountForPage","visibileRect","pageKey","surfaceRect","getScrollHeight","_scrollHeight","visibleTop","_expandRect","pagesBefore","pagesAfter","SCROLL_GUTTER","AutoScroll","_scrollableParent","_incrementScroll","_scrollRect","_stopScroll","_computeScrollVelocity","clientDirection","scrollClient","scrollRectTop","scrollRectLeft","scrollClientBottom","scrollClientRight","_isVerticalScroll","_scrollVelocity","_startScroll","_timeoutId","scrollLeft","MarqueeSelectionBase","isEnabled","onShouldStartSelection","_isMouseEventOnScrollbar","_isInSelectionToggle","_isTouch","_isDragStartInSelection","_scrollableSurface","_selectedIndicies","_preservedIndicies","_onAsyncMouseMove","_autoScroll","_scrollLeft","_rootRect","dragRect","hitTarget","isDraggingConstrainedToRoot","dragMask","box","boxFill","targetScrollbarWidth","targetScrollbarHeight","_getRootRect","_lastMouseEvent","rootRect","currentPoint","_dragOrigin","setAllSelected","constrainedPoint","_evaluateSelection","_itemRectCache","_isPointInRectangle","rectangle","getSelectedCount","allElements","itemRect","previousSelectedIndices","_allSelectedIndices","needToUpdate","setChangeEvents","rootTagName","MarqueeSelection","ICON_MAP","info","warning","blocked","severeWarning","success","getAnnouncementPriority","messageBarType","getRole","MessageBarBase","expandSingleLine","toggleExpandSingleLine","overflowButtonAriaLabel","dismissIconProps","truncated","dismissButtonAriaLabel","messageBarIconProps","delayedRender","expandIconProps","regionProps","actionsDiv","dismissButton","dismissal","iconContainer","innerText","dismissSingleLine","multiline","singleline","dismissalSingleLine","expandingSingleLine","actionsSingleline","highContrastBorderColor","highContrastWhiteBorderColor","MessageBar","SmallScreenSelector","dismissalAndExpandIconStyle","xSmall","messageText","dismissalAndExpandStyle","messageLink","messageLinkHovered","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","MessageBarType","scrollableContent","layer","isDragging","touchAction","eventMapping","move","stop","DraggableZone","_currentEventType","only","_onDragStop","_onTouchEnd","onTouchEnd","handleSelector","_matchesSelector","preventDragSelector","_touchId","_getTouchId","_getControlPosition","dragData","_createDragDataFromPosition","onStart","lastPosition","_onDrag","updatedData","_createUpdatedDragData","updatedPosition","onDragChange","baseDragData","onStop","statePosition","touchObj","_getActiveTouch","eventToGetOffset","targetTouches","_findTouchInTouchList","changedTouches","touch","identifier","selector","matchesSelectorFn","matches","webkitMatchesSelector","msMatchesSelector","touchList","delta","ZERO","ModalBase","allowTouchBodyScroll","scrollableContentClassName","isAlert","overlay","isModeless","focusTrapZone","focusTrapZoneRef","focusTrapZoneElm","modalResponsiveMode","focusTrapZoneId","isModalOpen","setIsModalOpen","setIsVisible","coordinates","setCoordinates","modalRectangleTop","setModalRectangleTop","isModalMenuOpen","toggleModalMenuOpen","setModalMenuClose","onModalCloseTimer","lastSetCoordinates","events","keepInBounds","isAlertRole","layerClassName","hasBeenOpened","windowInnerHeight","isDefaultDragHandle","allowScrollOnModal","elt","registerInitialModalPosition","dialogMain","modalRectangle","minPosition","maxPosition","getClampedAxis","axis","handleModalClose","isInKeyboardMoveMode","disposeOnKeyUp","handleDragStart","handleDrag","handleDragStop","handleKeyUp","modalContent","disposeOnKeyDown","keyboardMoveIconContainer","keyboardMoveIconProps","keyboardMoveIcon","menu","moveMenuItemText","handleKeyDown","newLocal","handledEvent","delta_1","getMoveDelta","closeMenuItemText","Overlay","isDarkThemed","elevation64","xLargePlus","_urlResolver","linkText","compositeLink","chevronButton","chevronIcon","navItem","navItems","groupContent","NavBase","_onRenderLink","_renderGroupHeader","_isGroupExpanded","onHeaderClick","isCollapsing","_onGroupHeaderClicked","_renderLinks","links","expandButtonAriaLabel","collapseAriaLabel","expandAriaLabel","isGroupCollapsed","isLinkExpandStateChanged","initialSelectedKey","isOnTop","groupElements","_renderNavLink","linkIndex","nestingLevel","url","isLinkWithIcon","isSelectedLink","_isLinkSelected","ariaCurrent","isButtonEntry","forceAnchor","leftPadding","LinkAs","linkAs","onRenderLink","_onNavButtonLinkClicked","_onNavAnchorLinkClicked","_renderCompositeLink","isLink","finalExpandBtnAriaLabel","_onLinkExpandClicked","_renderLink","linkElements","_toggleCollapsed","onLinkExpandClick","_preventBounce","onLinkClick","protocol","pathname","hash","collapseByDefault","newGroupCollapsed","Nav","navHeight","leftPaddingExpanded","rightPadding","slideRightIn40","bodyBackgroundHovered","bodyBackgroundChecked","registerPersistedKeytips","keytipsToRegister","registeredPersistedKeytips","keytipsToRegister_1","keytip","unregisterPersistedKeytips","uniqueID","keytipSequences","itemSubMenuProvider","persistedKeytips","getSubMenuForItem","newKeytipsToRegister","newOverflowItems","overflowItem","persistedKeytip","hasDynamicChildren","onExecute","menuExecute","hasOverflowSubMenu","newOverflowItem","modifiedOverflowItems","prevPersistedKeytips","useKeytipRegistrations","OverflowSetBase","divContainer","_forceIntoFirstElement","focusSucceeded","childElement","overflowSide","showOverflow","overflowItemStyle","OverlayBase","_allowTouchBodyScroll","isDark","rootDark","blackTranslucent40","PanelVisibilityState","PanelBase","_panel","_animationCallback","_hasCustomNavigation","onRenderNavigation","onRenderNavigationContent","isActive","_allowScrollOnPanel","_scrollableContent","_onRenderNavigation","_onRenderNavigationContent","navigation","_onRenderHeader","closeButton","_headerTextId","_onPanelClick","headerTextId","headerText","headerTextProps","_onRenderBody","_onRenderFooter","onRenderFooterContent","footer","footerInner","_animateTo","newVisibilityState","onOpen","_onTransitionComplete","_clearExistingAnimationTimer","_updateFooterPosition","onOpened","closed","isFooterSticky","animatingClosed","animatingOpen","_shouldListenForOuterClick","_dismissOnOuterClick","shouldListenOnOuterClick","previousShouldListenOnOuterClick","isFooterAtBottom","isHiddenOnDismiss","overlayProps","customWidth","onLightDismissClick","onRenderBody","isLeft","smallFixedNear","customNear","isOnRightSide","customWidthStyles","custom","isAnimating","focusTrapZoneClassName","hasCustomNavigation","hiddenPanel","commands","innerHeight_1","onOuterClick","smallFixedFar","smallFluid","largeFixed","extraLarge","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","getPanelBreakpoints","sharedPaddingStyles","isCustomPanel","fadeIn100","fadeOut100","variantBorder","slideLeftOut40","slideRightOut40","hyphens","easeFunction2","borderTopColor","PanelType","size48","presence","showOverflowTooltip","PersonaBase","getText","primaryText","renderElement","elementClassNames","renderFunction","defaultRenderFunction","tooltip","onInternalRenderPrimaryText","onInternalRenderSecondaryText","onInternalRenderTertiaryText","tertiaryText","onInternalRenderOptionalText","optionalText","hidePersonaDetails","onRenderOptionalText","onRenderPrimaryText","onRenderSecondaryText","onRenderTertiaryText","providedCoinProps","coinProps","showUnknownPersonaCoin","coinSize","imageShouldFadeIn","imageShouldStartVisible","initialsTextColor","isOutOfOffice","onPhotoLoadingStateChange","onRenderCoin","presenceTitle","presenceColors","showInitialsUntilImageLoads","showSecondaryText","personaCoinProps","personaDetails","size8","size10","tiny","size16","size24","size28","size40","size56","size72","size100","size120","available","away","busy","doNotDisturb","offline","textContent","showSecondaryTextDefaultHeight","sharedTextStyles","isSize8","isSize10","isSize16","isSize24","isSize28","isSize32","isSize40","isSize48","isSize56","isSize72","isSize100","isSize120","isAvailable","isAway","isBlocked","isBusy","isDoNotDisturb","isOffline","PersonaSize","PersonaPresence","PersonaInitialsColor","PersonaPresenceBase","renderIcon","presenceHeightWidth","presenceMaxSize","coinSizeWithPresenceIconStyle","presenceFontMaxSize","coinSizeWithPresenceStyle","presenceIcon","determineIcon","oofIcon","makeOpenCircleIconStyle","makeBeforeBorderStyle","borderSize","makeSizeStyle","presenceColorAvailable","presenceColorAway","presenceColorBusy","presenceColorDnd","dnd","presenceColorOffline","presenceColorOof","oof","presenceColorBackground","isOpenCirclePresence","size12","backgroundClip","size6","size20","COLOR_SWATCHES_LOOKUP","lightBlue","darkBlue","teal","darkGreen","lightPink","pink","magenta","purple","orange","lightRed","darkRed","violet","gold","burgundy","warmGray","cyan","rust","coolGray","COLOR_SWATCHES_NUM_ENTRIES","getPersonaInitialsColor","personaInitialsColor","lightGreen","gray","personaInitialsColorToHexCode","hashCode","iLen","ch","charCodeAt","shift","getInitialsColorFromName","getInitialsStyles","PersonaCoinBase","imageLoadState","setImageLoadstate","useImageLoadState","renderCoin","getCoinRenderer","renderPersonaCoinInitials","divCoinProps","coinSizeStyle","hideImage","personaPresenceProps","shouldRenderInitials","coin","imageArea","size10WithoutPresenceIcon","dimension","perspective","superLarge","personaPresenceSize","sizeBoolean","extraExtraSmall","extraSmall","sizeToPixels","presenceBoolean","online","useRefEffect","initial","refCallback","cleanup","getLinkItems","pivotId","keyToIndexMapping","keyToTabIdMapping","isPivotItem","pivotItemProps","getTabId","PivotItem","PivotBase","overflowMenuButtonComponentRef","setSelectedKey","linkSize","linkFormat","overflowBehavior","nameProps","linkCollection","renderLinkContent","itemIcon","renderPivotLink","renderLinkCollection","renderPivotLinkSelectedKey","headerButtonProps","onRenderItemLink","tabId","contentString","itemSemantics","linkIsSelected","updateSelectedItem","renderedSelectedKey","renderedSelectedIndex","overflowMenuProps","overflowMenuButtonRef","onOverflowItemsChanged","pinnedIndex","updateOverflowRef","containerWidthRef","containerRef","cleanupObserver","onResize","observer_1","onResizeWrapper_1","win_1","animationFrameId_1","observeResize","entries","contentRect","menuButtonRef","menuButton","minContainerWidth","extraWidth","containerWidth","itemOffsetEnd","setOverflowIndex","prevOverflowIndex","ele","isOverflowing","useOverflow","elements","linkInMenu","overflowMenuButton","alwaysRender","headersOnly","selectedTabId","renderPivotItem","rootIsLarge","rootIsTabs","getLinkStyles","isLinkInOverflowMenu","actionLink","bold","Pivot","defaultFocusRestorer","shouldHideSiblings","useHideSiblingNodes","originalFocusedElement","useRestoreFocus","needsVerticalScrollBar","needsVerticalScrollBarState","setNeedsVerticalScrollBar","rootHeight","firstChildHeight","useScrollbarAsync","ResizeGroupDirection","getNextResizeGroupStateProvider","measurementCache","measurementsCache","getCachedMeasurement","addMeasurementToCache","measurement","_containerDimension","_measurementCache","_getMeasuredDimension","measuredData","getElementToMeasureDimension","cachedDimension","measuredDimension","_shrinkContentsUntilTheyFit","dataToMeasure","nextMeasuredData","renderedData","resizeDirection","getNextState","currentState","newContainerDimension","newDimension","fullDimensionData","measureContainer","_updateContainerDimension","_growDataUntilItDoesNotFit","shouldRenderDataForMeasurement","getInitialResizeGroupState","MeasuredContext","isMeasured","hiddenDivStyles","hiddenParentStyles","resizeDataReducer","measuredContextValue","ResizeGroupBase","nextResizeGroupStateProvider","initialHiddenDiv","updateHiddenDiv","hasRenderedContent","initialStateData","resizeData","dispatchResizeDataAction","stateRef","useResizeState","updateResizeState","containerDimension","refToMeasure","measuredBoundingRect","dataNeedsMeasuring","isInitialMeasure","useResizingBehavior","contentContainer","ScrollablePaneBase","_stickyAboveRef","_stickyBelowRef","_contentContainer","handler","_subscribers","unsubscribe","addSticky","sticky","_stickies","setDistanceFromTop","sortSticky","removeSticky","_removeStickyFromContainers","notifySubscribers","sortAgain","stickyAbove","stickyBelow","canStickyTop","stickyContentTop","_addToStickyContainer","canStickyBottom","stickyContentBottom","updateStickyRefHeights","stickyItems","stickyTopHeight","stickyBottomHeight","isStickyTop","isStickyBottom","nonStickyContent","_checkStickyStatus","handle","getScrollPosition","syncScrollSticky","syncScroll","_getScrollablePaneContext","scrollablePane","stickyContainer","stickyContentToAdd","stickyChildrenElements_1","stickyList_1","stickyItem","targetStickyToAppendBefore","stickyListSorted_1","distanceFromTop","stickyContent","stickyListItem","targetContainer","_onWindowResize","scrollbarWidth","_getScrollbarWidth","scrollbarHeight","_getScrollbarHeight","_getStickyContainerStyle","isTop","_notifyThrottled","throttle","initialScrollPosition","setStickiesDistanceFromTop","_mutationObserver","MutationObserver","mutation","mutationRecord","stickyList_2","childList","attributes","subtree","characterData","scrollContainerFocus","scrollContainerAriaLabel","scrollbarVisibility","scrollContainerProps","S","stickyBelowItems","forceLayoutUpdate","resetSticky","ScrollablePane","AboveAndBelowStyles","positioningStyle","ScrollbarVisibility","auto","ScrollablePaneContext","defaultClearButtonProps","SearchBoxBase","defaultValue","labelText","clearButtonProps","disableAnimation","showIcon","customOnClear","onClear","customOnBlur","customOnEscape","onEscape","customOnSearch","onSearch","customOnKeyDown","setHasFocus","prevChangeTimestamp","timeStamp","uncastValue","rootElementRef","inputElementRef","customOnClearClick","hasInput","onClearClick","blur","clearButton","SearchBox","inputIconAlt","inputIconAltHovered","inputBorderDisabled","inputBackgroundHovered","inputBackgroundDisabled","inputIconHovered","inputIcon","inputIconDisabled","SeparatorBase","Separator","alignStart","alignCenter","alignEnd","getSlotStyleFn","sty","getPercent","sliderMin","sliderMax","SliderBase","step","showValue","snapToStep","valueFormat","originFromZero","ranged","sliderLine","latestLowerValue","unclampedValue","lowerValue","defaultLowerValue","lv","latestValue","unclampedLowerValue","setLowerValue","onKeyDownTimer","isAdjustingLowerValue","showTransitions","isBetweenSteps","steps","clearOnKeyDownTimer","setOnKeyDownTimer","getAriaValueText","valueProps","ariaValueText","updateValue","newUnroundedValue","numDec","isFinite","roundedValue","getPosition","verticalProp","currentPosition","calculateCurrentSteps","currentSteps","sliderPositionRect","stepLength","onMouseMoveOrTouchMove","suppressEventCancelation","newCurrentValue","onMouseDownOrTouchStart","onMouseUpOrTouchEnd","disposeListeners","lowerValueThumbRef","thumbRef","sliderBoxRef","range","getPositionStyles","getTrackStyles","originValue","valuePercent","lowerValuePercent","originPercentOfLine","activeSectionWidth","topSectionWidth","bottomSectionWidth","titleLabel","valueLabelProps","valueLabel","lowerValueLabelProps","zeroTickProps","zeroTick","trackActiveProps","lineContainer","activeSection","trackTopInactiveProps","inactiveSection","trackBottomInactiveProps","sliderProps","sliderBoxProps","slideBox","diff","onFocusProp","thumbProps","lowerValueThumbProps","sliderBox","lowerValueLabel","lowerValueThumb","activeTrack","topInactiveTrack","bottomInactiveTrack","useSlider","enabled","Slider","titleLabelClassName","pressedActiveSectionColor","hoveredActiveSectionColor","hoveredPressedinactiveSectionColor","restActiveSectionColor","restInactiveSectionColor","disabledActiveSectionColor","disabledInactiveSectionColor","thumbBackgroundColor","thumbBorderColor","smallInputBorder","thumbDisabledBorderColor","disabledBorder","slideBoxActiveSectionStyles","slideBoxInactiveSectionStyles","slideHoverSectionStyles","slideBoxActiveThumbStyles","slideBoxActiveZeroTickStyles","inputPlaceholderBackgroundChecked","easeFunction1","KeyboardSpinDirection","SpinButtonTextColorDisabled","SpinButtonBackgroundColorDisabled","getArrowButtonStyles","isUpArrow","customSpecificArrowStyles","ArrowButtonTextColor","ArrowButtonTextColorHovered","ArrowButtonTextColorPressed","ArrowButtonBackgroundHovered","ArrowButtonBackgroundPressed","defaultArrowButtonStyles","labelPosition","incrementButtonIcon","decrementButtonIcon","noOp","clampValue","SpinButtonBase","valueFromProps","precisionFromProps","precision","incrementButtonAriaLabel","decrementButtonAriaLabel","customUpArrowButtonStyles","upArrowButtonStyles","customDownArrowButtonStyles","downArrowButtonStyles","ariaValueNow","onDecrement","onIncrement","onValidate","inputId","isFocused","setIsFocused","notSpinning","keyboardSpinDirection","setKeyboardSpinDirection","intermediateValue","setIntermediateValue","stepTimeoutHandle","latestIntermediateValue","previousValueFromProps","validate","enteredValue","spinningByMouse","stepFunction","wasSpinning","handleIncrement","numericValue","handleDecrement","handleIncrementMouseDown","handleDecrementMouseDown","useDebugWarnings","valueIsNumber","labelContent","spinButtonWrapper","spinDirection","arrowButtonsContainer","SpinButton","SpinButtonRootBorderColor","SpinButtonRootBackgroundColor","SpinButtonRootBorderColorHovered","SpinButtonRootBorderColorFocused","SpinButtonInputTextColor","SpinButtonInputTextColorSelected","SpinButtonInputBackgroundColorSelected","SpinButtonIconDisabledColor","float","DEFAULT_MIN_WIDTH","SpinnerBase","ariaLive","styleSize","spinAnimation","SpinnerSize","SpinnerType","_getThemedSpacing","spacing","_getValueUnitGap","numericalPart","numericalValue","numericalString","unit","parsePadding","paddingValues","padding1","padding2","nameMap","_processStackChildren","disableShrink","enableScopedSelectors","doNotRenderFalsyValues","childrenArray","childAsReactElement","defaultItemProps","StackItem","shrink","childClassName","StackStatics","Item","Stack","wrap","stackChildren","Slots","grow","horizontalAlign","verticalFill","childrenGap","rowGap","columnGap","splitGap","calculatedGap","parseGap","horizontalMargin","verticalMargin","childStyles","childSelector","disableShrinkStyles","alignMap","StackItemStyles","align","order","basis","Sticky","_stickyContentTop","_stickyContentBottom","_nonStickyContent","_placeHolder","isScrollSynced","_getContext","_onScrollEvent","footerStickyContainer","_getNonStickyDistanceFromTop","_getStickyDistanceFromTop","_getStickyDistanceFromTopForFooter","footerStickyVisibleContainer","currElem","stickyPosition","Both","Footer","_isOffsetHeightDifferent","stickyClassName","_getStickyPlaceholderHeight","_getNonStickyPlaceholderHeightAndWidth","_getContentStyles","isSticky","stickyBackgroundColor","_getBackground","curr","getPropertyValue","StickyPositionType","ButtonGridBase","columnCount","isSemanticRadio","setSize","doNotContainWithinFocusZone","htmlProps","rowsOfItems","rows","rowIndex","cellIndex","tableCell","shouldFocusCircularNavigate","focusedContainer","ButtonGrid","ButtonGridCell","defaultId","cellDisabledStyle","cellIsSelectedStyle","handleClick","handleMouseEnter","handleMouseMove","handleMouseLeave","handleFocus","getColorPickerGridCellButtonClassNames","cellHighContrastFocus","ColorPickerGridCell","inputColor","currentColor","idPrefix","isRadio","onWheel","isWhite","renderColorOption","colorOption","svgClassName","cx","cy","cellSemantics","onRenderColorCellContent","colorCell","buttonBorderHovered","buttonBorderChecked","buttonBorderCheckedHovered","buttonBorderIsWhite","calculatedBorderWidth","SwatchColorPickerBase","isNavigationIdle","cellFocused","navigationIdleTimeoutId","navigationIdleDelay","colorCells","cellShape","cellMargin","defaultSelectedId","focusOnHover","mouseLeaveParentSelector","onColorChanged","onCellHovered","onCellFocused","getColorGridCellStyles","cellHeight","cellWidth","cellBorderWidth","itemsWithIndex","mergedOnChange","newSelectedId","c","selectedId","setSelectedId","gridStyles","onSwatchColorPickerBlur","parentSelector","onGridCellHovered","onGridCellFocused","onCellClick","setNavigationTimeout","renderOption","onRenderColorCell","SwatchColorPicker","TeachingBubbleContentBase","imageContent","headerContent","bodyContent","footerContent","documentRef","illustrationImage","primaryButtonProps","secondaryButtonProps","headline","hasCondensedHeadline","hasCloseIcon","hasSmallHeadline","isWide","customFooterContent","hasHeadline","primaryButtonClassName","secondaryButtonClassName","HeaderWrapperAs","BodyContentWrapperAs","primaryButton","secondaryButton","headerIsCondensed","headerIsSmall","headerIsLarge","buttonLabel","opacityFadeIn","rootStyle","animationFillMode","headerStyle","hasLargeHeadline","hideDefaultFocusRing","themeLighter","TeachingBubbleContent","defaultCalloutProps","TeachingBubbleBase","setCalloutProps","calloutStyles","TeachingBubble","DEFAULT_MASK_FORMAT_CHARS","parseMask","mask","formatChars","maskCharData","escapedChars","maskChar","charAt","maskFormat","displayIndex","format","getMaskDisplay","maskDisplay","lastDisplayIndex","maskCharData_1","charData","nextChar","getRightFormatIndex","clearRange","selectionCount","insertString","newString","stringIndex","nextIndex","isStringInserted","MaskedTextField","onPaste","moveCursorOnMouseUp","changeSelectionData","maskCursorPosition","setMaskCursorPosition","setDisplayValue","valueIndex","charDataIndex","testVal","handleBlur","handleMouseDown","handleMouseUp","handleInputChange","changeType","cursorPos","charsSelected","charCount","startPos","pastedString","isDel","clearNext","clearPrev","getLeftFormatIndex","enteredString","selectCount","del","handlePaste","setSelectionStart","setSelectionEnd","__browserNeedsRevealButton","TextFieldBase","_textElement","validateOnFocusIn","_validate","validateOnFocusOut","_onRevealButtonClick","isRevealingPassword","previousValue","_getValue","_lastChangeValue","_isControlled","uncontrolledValue","_fallbackId","_prefixId","_suffixId","_warnControlledUsage","_delayedValidate","deferredValidationTime","_lastValidation","_adjustInputHeight","snapshot","_shouldValidateAllChanges","inputClassName","resizable","suffix","autoAdjustHeight","canRevealPassword","revealPasswordAriaLabel","onRenderPrefix","_onRenderPrefix","onRenderSuffix","_onRenderSuffix","_errorMessage","isInvalid","hasRevealButton","isEdge","userAgent","_browserNeedsRevealButton","fieldGroup","_renderTextArea","_renderInput","revealButton","revealSpan","revealIcon","_isDescriptionAvailable","_renderErrorMessage","_hasWarnedNullValue","textAreaProps","labelIds","updatedInputProps","_latestValidateValue","onGetErrorMessage","currentValidation_1","_notifyAfterValidate","onNotifyValidationResult","unresizable","active","getLabelStyles","fieldPrefixSuffix","resize","Text","block","variant","nowrap","variantObject","mozOsxFontSmoothing","MozOsxFontSmoothing","webkitFontSmoothing","getDateFromTimeSelection","useHour12","dateStartAnchor","selectedTime","hoursOffset","exec","selectedHours","selectedMinutes","selectedSeconds","selectedAp","hours","minutes","seconds","getHours","getMinutes","setMinutes","setSeconds","formatTimeString","showSeconds","localeTimeString","toLocaleTimeString","hour","minute","second","hour12","REGEX_SHOW_SECONDS_HOUR_12","REGEX_HIDE_SECONDS_HOUR_12","REGEX_SHOW_SECONDS_HOUR_24","REGEX_HIDE_SECONDS_HOUR_24","TimePicker","increments","timeRange","hourUnits","timeFormat","timeOutOfBoundsErrorMessage","getDefaultStrings","dateAnchor","onFormatDate","onValidateUserInput","onValidationResult","comboBoxText","setComboBoxText","fallbackDateAnchor","setSelectedTime","optionsCount","getDropdownOptionsCount","internalDateAnchor","getDateAnchor","dateEndAnchor","timePickerOptions","optionsList","setTime","formattedTimeString","formattedTimeString_1","comboboxOption","_index","changedTime","errorMessageToDisplay","userInput","optionDate","validateUserInput","timeSelection","updatedTime","C","charCode","zero","colon","m","startEnd","clampedDateAnchor","clampedTimeRange","clampTimeRange","timeRangeHours","setHours","setMilliseconds","times","ceilMinuteToIncrement","hoursInRange","getHoursInRange","ToggleBase","controlledChecked","inlineLabel","offAriaLabel","offText","onAriaLabel","onToggleClick","onText","setChecked","onOffMissing","badAriaLabel","stateTextId","stateText","toggleNativeProps","labelledById","toggleButton","pill","toggleButtonRef","Toggle","pillUncheckedBackground","pillCheckedBackground","pillCheckedHoveredBackground","thumbUncheckedHoveredBackground","pillCheckedDisabledBackground","thumbBackground","thumbCheckedBackground","thumbDisabledBackground","thumbCheckedDisabledBackground","pillBorderColor","pillBorderHoveredColor","pillBorderDisabledColor","DEFAULT_PILL_HEIGHT","DEFAULT_THUMB_SIZE","TooltipDelay","TooltipBase","Tooltip","tooltipGapSpace","devicePixelRatio","TooltipHostBase","_tooltipHost","_defaultTooltipId","_toggleTooltip","_hideTooltip","_getTargetElement","Self","_onTooltipFocus","_ignoreNextFocusEvent","_onTooltipMouseEnter","_onTooltipContentFocus","_currentVisibleTooltip","_clearDismissTimer","_clearOpenTimer","_onTooltipBlur","_dismissTimerId","delay","overflowElement","hasHorizontalOverflow","hasVerticalOverflow","delayTime","_getDelayTime","_openTimerId","_onTooltipMouseLeave","closeDelay","_onTooltipKeyDown","isTooltipVisible","onTooltipToggle","long","isAriaPlaceholderRendered","tooltipId","tooltipRenderProps","ariaPlaceholder","TooltipOverflowMode","SuggestionActionType","AnnouncedBase","message","Announced","suggestionsItem","suggestionsItemIsSuggested","actionButton","buttonSelected","suggestionsTitle","suggestionsContainer","suggestionsNone","suggestionsSpinner","suggestionsAvailable","legacyStyles","SuggestionsItem","suggestionModel","RenderSuggestion","onRemoveItem","isSelectedOverride","removeButtonAriaLabel","removeButtonIconProps","suggested","showRemoveButton","StyledSuggestionsItem","Suggestions","suggestionsProps","_forceResolveButton","_searchForMoreButton","_scrollContainer","tryHandleKeyDown","currentSuggestionIndex","isEventHandled","newSelectedActionType","currentSelectedAction","selectedActionType","suggestionLength","suggestions","forceResolve","_refocusOnSuggestions","searchMore","_getAlertText","isLoading","isSearching","suggestionsAvailableAlertText","noResultsFoundText","isExtendedLoading","_getMoreResults","onGetMoreResults","_forceResolve","createGenericItem","_shouldShowForceResolve","showForceResolve","_onClickTypedSuggestionsItem","onSuggestionClick","refocusSuggestions","_onRemoveTypedSuggestionsItem","onSuggestionRemove","scrollSelected","activeSelectedElement","forceResolveText","mostRecentlyUsedHeaderText","searchForMoreIcon","searchForMoreText","moreSuggestionsAvailable","onRenderNoResultFound","searchingText","isMostRecentlyUsedVisible","resultsMaximumNumber","resultsFooterFull","resultsFooter","isResultsFooterVisible","suggestionsHeaderText","suggestionsClassName","suggestionsListId","suggestionsContainerAriaLabel","forceResolveButtonSelected","searchForMoreButtonSelected","searchForMoreButton","forceResolveButton","noSuggestions","spinnerStyles","spinner","spinnerClassNameOrStyles","footerTitle","hasNoSuggestions","forceResolveId","searchForMoreId","_renderSuggestions","hasSuggestedAction","hasSuggestedActionSelected","executeSelectedAction","focusAboveSuggestions","focusBelowSuggestions","focusSearchForMoreButton","onRenderSuggestion","removeSuggestionAriaLabel","suggestionsItemClassName","showRemoveButtons","StyledTypedSuggestionsItem","suggestion","actionButtonSelectedStyles","SuggestionsController","_isSuggestionModel","_ensureSuggestionModel","updateSuggestions","newSuggestions","maxCount","convertSuggestionsToSuggestionItems","currentSuggestion","nextSuggestion","setSelectedSuggestion","previousSuggestion","getSuggestions","getCurrentItem","getSuggestionAtIndex","hasSelectedSuggestion","removeSuggestion","createGenericSuggestion","itemToConvert","itemToAdd","deselectAllSuggestions","picker","pickerText","inputFocused","pickerInput","pickerItems","BasePicker","basePickerProps","suggestionsType","suggestionElement","SuggestionOfProperType","_styledSuggestions","dismissSuggestions","selectItemFunction","addItemOnDismiss","suggestionStore","canAddItems","addItemByIndex","currentPromise","suggestionsVisible","resetFocus","onRemoveSuggestion","onInputFocus","_userTriggeredSuggestions","onInputBlur","onWrapperClick","completeSuggestion","_completeGenericSuggestion","onBackspace","onSuggestionSelect","onItemChange","changedItem","_updateSelectedItems","suggestionsArray","suggestionsPromiseLike","completeSelection","addItem","processedItem","onItemSelected","processedItemObject","processedItemPromiseLike","resolvedProcessedItem","selectionRemoved","removeItem","removeItems","itemsToRemove","_shouldFocusZoneEnterInnerZone","_onResolveSuggestions","onResolveSuggestions","updateSuggestionsList","onValidateInput","onEmptyInputFocus","defaultSelectedItems","_ariaMap","selectedSuggestionAlert","suggestionList","combobox","onSelectionChange","resolveDelay","oldState","currentSelectedIndex","focusInput","forceComplete","selectionAriaLabel","selectionRole","itemsWrapper","comboLabel","renderCustomAlert","renderItems","getActiveDescendant","renderSuggestions","itemLimit","StyledTypedSuggestions","pickerCalloutProps","onRenderSuggestionsItem","suggestionsLoading","suggestionsExtendedLoading","pickerSuggestionsProps","newEl","itemValue","_getTextFromItem","maxSuggestionsCount","emptyResolveSuggestions","onEmptyResolveSuggestions","_updateAndResolveValue","_startLoadTimer","_getShowSuggestions","resolveNewValue","cursorLocation","getSuggestionsAlert","suggestionAlertClassName","enableSelectedSuggestionAlert","selectedSuggestion","selectedSuggestionAlertText","alertClassName","suggestionRemovedText","removedItemText","itemName","_onSelectedItemsUpdated","getTextFromItem","BasePickerListBelow","disabledOverlayColor","ValidationState","personaWrapper","PeoplePickerItemSuggestion","personaProps","personaStyles","textSelectorsStyles","isSuggested","BasePeoplePicker","MemberListPeoplePicker","NormalPeoplePickerBase","PeoplePickerItem","CompactPeoplePickerBase","ListPeoplePickerBase","currentValidationState","personaToConvert","NormalPeoplePicker","itemContent","removeButton","itemId","personaCoinStyles","personaCoin","personaPrimaryTextStyles","redDark","personaSecondaryTextStyles","personaCoinInitialsStyles","SuggestionsItemGlobalClassNames","menuDivider","TagItem","enableTagFocusInDisabledPicker","disabledAttrs","tabindex","suggestionTextOverflow","TagItemSuggestion","TagPickerBase","TagPicker","ThemeContext","useTheme","useContext","legacyTheme","useCustomizationSettings","MAX_COLOR_SATURATION","MAX_COLOR_HUE","MAX_COLOR_VALUE","MAX_COLOR_RGB","MAX_COLOR_ALPHA","MIN_HEX_LENGTH","MAX_HEX_LENGTH","MIN_RGBA_LENGTH","MAX_RGBA_LENGTH","HEX_REGEX","RGBA_REGEX","rgba","NaN","rgb2hsv","_rgba","hasAlpha","expectedPartCount","parts","_hex6","_hex3","hsv","_hsla","eComputedStyle","computedColor","_browserCompute","cssColor","rgb","hh","_rgbToPaddedHex","REACT_LIFECYCLE_EXCLUSIONS","composedComponentInstance","source","_hoisted","destination","exclusions","methodName","hoistMethods","ResponsiveMode","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","getInitialResponsiveMode","resultClass","WithResponsiveMode","_onResize","getResponsiveMode","unknown","getWidthOfCurrentWindow","currentWindow","params","_dragEnterCounts","_activeTargets","_lastId","_initialized","dragDropOptions","_onDocumentMouseUp","isDroppable","activeTarget","handlers","updateDropState_1","dragDropTarget","_isDroppable","eventMap_1","event_1","isHandled","_isDragging","dataTransfer","setData","handlers_1","_dragData","dropTarget","raise","_isChild","_onMouseLeave","eventTarget","dragTarget","dragContext","overrideResponsiveMode","lastResponsiveMode","setLastResponsiveMode","newResponsiveMode","KeytipEvents","KTP_PREFIX","KTP_SEPARATOR","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","KTP_LAYER_ID","KEYTIP_ADDED","KEYTIP_REMOVED","KEYTIP_UPDATED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","ENTER_KEYTIP_MODE","EXIT_KEYTIP_MODE","keytips","sequenceMapping","inKeytipMode","shouldEnterKeytipMode","delayUpdatingKeytipChange","_instance","init","persisted","uniqueKeytip","_getUniqueKtp","oldKeyTip","keytipToRemove","enterKeytipMode","exitKeytipMode","getKeytips","fullSequence","parentKeytip","overflowButtonSequences","RectangleEdge","Position","getAllSelectedOptions","selectedIndices_1","SelectableOptionMenuItemType","SELECTION_INDEX_ATTRIBUTE_NAME","SELECTION_TOGGLE_ATTRIBUTE_NAME","SELECTION_INVOKE_ATTRIBUTE_NAME","SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME","_handleNextFocus","_onMouseDownCapture","_hasAttribute","isToggleModifierPressed","_isCtrlPressed","_isMetaPressed","_getSelectionMode","_shouldHandleFocus","isToggle","itemRoot","_findItemRoot","_getItemIndex","_getItemSpan","setModal","_setIsTouch","_onItemSurfaceClick","_updateModifiers","_isSelectionDisabled","_shouldAutoSelect","_isShiftPressed","_onInvokeMouseDown","disableAutoSelectOnInputElements","_onTouchStartCapture","enableTouchInvocationTarget","isSelectionDisabled","_onToggleAllClick","_onInvokeClick","_onContextMenu","getItems","_onDoubleClick","_isInputElement","isSelectAllKey","isClearSelectionKey","_findScrollParentAndTryClearOnEmptyClick","onKeyDownCapture","toggleIndexSelected","_isTabPressed","selectToRange","selectToIndex","_clearAndSelectIndex","scrollParent","_tryClearOnEmptyClick","Node","_isNonHandledClick","selectionClearedOnSurfaceClick","setRangeSelected","indexValue","spanValue","attributeName","_shouldHandleFocusTimeoutId","isTouch","_isTouchTimeoutId","_timeoutIds","_immediateIds","_intervalIds","_animationFrameIds","_isDisposed","_parent","_onErrorHandler","_noop","clearImmediate","clearInterval","_logError","setImmediate","immediateId","setInterval","intervalId","wait","lastResult","lastArgs","waitMS","trailing","lastExecuteTime","userCall","now","waitLength","noOpFunction","cancel","flush","pending","lastCallTime","markExecuted","time","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","resultFunction","animationFrameId","animationFrameCallback","_makeSafe","obj","classMethod","prototypeMethod","retVal","nullRender","BaseComponent","methodNames","len","_makeAllSafe","_updateComponentRef","_setComponentRef","__disposables","disposable","__className","results","__async","__events","_resolveRef","refName","__resolves","_warnDeprecations","deprecationMap","_warnMutuallyExclusive","mutuallyExclusiveMap","_warnConditionallyRequiredProps","requiredProps","conditionalPropName","condition","_skipComponentRefResolution","isRendered","_uniqueId","_eventRecords","eventArgs","bubbleEvent","_isElement","initEvent","createEventObject","evObj","fireEvent","__events__","eventRecords","eventRecordList","listIndex","record","objectCallback","isObserved","isDeclared","declaredEvents","__declaredEvents","cancelBubble","onAll","parent_1","eventRecord","processElementEvent","elementCallback","attachEvent","targetArrayLookup","targetArray","detachEvent","declare","mergeAriaAttributeValues","ariaAttributes","mergedAttribute","arg","fromIndex","toMatrix","addElementAtIndex","copy","arraysEqual","array1","array2","componentAsMemoizer","outer","Outer","Inner","innerMemoizer","innerProps","outerProps","local","newRefs","resolver","createResolver","args_1","concatStyles","ComponentWithInjectedProps","_styleCache","_onSettingChanged","mergedStyles","merged","appendFunction","functions","f","methods","IS_VISIBLE_ATTRIBUTE","FOCUSZONE_SUB_ATTRIBUTE","getFirstFocusable","includeElementsInFocusZones","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","focusAsync","suppressParentTraversal","traverseChildren","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","isElementTabbable","childMatchSiblingMatch","previousElementSibling","childMatchParent","childMatchParentMatch","suppressChildTraversal","isElementVisibleAndNotHidden","visibilityAttribute","checkTabIndex","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","doesElementContainFocus","currentActiveElement","shouldWrapFocus","attribute","elementContainsAttribute","animationId","getFocusableByIndexPath","path_1","nextChild","getElementIndexPath","fromElement","toElement","unshift","hoistStatics","dest","isIE11","_onMount","_onUpdate","_onUnmount","UNWANTED_ENCLOSURES_REGEX","UNWANTED_CHARS_REGEX","PHONENUMBER_REGEX","MULTIPLE_WHITESPACES_REGEX","UNSUPPORTED_TEXT_REGEX","getInitials","cleanupDisplayName","splits","toUpperCase","getInitialsLatin","getDistanceBetweenPoints","point1","point2","left1","top1","left2","top2","calculatePrecision","precisionRound","base","exp","isIOS","tagsToIgnore","targetDocument","affectedNodes","sibling","node","originalValue","unmodalize","shallowCompare","filteredAssign","isAllowed","sourceObject","isMacResult","isMac","toObjectMap","keys_1","baseElementEvents","baseElementProperties","htmlElementProperties","labelProperties","audioProperties","videoProperties","olProperties","liProperties","anchorProperties","buttonProperties","inputProperties","textAreaProperties","selectProperties","optionProperties","tableProperties","trProperties","thProperties","tdProperties","colGroupProperties","colProperties","formProperties","iframeProperties","imgProperties","divProperties","getNativeProps","keys_2","memoizer","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","_element","findScrollableParent","allowOverscrollOnElement","_disableIosBodyScroll","disableBodyScroll","enableBodyScroll","getScrollbarWidth","scrollDiv","setProperty","startingElement","computedStyles","onItemsChanged","_getKey","defaultGetKey","_changeEventSuppressionCount","_exemptedCount","_anchoredIndex","_unselectableCount","_onItemsChanged","_canSelectItem","_keyToIndexMap","_isModal","suppressChange","_hasChanged","_change","shouldClear","newKeyToIndexMap","newUnselectableIndices","hasSelectionChanged","haveItemsChanged","_setAllSelected","newExemptedIndicies","newExemptedCount","indexProperty","_exemptedIndices","exemptKey","_items","_isAllSelected","_unselectableIndices","_selectedItems","_updateCount","_selectedIndices","getItemIndex","selectableCount","isKeySelected","setKeySelected","shouldAnchor","isExempt","newAnchorIndex","selectToKey","clearSelection","anchorIndex","toggleKeySelected","preserveModalState","SelectionMode","SelectionDirection","SELECTION_CHANGE","SELECTION_ITEMS_CHANGE","FORMAT_ARGS_REGEX","FORMAT_REGEX","replacement","DirectionalKeyCodes","isDirectionalKeyCode","mountCounters","WeakMap","callbackMap","setMountCounters","currValue","set","setCallbackMap","callbacks","FocusRectsContext","FabricConfig","disableFocusRects","FocusRects","componentName","exclusiveMap","___CSS_LOADER_EXPORT___","module","locals"],"sourceRoot":""}