{"version":3,"file":"static/js/204_a4442b32659217bac20c.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.base.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.base.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@fluentui+react@8.111.4_53swvjg5d4vee6odcktdjzlijq/node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js"],"sourcesContent":["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 } 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, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\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 * 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","export var getStyles = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n if (getClassNames) {\n var names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\n }\n return {\n wrapper: [\n {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n className,\n ],\n divider: [\n {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, } 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, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\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 } 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, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\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 { __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, } 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 return React.createElement(ContextualMenuAnchor, __assign({}, commonProps, { onItemClick: onAnchorClick }));\n }\n if (item.split && hasSubmenu(item)) {\n return (React.createElement(ContextualMenuSplitButton, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase, onTap: cancelSubMenuTimer })));\n }\n return React.createElement(ContextualMenuButton, __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 _a = props.contextualMenuItemAs, ChildrenRenderer = _a === void 0 ? ContextualMenuItem : _a;\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","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 } 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, __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 { 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 * 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 { 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","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"],"names":["defaultIconRenderer","props","item","classNames","iconProps","Icon","className","icon","renderItemIcon","hasIcons","onRenderIcon","renderCheckMarkIcon","_a","onCheckmarkClick","isItemChecked","iconName","canCheck","checkmarkIcon","onClick","e","renderItemName","text","name","label","renderSecondaryText","secondaryText","renderSubMenuIcon","theme","submenuIconProps","subMenuIcon","ContextualMenuItemBase","_super","_this","call","this","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissMenu","dismissAll","undefined","initializeComponentRef","prototype","render","renderContent","onRenderContent","_renderLayout","split","linkContentMenu","linkContent","defaultRenders","getDividerClassNames","memoize","wrapper","display","height","alignItems","divider","width","backgroundColor","palette","neutralTertiaryAlt","CONTEXTUAL_MENU_ITEM_HEIGHT","MediumScreenSelector","getMenuItemStyles","_b","_c","_d","_e","semanticColors","fonts","ContextualMenuItemBackgroundHoverColor","menuItemBackgroundHovered","ContextualMenuItemTextHoverColor","menuItemTextHovered","ContextualMenuItemBackgroundSelectedColor","menuItemBackgroundPressed","ContextualMenuItemDividerColor","bodyDivider","menuItemStyles","medium","color","bodyText","position","boxSizing","root","border","lineHeight","cursor","padding","textAlign","rootDisabled","disabledBodyText","pointerEvents","selectors","opacity","rootHovered","themeDarkAlt","neutralPrimary","rootFocused","white","rootChecked","rootPressed","themeDark","rootExpanded","bodyTextChecked","whiteSpace","maxWidth","anchorLink","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","textDecoration","margin","verticalAlign","flexGrow","textOverflow","overflow","neutralSecondary","paddingLeft","minHeight","maxHeight","fontSize","flexShrink","iconColor","menuIcon","iconDisabled","bodySubtext","splitButtonFlexContainer","flexWrap","justifyContent","CONTEXTUAL_SPLIT_MENU_MINWIDTH","getSplitButtonVerticalDividerClassNames","right","GlobalClassNames","isChecked","isExpanded","isDisabled","splitMenu","screenReaderText","getItemClassNames","disabled","expanded","checked","isAnchorLink","knownIcon","itemClassName","dividerClassName","iconClassName","subMenuClassName","primaryDisabled","styles","concat","background","splitPrimary","flexBasis","minWidth","splitContainer","visibility","getItemStyles","ContextualMenuItem","styled","scope","ContextualMenuItemWrapper","_onItemMouseEnter","ev","onItemMouseEnter","currentTarget","_onItemClick","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubmenuTarget","shouldComponentUpdate","newProps","ContextualMenuAnchor","apply","arguments","_anchor","_getMemoizedMenuButtonKeytipProps","keytipProps","hasMenu","current","onItemClick","_renderAriaDescription","ariaDescription","id","_ariaDescriptionId","index","focusableElementIndex","totalItemCount","hasCheckmarks","contextualMenuItemAs","ChildrenRenderer","expandedMenuItemKey","anchorRel","rel","target","toLowerCase","itemHasSubmenu","nativeProps","itemProps","getId","ariaDescribedByIds","ariaDescribedBy","additionalItemProperties","KeytipData","keytipAttributes","ref","href","role","key","style","onMouseEnter","onMouseLeave","onMouseMove","onKeyDown","componentRef","getClassNames","classNamesFunction","VerticalDividerBase","deprecatedGetClassNames","displayName","VerticalDivider","Error","names","ContextualMenuSplitButton","which","KeyCodes","_executeItemClick","preventDefault","stopPropagation","_splitButton","_onItemMouseEnterPrimary","subMenuProps","items","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","_processingTouch","_onTouchStart","_handleTouchAndPointerEvent","_onPointerDown","pointerType","stopImmediatePropagation","_async","Async","_events","EventGroup","_dismissLabelId","componentDidMount","on","componentWillUnmount","dispose","ariaChecked","splitButton","ariaLabel","bind","onTouchStart","tabIndex","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","data","itemComponentProps","onItemMouseDown","buttonProps","onMouseDown","onTap","_lastTouchTimeoutId","clearTimeout","setTimeout","ContextualMenuButton","_btn","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","title","getContextualMenuItemClassNames","DEFAULT_PROPS","shouldFocusOnMount","gapSpace","directionalHint","DirectionalHint","beakWidth","getItemCount","_i","items_1","length","itemType","customOnRenderListLength","getSubmenuItems","options","overrideItems","items_2","subItem","preferMenuTargetAsEventTarget","contextItem","push","getOnClickWithOverrideTarget","COMPONENT_NAME","_getMenuItemStylesFunction","styleProps","useSubMenuState","dismiss","hidden","menuTarget","setExpandedMenuItemKey","setSubmenuTarget","shouldFocusOnContainer","setShouldFocusOnContainer","subMenuId","useId","closeSubMenu","focusContainer","submenuItemKey","focus","onSubMenuDismiss","isMountedRef","useOnSubmenuDismiss","findItemByKeyFromItems","submenuProps","onDismiss","isSubMenu","isBeakVisible","useKeyHandlers","hostElement","focusZoneProps","checkForNoWrap","direction","focusZoneDirection","lastKeyDownWasAltOrMeta","keyHandler","shouldHandleKey","dismissAllMenus","handled","shouldHandleKeyDown","submenuCloseKey","shouldCloseSubMenu","altKey","metaKey","isAltOrMeta","shouldHandleKeyUp","keyPressIsAltOrMetaAlone","hasModifier","isUp","isDown","elementToFocus","lastChild","firstChild","openKey","ContextualMenuBase","propsWithoutDefaults","forwardedRef","getPropsWithDefaults","asyncTracker","useAsync","menuId","useWarnings","deprecations","getMenuClassNames","useTarget","targetRef","targetWindow","tryFocusPreviousActiveElement","onRestoreFocus","previousActiveElement","documentContainsFocus","useIsomorphicLayoutEffect","originalElement","containsFocus","getDocument","hasFocus","newElement","document","activeElement","contains","tagName","usePreviousActiveElement","getSubmenuProps","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","useShouldUpdateFocusOnMouseMove","_f","isScrollIdle","scrollIdleTimeoutId","useScrollHandler","onScroll","_g","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","onTimerExpired","useSubmenuEnterTimer","startSubmenuTimer","subMenuEntryTimer","responsiveMode","useResponsiveMode","onMenuDismissed","onMenuOpened","previousHidden","usePrevious","onMenuOpenedRef","onMenuClosedRef","propsRef","useVisibility","_h","onKeyUp","onMenuKeyDown","_j","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","targetElement","nativeEvent","overrideTarget","shouldDismiss","defaultPrevented","setActive","useMouseHandlers","onItemMouseEnterBase","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","onDefaultRenderMenuList","menuListProps","menuClassNames","defaultRender","indexCorrection","list","map","menuItem","renderMenuItem","indexIncrease","itemClassNames","renderedItems","subMenuIconClassName","itemStyleProps","subComponentStyles","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","renderSectionItem","defaultRenderNormalItem","renderNormalItem","onRenderContextualMenuItem","sectionItem","sectionProps","groupProps","headerContextualMenuItem","ariaLabelledby","id_1","replace","id_2","correctedIndex_1","topDivider","contextualMenuItem","itemsIndex","bottomDivider","content","top","fromSection","onRender","commonProps","divHtmlProperties","header","labelElementId","directionalHintForRTL","alignTargetEdge","coverTarget","doNotLayer","bounds","useTargetWidth","useTargetAsMinWidth","directionalHintFixed","calloutProps","_k","onRenderSubMenu","onDefaultRenderSubMenu","_l","onRenderMenuList","itemsHaveIcons","contextualMenuItems","contextualMenuItems_1","contextMenuStyle","adjustedFocusZoneProps","handleTabKey","isCircularNavigation","css","some","submenuItem","canAnyMenuItemsCheck","targetAsHtmlElement","offsetWidth","targetWidth","getBoundingClientRect","totalItemCount_1","calloutStyles_1","callout","MenuContext","menuContext","Callout","setInitialFocus","container","onFocusCapture","children","focusZoneAs","FocusZone","renderFocusZone","defaultMenuItemRenderer","prevProps","shouldUpdateWhenHidden","items_3","match","persist","Event","Element","isopen","LocalContextualMenu","effects","menuBackground","outline","listStyleType","small","fontWeight","menuHeader","userSelect","mediumPlus","paddingRight","paddingBottom","paddingTop","boxShadow","elevation8","composeRenderFunction","ContextualMenu","ContextualMenuItemType","DropdownSizePosCache","_size","updateOptions","displayOnlyOptionsCache","notSelectableOptionsCache","size","i","_displayOnlyOptionsCache","_notSelectableOptionsCache","_cachedOptions","Object","defineProperty","get","enumerable","configurable","positionInSet","offset","CheckboxBase","required","inputProps","ariaLabelledBy","ariaPositionInSet","ariaSetSize","checkmarkIconProps","boxSide","rootRef","mergedRootRefs","useMergedRefs","inputRef","useControllableValue","defaultChecked","onChange","setIsChecked","indeterminate","defaultIndeterminate","isIndeterminate","setIsIndeterminate","useFocusRects","reversed","isUsingCustomLabelRender","onRenderLabel","event","defaultLabelRenderer","checkboxProps","setNativeIndeterminate","value","setIndeterminate","checkBoxRef","useComponentRef","mergedInputProps","input","type","htmlFor","checkbox","checkmark","MS_CHECKBOX_LABEL_SIZE","MS_CHECKBOX_TRANSITION_DURATION","MS_CHECKBOX_TRANSITION_TIMING","Checkbox","_m","_o","_p","_q","_r","_s","_t","checkmarkFontColor","inputForegroundChecked","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","inputBackgroundChecked","checkboxBorderColorChecked","checkboxBorderColorDisabled","disabledBodySubtext","checkboxBorderHoveredColor","inputBorderHovered","checkboxBorderIndeterminateHoveredColor","inputBackgroundCheckedHovered","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","inputTextHovered","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","disabledText","indeterminateDotStyles","borderRadius","roundedCorner2","left","borderWidth","borderStyle","borderColor","transitionProperty","transitionDuration","transitionTimingFunction","outlineOffset","flexDirection","bottom","marginLeft","marginRight","DropdownBase","mergedRootRef","selectedKeyPropToUse","defaultSelectedKeys","selectedKeys","defaultSelectedKey","selectedKey","multiSelect","oldOptions","selectedIndices","setSelectedIndices","didOptionsChange","oldSelectedKeyProp","getAllSelectedIndices","option","selected","filter","getSelectedIndex","searchKey","isSelected","selectedIndex","Array","isArray","returnValue","selectedKeyPropToUse_1","getSelectedIndexes","useSelectedItemsState","DropdownInternal","hoisted","_host","_focusZone","_dropDown","_scrollIdleDelay","_sizePosCache","_requestAnimationFrame","safeRequestAnimationFrame","state","isOpen","setState","_onChange","onChanged","changedOpt","_getPlaceholder","placeholder","placeHolder","_getTitle","_unused","multiSelectDelimiter","join","_onRenderTitle","_onRenderPlaceholder","_onRenderContainer","panelProps","dropdownWidth","isSmall","focusTrapZoneProps","firstFocusableTarget","_listId","panelStyles","_classNames","panel","calloutWidth","calloutMinWidth","clientWidth","Panel","closeButtonAriaLabel","hasCloseButton","isLightDismiss","_onDismiss","_renderFocusableList","_onScroll","onPositioned","_onPositioned","_onRenderCaretDown","caretDown","_onRenderList","onRenderItem","_onRenderItem","queue","renderedList","emptyQueue","newGroup","forEach","_id","placeRenderedOptionIntoQueue","_renderSeparator","_renderHeader","_renderOption","onRenderOption","_onRenderOption","isItemSelected","indexOf","dropdownItemHidden","dropdownItemSelectedAndDisabled","dropdownItemSelected","dropdownItemDisabled","dropdownItem","labelId","multiSelectItemStyles","multiSelectItem","_onMouseItemLeave","_onRenderItemLabel","optionSetSize","CommandButton","dropdownOptionText","_onRenderMultiselectOption","positions","_hasBeenPositioned","element","getElementById","focusElement","calloutRenderEdge","targetEdge","setSelectedIndex","_isScrollIdle","_scrollIdleTimeoutId","window","_shouldIgnoreMouseEvent","_onDropdownBlur","_isDisabled","onBlur","_onDropdownKeyDown","_lastKeyDownWasAltOrMeta","_isAltOrMeta","newIndex","containsExpandCollapseModifier","_moveIndex","_onDropdownKeyUp","_shouldHandleKeyUp","_onZoneKeyDown","document_1","shiftKey","body","_onZoneKeyUp","_onDropdownClick","_shouldOpenOnFocus","_isFocusedByClick","_onDropdownMouseDown","_onFocus","onFocus","_onRenderLabel","labelStyles","Label","_labelId","_optionId","componentDidUpdate","prevState","_gotMouseMove","errorMessage","propStyles","onRenderTitle","onRenderContainer","onRenderCaretDown","onRenderPlaceholder","onRenderPlaceHolder","cachedOptions","selectedOptions","divProps","errorMessageId","hasError","hasLabel","isRenderingPlaceholder","panelClassName","calloutClassName","hasErrorMessage","dropdown","caretDownWrapper","shouldOpenOnFocus","notifyOnReselect","newIndexes","Math","max","min","_copyArray","splice","array","newArray","array_1","stepValue","stepCounter","onRenderList","dropdownItemsWrapper","dropdownItems","separatorClassName","dropdownDividerHidden","dropdownDivider","headerClassName","dropdownItemHeaderHidden","dropdownItemHeader","openOnKeyboardFocus","defaultProps","titleIsPlaceHolder","titleHasError","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","MinimumScreenSelector","Dropdown","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","menuItemText","borderColorError","errorText","dropdownItemStyle","wordWrap","overflowWrap","dropdownHeaderStyle","selectedItemBackgroundColor","itemSelectors","inset","titleOpenBorderRadius","calloutOpenBorderRadius","focusBorder","themePrimary","inputBackground","inputBorder","DROPDOWN_HEIGHT","inputPlaceholderText","disabledBackground","alignSelf","main","contentInner","getFabricTheme","isRTL","createTheme","rtl","FabricBase","applyTheme","applyThemeToBody","rootElement","bodyThemed","currentDoc_1","classList","add","remove","useApplyThemeToBody","as","Root","dir","contextDir","pageDir","componentDir","rootDir","needsTheme","getDir","renderedContent","FocusRectsProvider","providerRef","Customizer","settings","useRenderedContent","inheritFont","fontFamily","Fabric","preventBlanketFontInheritance","bodyBackground","disableFirstFocus","forceFocusInsideTrap","isClickableOutsideFocusTrap","FocusTrapZone","firstBumper","lastBumper","doc","isFirstRender","internalState","focusStackId","focusPreviouslyFocusedInnerElement","firstFocusableSelector","disableRestoreFocus","ignoreExternalFocusing","enableAriaHiddenSiblings","bumperProps","focusElementAsync","focusFTZ","previouslyFocusedElementInTrapZone","firstFocusableChild","querySelector","focusSelector","focusBumper","isFirstBumper","nextFocusable","returnFocusToInitiator","elementToFocusOnDismiss","focusStack","forceFocusOrClickInTrap","slice","disposables","previouslyFocusedElement","onBlurCapture","relatedTarget"],"sourceRoot":""}