{"version":3,"file":"js/491-03a18b2ecc6c6b93ebc4.js","mappings":"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CA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAOOG,EAAwBH,EAAY,CAC3C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAOOI,EAAwBJ,EAAYG,EAAuBD,GAM3DG,EAAkBL,EAAYI,EAAuB,CAC5D,SAOOE,EAAkBN,EAAYI,EAAuB,CAC5D,SACA,OACA,QACA,UACA,MACA,UAOOG,EAAkBP,EAAYM,EAAiB,CACtD,WAOOE,EAAeR,EAAYI,EAAuB,CACzD,UAOOK,EAAeT,EAAYI,EAAuB,CACzD,UAOOM,EAAmBV,EAAYI,EAAuB,CAC7D,WACA,OACA,WACA,QACA,MACA,SACA,SAOOO,EAAmBX,EAAYI,EAAuB,CAC7D,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,UAOOQ,EAAkBZ,EAAYW,EAAkB,CACvD,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,MACA,YACA,MACA,YACA,WACA,UACA,cACA,WACA,WACA,MACA,OACA,OACA,OACA,QACA,UAOOE,EAAqBb,EAAYW,EAAkB,CAC1D,iBACA,OACA,UACA,OACA,YACA,YACA,cACA,WACA,WACA,OACA,SAOOG,EAAmBd,EAAYW,EAAkB,CACxD,OACA,WACA,aAEOI,EAAmBf,EAAYI,EAAuB,CAC7D,WACA,UAOOY,EAAkBhB,EAAYI,EAAuB,CAC5D,cACA,gBAOOa,EAAeb,EAMfc,EAAelB,EAAYI,EAAuB,CACzD,UACA,UAOOe,EAAenB,EAAYI,EAAuB,CACzD,UACA,UACA,UACA,UAEOgB,EAAqBpB,EAAYI,EAAuB,CAC/D,SAEOiB,EAAgBrB,EAAYI,EAAuB,CAC1D,SAOOkB,EAAiBtB,EAAYI,EAAuB,CAC3D,gBACA,SA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","sources":["webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/elementContains.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/getParent.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/StyleOptionsState.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/Stylesheet.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/concatStyleSets.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/concatStyleSetsWithProps.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/extractStyleParts.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/fontFace.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/keyframes.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/mergeStyleSets.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/mergeStyles.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/getVendorSettings.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/transforms/kebabRules.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/transforms/prefixRules.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/transforms/provideUnits.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/transforms/rtlifyRules.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/styleToClassName.js","webpack://flonectors/./node_modules/@fluentui/merge-styles/lib/tokenizeWithParentheses.js","webpack://flonectors/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","webpack://flonectors/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useAsync.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useBoolean.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useConst.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useId.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useOnEvent.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/usePrevious.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useSetTimeout.js","webpack://flonectors/./node_modules/@fluentui/react-hooks/lib/useTarget.js","webpack://flonectors/./node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","webpack://flonectors/./node_modules/@fluentui/react/lib/common/DirectionalHint.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/BaseButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/CommandButton/CommandButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/ButtonThemes.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/PrimaryButton/PrimaryButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/Rectangle.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Callout/Callout.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/osDetector.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/mobileDetector.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/customizations/Customizer.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Icon/Icon.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Image/Image.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Image/Image.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Image/Image.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Image/Image.types.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","webpack://flonectors/./node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Layer/Layer.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Link/useLink.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Link/Link.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Link/Link.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Link/Link.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Popup/Popup.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.types.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.base.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.styles.js","webpack://flonectors/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/hoist.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/decorators/BaseDecorator.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","webpack://flonectors/./node_modules/@fluentui/react/lib/utilities/selection/SelectionZone.js","webpack://flonectors/./node_modules/@fluentui/set-version/lib/setVersion.js","webpack://flonectors/./node_modules/@fluentui/set-version/lib/index.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/motion/AnimationStyles.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/classNames/AnimationClassNames.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/utilities/buildClassMap.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/CommonStyles.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/zIndexes.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/getFocusStyle.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/hiddenContentStyle.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/getGlobalClassNames.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/theme.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/GeneralStyles.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/styles/getPlaceholderStyles.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/utilities/icons.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/version.js","webpack://flonectors/./node_modules/@fluentui/style-utilities/lib/index.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/effects/FluentDepths.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/language.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/localStorage.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/createTheme.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/merge.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/mergeThemes.js","webpack://flonectors/./node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/Async.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/BaseComponent.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/DelayedRender.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/EventGroup.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/GlobalSettings.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/KeyCodes.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/aria.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/array.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/classNamesFunction.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/createMergedRef.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/css.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/customizations/Customizations.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/customizations/CustomizerContext.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/customizations/customizable.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/customizations/useCustomizationSettings.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/dom/getDocument.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/dom/getWindow.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/dom/on.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/dom/setSSR.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/focus.js","webpack://flonectors/./node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/getId.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/hoistStatics.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/appendFunction.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/initializeComponentRef.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/extendComponent.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/memoize.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/modalize.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/object.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/properties.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/rtl.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/scroll.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/selection/Selection.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/selection/Selection.types.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/sessionStorage.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/setFocusVisibility.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/styled.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/keyboard.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/useFocusRects.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/warn/warn.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","webpack://flonectors/./node_modules/@fluentui/utilities/lib/warn/warnDeprecations.js","webpack://flonectors/./node_modules/@microsoft/load-themed-styles/lib-es6/index.js","webpack://flonectors/./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack://flonectors/./node_modules/object-assign/index.js","webpack://flonectors/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://flonectors/./node_modules/react-dom/index.js","webpack://flonectors/./node_modules/react/cjs/react.production.min.js","webpack://flonectors/./node_modules/react/index.js","webpack://flonectors/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://flonectors/./node_modules/scheduler/index.js","webpack://flonectors/./node_modules/tslib/tslib.es6.js"],"sourcesContent":["import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n var isContained = false;\n if (parent && child) {\n if (allowVirtualParents) {\n if (parent === child) {\n isContained = true;\n }\n else {\n isContained = false;\n while (child) {\n var nextParent = getParent(child);\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n child = nextParent;\n }\n }\n }\n else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction) {\n if (!element || element === document.body) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n return (child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && child.parentNode)));\n}\n//# sourceMappingURL=getParent.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n var parent;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent) {\n var elementMatch = findElementRecursive(target, function (testElement) { return parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE); });\n return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n//# sourceMappingURL=portalContainsElement.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL) {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n/**\n * Gets the current RTL value.\n */\nexport function getRTL() {\n if (_rtl === undefined) {\n _rtl =\n typeof document !== 'undefined' &&\n !!document.documentElement &&\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nvar _rtl;\n_rtl = getRTL();\nexport function getStyleOptions() {\n return {\n rtl: getRTL(),\n };\n}\n//# sourceMappingURL=StyleOptionsState.js.map","import { __assign } from \"tslib\";\nexport var InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0,\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1,\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2,\n};\nvar STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nvar REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\nvar _global = {};\n// Grab window.\ntry {\n _global = window || {};\n}\ncatch (_a) {\n /* leave as blank object */\n}\nvar _stylesheet;\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nvar Stylesheet = /** @class */ (function () {\n function Stylesheet(config, serializedStylesheet) {\n var _a, _b, _c, _d, _e, _f;\n this._rules = [];\n this._preservedRules = [];\n this._counter = 0;\n this._keyToClassName = {};\n this._onInsertRuleCallbacks = [];\n this._onResetCallbacks = [];\n this._classNameToArgs = {};\n this._config = __assign({ \n // If there is no document we won't have an element to inject into.\n injectionMode: typeof document === 'undefined' ? InjectionMode.none : InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);\n this._classNameToArgs = (_a = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.classNameToArgs) !== null && _a !== void 0 ? _a : this._classNameToArgs;\n this._counter = (_b = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.counter) !== null && _b !== void 0 ? _b : this._counter;\n this._keyToClassName = (_d = (_c = this._config.classNameCache) !== null && _c !== void 0 ? _c : serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.keyToClassName) !== null && _d !== void 0 ? _d : this._keyToClassName;\n this._preservedRules = (_e = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.preservedRules) !== null && _e !== void 0 ? _e : this._preservedRules;\n this._rules = (_f = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.rules) !== null && _f !== void 0 ? _f : this._rules;\n }\n /**\n * Gets the singleton instance.\n */\n Stylesheet.getInstance = function () {\n _stylesheet = _global[STYLESHEET_SETTING];\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n var fabricConfig = (_global === null || _global === void 0 ? void 0 : _global.FabricConfig) || {};\n var stylesheet = new Stylesheet(fabricConfig.mergeStyles, fabricConfig.serializedStylesheet);\n _stylesheet = stylesheet;\n _global[STYLESHEET_SETTING] = stylesheet;\n }\n return _stylesheet;\n };\n /**\n * Serializes the Stylesheet instance into a format which allows rehydration on creation.\n * @returns string representation of `ISerializedStylesheet` interface.\n */\n Stylesheet.prototype.serialize = function () {\n return JSON.stringify({\n classNameToArgs: this._classNameToArgs,\n counter: this._counter,\n keyToClassName: this._keyToClassName,\n preservedRules: this._preservedRules,\n rules: this._rules,\n });\n };\n /**\n * Configures the stylesheet.\n */\n Stylesheet.prototype.setConfig = function (config) {\n this._config = __assign(__assign({}, this._config), config);\n };\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onReset = function (callback) {\n var _this = this;\n this._onResetCallbacks.push(callback);\n return function () {\n _this._onResetCallbacks = _this._onResetCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Configures an insert rule callback.\n *\n * @param callback - A callback which will be called when a rule is inserted.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onInsertRule = function (callback) {\n var _this = this;\n this._onInsertRuleCallbacks.push(callback);\n return function () {\n _this._onInsertRuleCallbacks = _this._onInsertRuleCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n Stylesheet.prototype.getClassName = function (displayName) {\n var namespace = this._config.namespace;\n var prefix = displayName || this._config.defaultPrefix;\n return \"\" + (namespace ? namespace + '-' : '') + prefix + \"-\" + this._counter++;\n };\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n Stylesheet.prototype.cacheClassName = function (className, key, args, rules) {\n this._keyToClassName[key] = className;\n this._classNameToArgs[className] = {\n args: args,\n rules: rules,\n };\n };\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n Stylesheet.prototype.classNameFromKey = function (key) {\n return this._keyToClassName[key];\n };\n /**\n * Gets all classnames cache with the stylesheet.\n */\n Stylesheet.prototype.getClassNameCache = function () {\n return this._keyToClassName;\n };\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.argsFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.args;\n };\n /**\n * Gets the rules associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.insertedRulesFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.rules;\n };\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n Stylesheet.prototype.insertRule = function (rule, preserve) {\n var injectionMode = this._config.injectionMode;\n var element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n if (preserve) {\n this._preservedRules.push(rule);\n }\n if (element) {\n switch (injectionMode) {\n case InjectionMode.insertNode:\n var sheet = element.sheet;\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n break;\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n }\n else {\n this._rules.push(rule);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (this._config.onInsertRule) {\n // eslint-disable-next-line deprecation/deprecation\n this._config.onInsertRule(rule);\n }\n this._onInsertRuleCallbacks.forEach(function (callback) { return callback(); });\n };\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n Stylesheet.prototype.getRules = function (includePreservedRules) {\n return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('');\n };\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n Stylesheet.prototype.reset = function () {\n this._rules = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n this._onResetCallbacks.forEach(function (callback) { return callback(); });\n };\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n Stylesheet.prototype.resetKeys = function () {\n this._keyToClassName = {};\n };\n Stylesheet.prototype._getStyleElement = function () {\n var _this = this;\n if (!this._styleElement && typeof document !== 'undefined') {\n this._styleElement = this._createStyleElement();\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n window.requestAnimationFrame(function () {\n _this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n };\n Stylesheet.prototype._createStyleElement = function () {\n var head = document.head;\n var styleElement = document.createElement('style');\n var nodeToInsertBefore = null;\n styleElement.setAttribute('data-merge-styles', 'true');\n var cspSettings = this._config.cspSettings;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n nodeToInsertBefore = this._lastStyleElement.nextElementSibling;\n }\n else {\n var placeholderStyleTag = this._findPlaceholderStyleTag();\n if (placeholderStyleTag) {\n nodeToInsertBefore = placeholderStyleTag.nextElementSibling;\n }\n else {\n nodeToInsertBefore = head.childNodes[0];\n }\n }\n head.insertBefore(styleElement, head.contains(nodeToInsertBefore) ? nodeToInsertBefore : null);\n this._lastStyleElement = styleElement;\n return styleElement;\n };\n Stylesheet.prototype._findPlaceholderStyleTag = function () {\n var head = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n };\n return Stylesheet;\n}());\nexport { Stylesheet };\n//# sourceMappingURL=Stylesheet.js.map","import { __spreadArray } from \"tslib\";\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n if (styleSets && styleSets.length === 1 && styleSets[0] && !styleSets[0].subComponentStyles) {\n return styleSets[0];\n }\n var mergedSet = {};\n // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n var workingSubcomponentStyles = {};\n for (var _a = 0, styleSets_1 = styleSets; _a < styleSets_1.length; _a++) {\n var currentSet = styleSets_1[_a];\n if (currentSet) {\n for (var prop in currentSet) {\n if (currentSet.hasOwnProperty(prop)) {\n if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n // subcomponent styles - style functions or objects\n var currentComponentStyles = currentSet.subComponentStyles;\n for (var subCompProp in currentComponentStyles) {\n if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n }\n else {\n workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n }\n }\n }\n continue;\n }\n // the as any casts below is a workaround for ts 2.8.\n // todo: remove cast to any in ts 2.9.\n var mergedValue = mergedSet[prop];\n var currentValue = currentSet[prop];\n if (mergedValue === undefined) {\n mergedSet[prop] = currentValue;\n }\n else {\n mergedSet[prop] = __spreadArray(__spreadArray([], (Array.isArray(mergedValue) ? mergedValue : [mergedValue])), (Array.isArray(currentValue) ? currentValue : [currentValue]));\n }\n }\n }\n }\n }\n if (Object.keys(workingSubcomponentStyles).length > 0) {\n mergedSet.subComponentStyles = {};\n var mergedSubStyles = mergedSet.subComponentStyles;\n var _loop_1 = function (subCompProp) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n var workingSet_1 = workingSubcomponentStyles[subCompProp];\n mergedSubStyles[subCompProp] = function (styleProps) {\n return concatStyleSets.apply(void 0, workingSet_1.map(function (styleFunctionOrObject) {\n return typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject;\n }));\n };\n }\n };\n // now we process the subcomponent styles if there are any\n for (var subCompProp in workingSubcomponentStyles) {\n _loop_1(subCompProp);\n }\n }\n return mergedSet;\n}\n//# sourceMappingURL=concatStyleSets.js.map","import { concatStyleSets } from './concatStyleSets';\n/**\n * Concatenates style sets into one, but resolves functional sets using the given props.\n * @param styleProps - Props used to resolve functional sets.\n * @param allStyles - Style sets, which can be functions or objects.\n */\nexport function concatStyleSetsWithProps(styleProps) {\n var allStyles = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n allStyles[_i - 1] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, allStyles_1 = allStyles; _a < allStyles_1.length; _a++) {\n var styles = allStyles_1[_a];\n if (styles) {\n result.push(typeof styles === 'function' ? styles(styleProps) : styles);\n }\n }\n if (result.length === 1) {\n return result[0];\n }\n else if (result.length) {\n // cliffkoh: I cannot figure out how to avoid the cast to any here.\n // It is something to do with the use of Omit in IStyleSet.\n // It might not be necessary once Omit becomes part of lib.d.ts (when we remove our own Omit and rely on\n // the official version).\n return concatStyleSets.apply(void 0, result);\n }\n return {};\n}\n//# sourceMappingURL=concatStyleSetsWithProps.js.map","import { Stylesheet } from './Stylesheet';\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n var objects = [];\n var stylesheet = Stylesheet.getInstance();\n function _processArgs(argsList) {\n for (var _i = 0, argsList_1 = argsList; _i < argsList_1.length; _i++) {\n var arg = argsList_1[_i];\n if (arg) {\n if (typeof arg === 'string') {\n if (arg.indexOf(' ') >= 0) {\n _processArgs(arg.split(' '));\n }\n else {\n var translatedArgs = stylesheet.argsFromClassName(arg);\n if (translatedArgs) {\n _processArgs(translatedArgs);\n }\n else {\n // Avoid adding the same class twice.\n if (classes.indexOf(arg) === -1) {\n classes.push(arg);\n }\n }\n }\n }\n else if (Array.isArray(arg)) {\n _processArgs(arg);\n }\n else if (typeof arg === 'object') {\n objects.push(arg);\n }\n }\n }\n }\n _processArgs(args);\n return {\n classes: classes,\n objects: objects,\n };\n}\n//# sourceMappingURL=extractStyleParts.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers a font face.\n * @public\n */\nexport function fontFace(font) {\n var stylesheet = Stylesheet.getInstance();\n var rule = serializeRuleEntries(getStyleOptions(), font);\n var className = stylesheet.classNameFromKey(rule);\n if (className) {\n return;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@font-face{\" + rule + \"}\", true);\n stylesheet.cacheClassName(name, rule, [], ['font-face', rule]);\n}\n//# sourceMappingURL=fontFace.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline) {\n var stylesheet = Stylesheet.getInstance();\n var rulesArray = [];\n for (var prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n var rules = rulesArray.join('');\n var className = stylesheet.classNameFromKey(rules);\n if (className) {\n return className;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@keyframes \" + name + \"{\" + rules + \"}\", true);\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n return name;\n}\n//# sourceMappingURL=keyframes.js.map","import { concatStyleSets } from './concatStyleSets';\nimport { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { applyRegistration, styleToRegistration } from './styleToClassName';\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n return mergeCssSets(styleSets, getStyleOptions());\n}\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(styleSets, options) {\n var classNameSet = { subComponentStyles: {} };\n var styleSet = styleSets[0];\n if (!styleSet && styleSets.length <= 1) {\n return { subComponentStyles: {} };\n }\n var concatenatedStyleSet = concatStyleSets.apply(void 0, styleSets);\n var registrations = [];\n for (var styleSetArea in concatenatedStyleSet) {\n if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {\n if (styleSetArea === 'subComponentStyles') {\n classNameSet.subComponentStyles = concatenatedStyleSet.subComponentStyles || {};\n continue;\n }\n var styles = concatenatedStyleSet[styleSetArea];\n var _a = extractStyleParts(styles), classes = _a.classes, objects = _a.objects;\n if (objects === null || objects === void 0 ? void 0 : objects.length) {\n var registration = styleToRegistration(options || {}, { displayName: styleSetArea }, objects);\n if (registration) {\n registrations.push(registration);\n classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n }\n }\n else {\n classNameSet[styleSetArea] = classes.join(' ');\n }\n }\n }\n for (var _i = 0, registrations_1 = registrations; _i < registrations_1.length; _i++) {\n var registration = registrations_1[_i];\n if (registration) {\n applyRegistration(registration, options === null || options === void 0 ? void 0 : options.specificityMultiplier);\n }\n }\n return classNameSet;\n}\n//# sourceMappingURL=mergeStyleSets.js.map","import { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { styleToClassName } from './styleToClassName';\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return mergeCss(args, getStyleOptions());\n}\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(args, options) {\n var styleArgs = args instanceof Array ? args : [args];\n var _a = extractStyleParts(styleArgs), classes = _a.classes, objects = _a.objects;\n if (objects.length) {\n classes.push(styleToClassName(options || {}, objects));\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=mergeStyles.js.map","var _vendorSettings;\nexport function getVendorSettings() {\n var _a;\n if (!_vendorSettings) {\n var doc = typeof document !== 'undefined' ? document : undefined;\n var nav = typeof navigator !== 'undefined' ? navigator : undefined;\n var userAgent = (_a = nav === null || nav === void 0 ? void 0 : nav.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n }\n else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n return _vendorSettings;\n}\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings) {\n _vendorSettings = vendorSettings;\n}\n//# sourceMappingURL=getVendorSettings.js.map","var rules = {};\nexport function kebabRules(rulePairs, index) {\n var rule = rulePairs[index];\n if (rule.charAt(0) !== '-') {\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n}\n//# sourceMappingURL=kebabRules.js.map","import { getVendorSettings } from '../getVendorSettings';\nvar autoPrefixNames = {\n 'user-select': 1,\n};\nexport function prefixRules(rulePairs, index) {\n var vendorSettings = getVendorSettings();\n var name = rulePairs[index];\n if (autoPrefixNames[name]) {\n var value = rulePairs[index + 1];\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n//# sourceMappingURL=prefixRules.js.map","var NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\nexport function provideUnits(rulePairs, index) {\n var name = rulePairs[index];\n var value = rulePairs[index + 1];\n if (typeof value === 'number') {\n var isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name) > -1;\n var isVariableOrPrefixed = name.indexOf('--') > -1;\n var unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n rulePairs[index + 1] = \"\" + value + unit;\n }\n}\n//# sourceMappingURL=provideUnits.js.map","var _a;\nvar LEFT = 'left';\nvar RIGHT = 'right';\nvar NO_FLIP = '@noflip';\nvar NAME_REPLACEMENTS = (_a = {},\n _a[LEFT] = RIGHT,\n _a[RIGHT] = LEFT,\n _a);\nvar VALUE_REPLACEMENTS = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options, rulePairs, index) {\n if (options.rtl) {\n var name_1 = rulePairs[index];\n if (!name_1) {\n return;\n }\n var value = rulePairs[index + 1];\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n }\n else if (name_1.indexOf(LEFT) >= 0) {\n rulePairs[index] = name_1.replace(LEFT, RIGHT);\n }\n else if (name_1.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name_1.replace(RIGHT, LEFT);\n }\n else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n }\n else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n }\n else if (NAME_REPLACEMENTS[name_1]) {\n rulePairs[index] = NAME_REPLACEMENTS[name_1];\n }\n else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n }\n else {\n switch (name_1) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value, partIndex) {\n var parts = value.split(' ');\n var numberVal = parseInt(parts[partIndex], 10);\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n return parts.join(' ');\n}\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value) {\n if (typeof value === 'string') {\n var parts = value.split(' ');\n if (parts.length === 4) {\n return parts[0] + \" \" + parts[3] + \" \" + parts[2] + \" \" + parts[1];\n }\n }\n return value;\n}\n//# sourceMappingURL=rtlifyRules.js.map","import { __spreadArray } from \"tslib\";\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { tokenizeWithParentheses } from './tokenizeWithParentheses';\nvar DISPLAY_NAME = 'displayName';\nfunction getDisplayName(rules) {\n var rootStyle = rules && rules['&'];\n return rootStyle ? rootStyle.displayName : undefined;\n}\nvar globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals) {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n var replacementInfo = [];\n var findGlobal = /\\:global\\((.+?)\\)/g;\n var match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map(function (v) { return \":global(\" + v.trim() + \")\"; })\n .join(', '),\n ]);\n }\n }\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce(function (selector, _a) {\n var matchIndex = _a[0], matchEndIndex = _a[1], replacement = _a[2];\n var prefix = selector.slice(0, matchIndex);\n var suffix = selector.slice(matchEndIndex);\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\nfunction expandSelector(newSelector, currentSelector) {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n }\n else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n }\n else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n return newSelector;\n}\nfunction extractSelector(currentSelector, rules, selector, value) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (selector.indexOf('@') === 0) {\n selector = selector + '{' + currentSelector;\n extractRules([value], rules, selector);\n }\n else if (selector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(selector)\n .split(',')\n .map(function (s) { return s.trim(); })\n .forEach(function (separatedSelector) {\n return extractRules([value], rules, expandSelector(separatedSelector, currentSelector));\n });\n }\n else {\n extractRules([value], rules, expandSelector(selector, currentSelector));\n }\n}\nfunction extractRules(args, rules, currentSelector) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (currentSelector === void 0) { currentSelector = '&'; }\n var stylesheet = Stylesheet.getInstance();\n var currentRules = rules[currentSelector];\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {\n var arg = args_1[_i];\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n var expandedRules = stylesheet.argsFromClassName(arg);\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector);\n }\n // Else if the arg is an array, we need to recurse in.\n }\n else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector);\n }\n else {\n for (var prop in arg) {\n if (arg.hasOwnProperty(prop)) {\n var propValue = arg[prop];\n if (prop === 'selectors') {\n // every child is a selector.\n var selectors = arg.selectors;\n for (var newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n extractSelector(currentSelector, rules, newSelector, selectors[newSelector]);\n }\n }\n }\n else if (typeof propValue === 'object') {\n // prop is a selector.\n if (propValue !== null) {\n extractSelector(currentSelector, rules, prop, propValue);\n }\n }\n else {\n if (propValue !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n expandQuads(currentRules, prop, propValue);\n }\n else {\n currentRules[prop] = propValue;\n }\n }\n }\n }\n }\n }\n }\n return rules;\n}\nfunction expandQuads(currentRules, name, value) {\n var parts = typeof value === 'string' ? tokenizeWithParentheses(value) : [value];\n if (parts.length === 0) {\n parts.push(value);\n }\n if (parts[parts.length - 1] === '!important') {\n // Remove !important from parts, and append it to each part individually\n parts = parts.slice(0, -1).map(function (p) { return p + ' !important'; });\n }\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\nfunction getKeyForRules(options, rules) {\n var serialized = [options.rtl ? 'rtl' : 'ltr'];\n var hasProps = false;\n for (var _i = 0, _a = rules.__order; _i < _a.length; _i++) {\n var selector = _a[_i];\n serialized.push(selector);\n var rulesForSelector = rules[selector];\n for (var propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n return hasProps ? serialized.join('') : undefined;\n}\nfunction repeatString(target, count) {\n if (count <= 0) {\n return '';\n }\n if (count === 1) {\n return target;\n }\n return target + repeatString(target, count - 1);\n}\nexport function serializeRuleEntries(options, ruleEntries) {\n if (!ruleEntries) {\n return '';\n }\n var allEntries = [];\n for (var entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n // Apply transforms.\n for (var i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n // Apply punctuation.\n for (var i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n return allEntries.join('');\n}\nexport function styleToRegistration(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var rules = extractRules(args);\n var key = getKeyForRules(options, rules);\n if (key) {\n var stylesheet = Stylesheet.getInstance();\n var registration = {\n className: stylesheet.classNameFromKey(key),\n key: key,\n args: args,\n };\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n var rulesToInsert = [];\n for (var _a = 0, _b = rules.__order; _a < _b.length; _a++) {\n var selector = _b[_a];\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n return registration;\n }\n return undefined;\n}\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration, specificityMultiplier) {\n if (specificityMultiplier === void 0) { specificityMultiplier = 1; }\n var stylesheet = Stylesheet.getInstance();\n var className = registration.className, key = registration.key, args = registration.args, rulesToInsert = registration.rulesToInsert;\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (var i = 0; i < rulesToInsert.length; i += 2) {\n var rules = rulesToInsert[i + 1];\n if (rules) {\n var selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(\".\" + registration.className, specificityMultiplier));\n // Insert. Note if a media query, we must close the query with a final bracket.\n var processedRule = selector + \"{\" + rules + \"}\" + (selector.indexOf('@') === 0 ? '}' : '');\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className, key, args, rulesToInsert);\n }\n}\nexport function styleToClassName(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var registration = styleToRegistration.apply(void 0, __spreadArray([options], args));\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n return registration.className;\n }\n return '';\n}\n//# sourceMappingURL=styleToClassName.js.map","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px 0 \")`\n * => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value) {\n var parts = [];\n var partStart = 0;\n var parens = 0;\n for (var i = 0; i < value.length; i++) {\n switch (value[i]) {\n case '(':\n parens++;\n break;\n case ')':\n if (parens) {\n parens--;\n }\n break;\n case '\\t':\n case ' ':\n if (!parens) {\n // Add the new part if it's not an empty string\n if (i > partStart) {\n parts.push(value.substring(partStart, i));\n }\n partStart = i + 1;\n }\n break;\n }\n }\n // Add the last part\n if (partStart < value.length) {\n parts.push(value.substring(partStart));\n }\n return parts;\n}\n//# sourceMappingURL=tokenizeWithParentheses.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, getWindow, findScrollableParent, createMergedRef, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n var event;\n if (typeof MouseEvent === 'function') {\n event = new MouseEvent('click', {\n ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n });\n }\n else {\n event = document.createEvent('MouseEvents');\n event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, window, // not using getWindow() since this can only be run client side\n 0, // detail\n 0, // screen x\n 0, // screen y\n 0, // client x\n 0, // client y\n ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n null);\n }\n target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n if (!focusZoneStyles) {\n focusZoneStyles = mergeStyles({\n selectors: {\n ':focus': {\n outline: 'none',\n },\n },\n }, focusZoneClass);\n }\n return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n __extends(FocusZone, _super);\n function FocusZone(props) {\n var _a, _b, _c, _d;\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._onFocus = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, \n // eslint-disable-next-line deprecation/deprecation\n doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n // eslint-disable-next-line deprecation/deprecation\n onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n var newActiveElement;\n if (isImmediateDescendant) {\n newActiveElement = ev.target;\n }\n else {\n var parentElement = ev.target;\n while (parentElement && parentElement !== _this._root.current) {\n if (isElementTabbable(parentElement) && _this._isImmediateDescendantOfZone(parentElement)) {\n newActiveElement = parentElement;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n }\n // If an inner focusable element should be focused when FocusZone container receives focus\n if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n var maybeElementToFocus = defaultTabbableElement &&\n typeof defaultTabbableElement === 'function' &&\n _this._root.current &&\n defaultTabbableElement(_this._root.current);\n // try to focus defaultTabbable element\n if (maybeElementToFocus && isElementTabbable(maybeElementToFocus)) {\n newActiveElement = maybeElementToFocus;\n maybeElementToFocus.focus();\n }\n else {\n // force focus on first focusable element\n _this.focus(true);\n if (_this._activeElement) {\n // set to null as new active element was handled in method above\n newActiveElement = null;\n }\n }\n }\n var initialElementFocused = !_this._activeElement;\n // If the new active element is a child of this zone and received focus,\n // update alignment an immediate descendant\n if (newActiveElement && newActiveElement !== _this._activeElement) {\n if (isImmediateDescendant || initialElementFocused) {\n _this._setFocusAlignment(newActiveElement, true, true);\n }\n _this._activeElement = newActiveElement;\n if (initialElementFocused) {\n _this._updateTabIndexes();\n }\n }\n if (onActiveElementChanged) {\n onActiveElementChanged(_this._activeElement, ev);\n }\n if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n ev.stopPropagation();\n }\n if (onFocus) {\n onFocus(ev);\n }\n else if (onFocusNotification) {\n onFocusNotification();\n }\n };\n _this._onBlur = function () {\n _this._setParkedFocus(false);\n };\n _this._onMouseDown = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var disabled = _this.props.disabled;\n if (disabled) {\n return;\n }\n var target = ev.target;\n var path = [];\n while (target && target !== _this._root.current) {\n path.push(target);\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n }\n while (path.length) {\n target = path.pop();\n if (target && isElementTabbable(target)) {\n _this._setActiveElement(target, true);\n }\n if (isElementFocusZone(target)) {\n // Stop here since the focus zone will take care of its own children.\n break;\n }\n }\n };\n /**\n * Handle the keystrokes.\n */\n _this._onKeyDown = function (ev, theme) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n if (disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the default has been prevented, do not process keyboard events.\n if (ev.isDefaultPrevented()) {\n return;\n }\n if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n // If this element has focus, it is being controlled by a parent.\n // Ignore the keystroke.\n return;\n }\n if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n _this._isImmediateDescendantOfZone(ev.target)) {\n // Try to focus\n var innerZone = _this._getFirstInnerZone();\n if (innerZone) {\n if (!innerZone.focus(true)) {\n return;\n }\n }\n else if (isElementFocusSubZone(ev.target)) {\n if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n return;\n }\n }\n else {\n return;\n }\n }\n else if (ev.altKey) {\n return;\n }\n else {\n // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n case KeyCodes.left:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusLeft(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.right:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusRight(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.up:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusUp()) {\n break;\n }\n }\n return;\n case KeyCodes.down:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusDown()) {\n break;\n }\n }\n return;\n case KeyCodes.pageDown:\n if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n break;\n }\n return;\n case KeyCodes.pageUp:\n if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n break;\n }\n return;\n case KeyCodes.tab:\n if (\n // eslint-disable-next-line deprecation/deprecation\n _this.props.allowTabKey ||\n _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n _this._isElementInput(ev.target))) {\n var focusChanged = false;\n _this._processingTabKey = true;\n if (direction === FocusZoneDirection.vertical ||\n !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n }\n else {\n var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n }\n _this._processingTabKey = false;\n if (focusChanged) {\n break;\n }\n else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n _this._activeElement = null;\n }\n }\n return;\n case KeyCodes.home:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, false))) {\n return false;\n }\n var firstChild = _this._root.current && _this._root.current.firstChild;\n if (_this._root.current &&\n firstChild &&\n _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n break;\n }\n return;\n case KeyCodes.end:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, true))) {\n return false;\n }\n var lastChild = _this._root.current && _this._root.current.lastChild;\n if (_this._root.current &&\n _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n break;\n }\n return;\n case KeyCodes.enter:\n if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n default:\n return;\n }\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._getHorizontalDistanceFromCenter = function (isForward, activeRect, targetRect) {\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n return 0;\n }\n return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n };\n // Manage componentRef resolution.\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('FocusZone', props, {\n rootProps: undefined,\n allowTabKey: 'handleTabKey',\n elementType: 'as',\n ariaDescribedBy: 'aria-describedby',\n ariaLabelledBy: 'aria-labelledby',\n });\n }\n _this._id = getId('FocusZone');\n _this._focusAlignment = {\n left: 0,\n top: 0,\n };\n _this._processingTabKey = false;\n var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n return _this;\n }\n /** Used for testing purposes only. */\n FocusZone.getOuterZones = function () {\n return _outerZones.size;\n };\n /**\n * Handle global tab presses so that we can patch tabindexes on the fly.\n * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n * for ref counting to work correctly!\n */\n FocusZone._onKeyDownCapture = function (ev) {\n // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n if (ev.which === KeyCodes.tab) {\n _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n }\n };\n FocusZone.prototype.componentDidMount = function () {\n var root = this._root.current;\n _allInstances[this._id] = this;\n if (root) {\n this._windowElement = getWindow(root);\n var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n if (isElementFocusZone(parentElement)) {\n this._isInnerZone = true;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n if (!this._isInnerZone) {\n _outerZones.add(this);\n if (this._windowElement && _outerZones.size === 1) {\n this._windowElement.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n }\n this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n // Assign initial tab indexes so that we can set initial focus as appropriate.\n this._updateTabIndexes();\n if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (this.props.defaultActiveElement) {\n // eslint-disable-next-line deprecation/deprecation\n this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n }\n if (this.props.shouldFocusOnMount) {\n this.focus();\n }\n }\n };\n FocusZone.prototype.componentDidUpdate = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n if (!this.props.preventFocusRestoration &&\n doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n // The element has been removed after the render, attempt to restore focus.\n var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n if (elementToFocus) {\n this._setActiveElement(elementToFocus, true);\n elementToFocus.focus();\n this._setParkedFocus(false);\n }\n else {\n // We had a focus path to restore, but now that path is unresolvable. Park focus\n // on the container until we can try again.\n this._setParkedFocus(true);\n }\n }\n };\n FocusZone.prototype.componentWillUnmount = function () {\n delete _allInstances[this._id];\n if (!this._isInnerZone) {\n _outerZones.delete(this);\n // If this is the last outer zone, remove the keydown listener.\n if (this._windowElement && _outerZones.size === 0) {\n this._windowElement.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n }\n if (this._root.current) {\n this._root.current.removeEventListener('blur', this._onBlur, true);\n }\n this._activeElement = null;\n this._defaultFocusElement = null;\n };\n FocusZone.prototype.render = function () {\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, tag = _a.as, elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n var divProps = getNativeProps(this.props, htmlElementProperties);\n var Tag = tag || elementType || 'div';\n // Note, right before rendering/reconciling proceeds, we need to record if focus\n // was in the zone before the update. This helper will track this and, if focus\n // was actually in the zone, what the index path to the element is at this time.\n // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n // the case the element was removed.\n this._evaluateFocusBeforeRender();\n // Only support RTL defined in global theme, not contextual theme/RTL.\n var theme = getTheme();\n return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n // Once the getClassName correctly memoizes inputs this should\n // be replaced so that className is passed to getRootClass and is included there so\n // the class names will always be in the same order.\n className: css(getRootClass(), className), \n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n };\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focus = function (forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (this._root.current) {\n if (!forceIntoFirstElement &&\n this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n this._isInnerZone) {\n var ownerZoneElement = this._getOwnerZone(this._root.current);\n if (ownerZoneElement !== this._root.current) {\n var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n return !!ownerZone && ownerZone.focusElement(this._root.current);\n }\n return false;\n }\n else if (!forceIntoFirstElement &&\n this._activeElement &&\n elementContains(this._root.current, this._activeElement) &&\n isElementTabbable(this._activeElement)) {\n this._activeElement.focus();\n return true;\n }\n else {\n var firstChild = this._root.current.firstChild;\n return this.focusElement(getNextElement(this._root.current, firstChild, true));\n }\n }\n return false;\n };\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusLast = function () {\n if (this._root.current) {\n var lastChild = this._root.current && this._root.current.lastChild;\n return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n }\n return false;\n };\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusElement = function (element, forceAlignment) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onBeforeFocus = _a.onBeforeFocus, shouldReceiveFocus = _a.shouldReceiveFocus;\n if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n return false;\n }\n if (element) {\n // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n this._setActiveElement(element, forceAlignment);\n if (this._activeElement) {\n this._activeElement.focus();\n }\n return true;\n }\n return false;\n };\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n * rather than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n FocusZone.prototype.setFocusAlignment = function (point) {\n this._focusAlignment = point;\n };\n FocusZone.prototype._evaluateFocusBeforeRender = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n if (doc) {\n var focusedElement = doc.activeElement;\n // Only update the index path if we are not parked on the root.\n if (focusedElement !== root) {\n var shouldRestoreFocus = elementContains(root, focusedElement, false);\n this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n }\n }\n };\n /**\n * When focus is in the zone at render time but then all focusable elements are removed,\n * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n * focus to the closest path from previous. If the user tabs away from the parked container,\n * we restore focusability to the pre-parked state.\n */\n FocusZone.prototype._setParkedFocus = function (isParked) {\n var root = this._root.current;\n if (root && this._isParked !== isParked) {\n this._isParked = isParked;\n if (isParked) {\n if (!this.props.allowFocusRoot) {\n this._parkedTabIndex = root.getAttribute('tabindex');\n root.setAttribute('tabindex', '-1');\n }\n root.focus();\n }\n else if (!this.props.allowFocusRoot) {\n if (this._parkedTabIndex) {\n root.setAttribute('tabindex', this._parkedTabIndex);\n this._parkedTabIndex = undefined;\n }\n else {\n root.removeAttribute('tabindex');\n }\n }\n }\n };\n FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n var previousActiveElement = this._activeElement;\n this._activeElement = element;\n if (previousActiveElement) {\n if (isElementFocusZone(previousActiveElement)) {\n this._updateTabIndexes(previousActiveElement);\n }\n previousActiveElement.tabIndex = -1;\n }\n if (this._activeElement) {\n if (!this._focusAlignment || forceAlignment) {\n this._setFocusAlignment(element, true, true);\n }\n this._activeElement.tabIndex = 0;\n }\n };\n FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n this.props.preventDefaultWhenHandled && ev.preventDefault();\n };\n /**\n * Walk up the dom try to find a focusable element.\n */\n FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n var target = targetElement;\n if (target === this._root.current) {\n return false;\n }\n do {\n if (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA') {\n return false;\n }\n if (this._isImmediateDescendantOfZone(target) &&\n target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n raiseClickFromKeyboardEvent(target, ev);\n return true;\n }\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n } while (target !== this._root.current);\n return false;\n };\n /**\n * Traverse to find first child zone.\n */\n FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n rootElement = rootElement || this._activeElement || this._root.current;\n if (!rootElement) {\n return null;\n }\n if (isElementFocusZone(rootElement)) {\n return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var child = rootElement.firstElementChild;\n while (child) {\n if (isElementFocusZone(child)) {\n return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var match = this._getFirstInnerZone(child);\n if (match) {\n return match;\n }\n child = child.nextElementSibling;\n }\n return null;\n };\n FocusZone.prototype._moveFocus = function (isForward, getDistanceFromCenter, ev, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n var candidateDistance = -1;\n var candidateElement = undefined;\n var changedFocus = false;\n var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n do {\n element = (isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element));\n if (isBidirectional) {\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n if (elementDistance === -1 && candidateDistance === -1) {\n candidateElement = element;\n break;\n }\n if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n if (candidateDistance >= 0 && elementDistance < 0) {\n break;\n }\n }\n }\n else {\n candidateElement = element;\n break;\n }\n } while (element);\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n else {\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n }\n return changedFocus;\n };\n FocusZone.prototype._moveFocusDown = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (this._moveFocus(true, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n if (targetRectTop < activeRectBottom) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusUp = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (this._moveFocus(false, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectBottom = Math.floor(targetRect.bottom);\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectTop = Math.floor(activeRect.top);\n if (targetRectBottom > activeRectTop) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusLeft = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(getRTL(theme), function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n // This is important, because we want to be comparing the top of the target rect\n // with the bottom of the active rect.\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.right <= activeRect.right &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = activeRect.right - targetRect.right;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusRight = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(!getRTL(theme), function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n // This is important, because we want to be comparing the bottom of the target rect\n // with the top of the active rect.\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.left >= activeRect.left &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = targetRect.left - activeRect.left;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var scrollableParent = findScrollableParent(element);\n if (!scrollableParent) {\n return false;\n }\n var candidateDistance = -1;\n var candidateElement = undefined;\n var targetTop = -1;\n var targetBottom = -1;\n var pagesize = scrollableParent.clientHeight;\n var activeRect = element.getBoundingClientRect();\n do {\n element = isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element);\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n break;\n }\n if (elementDistance > -1) {\n // for paging down\n if (isForward && targetRectTop > targetTop) {\n targetTop = targetRectTop;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (!isForward && targetRectBottom < targetBottom) {\n // for paging up\n targetBottom = targetRectBottom;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n }\n }\n } while (element);\n var changedFocus = false;\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n this._setFocusAlignment(candidateElement, false, true);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n return changedFocus;\n };\n FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n if (this.props.direction === FocusZoneDirection.bidirectional &&\n (!this._focusAlignment || isHorizontal || isVertical)) {\n var rect = element.getBoundingClientRect();\n var left = rect.left + rect.width / 2;\n var top_1 = rect.top + rect.height / 2;\n if (!this._focusAlignment) {\n this._focusAlignment = { left: left, top: top_1 };\n }\n if (isHorizontal) {\n this._focusAlignment.left = left;\n }\n if (isVertical) {\n this._focusAlignment.top = top_1;\n }\n }\n };\n FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n return this._getOwnerZone(element) === this._root.current;\n };\n FocusZone.prototype._getOwnerZone = function (element) {\n var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n if (isElementFocusZone(parentElement)) {\n return parentElement;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n return parentElement;\n };\n FocusZone.prototype._updateTabIndexes = function (element) {\n if (!this._activeElement &&\n this.props.defaultTabbableElement &&\n typeof this.props.defaultTabbableElement === 'function') {\n this._activeElement = this.props.defaultTabbableElement(this._root.current);\n }\n if (!element && this._root.current) {\n this._defaultFocusElement = null;\n element = this._root.current;\n if (this._activeElement && !elementContains(element, this._activeElement)) {\n this._activeElement = null;\n }\n }\n // If active element changes state to disabled, set it to null.\n // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n if (this._activeElement && !isElementTabbable(this._activeElement)) {\n this._activeElement = null;\n }\n var childNodes = element && element.children;\n for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n var child = childNodes[childIndex];\n if (!isElementFocusZone(child)) {\n // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n child.setAttribute(TABINDEX, '-1');\n }\n if (isElementTabbable(child)) {\n if (this.props.disabled) {\n child.setAttribute(TABINDEX, '-1');\n }\n else if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n // Disgusting IE hack. Sad face.\n child.setAttribute('focusable', 'false');\n }\n }\n else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n this._updateTabIndexes(child);\n }\n };\n FocusZone.prototype._isContentEditableElement = function (element) {\n return element && element.getAttribute('contenteditable') === 'true';\n };\n FocusZone.prototype._isElementInput = function (element) {\n if (element &&\n element.tagName &&\n (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n return true;\n }\n return false;\n };\n FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n // If a tab was used, we want to focus on the next element.\n if (!this._processingTabKey &&\n element &&\n element.type &&\n ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n var selectionStart = element.selectionStart;\n var selectionEnd = element.selectionEnd;\n var isRangeSelected = selectionStart !== selectionEnd;\n var inputValue = element.value;\n var isReadonly = element.readOnly;\n // We shouldn't lose focus in the following cases:\n // 1. There is range selected.\n // 2. When selection start is larger than 0 and it is backward and not readOnly.\n // 3. when selection start is not the end of length, it is forward and not readOnly.\n // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n // determined by calling the callback shouldInputLoseFocusOnArrowKey\n if (isRangeSelected ||\n (selectionStart > 0 && !isForward && !isReadonly) ||\n (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n (!!this.props.handleTabKey &&\n !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n return false;\n }\n }\n return true;\n };\n FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n };\n /**\n * Returns true if the element is a descendant of the FocusZone through a React portal.\n */\n FocusZone.prototype._portalContainsElement = function (element) {\n return element && !!this._root.current && portalContainsElement(element, this._root.current);\n };\n FocusZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusZone.defaultProps = {\n isCircularNavigation: false,\n direction: FocusZoneDirection.bidirectional,\n shouldRaiseClicks: true,\n };\n return FocusZone;\n}(React.Component));\nexport { FocusZone };\n//# sourceMappingURL=FocusZone.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0,\n /** All tabbing action is allowed */\n all: 1,\n /** Tabbing is allowed only on input elements */\n inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n /** Only react to up/down arrows. */\n FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n /** Only react to left/right arrows. */\n FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n /** React to all arrows. */\n FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n var async = useConst(function () { return new Async(); });\n // Function that returns a function in order to dispose the async instance on unmount\n React.useEffect(function () { return function () { return async.dispose(); }; }, [async]);\n return async;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\nexport function useBoolean(initialState) {\n var _a = React.useState(initialState), value = _a[0], setValue = _a[1];\n var setTrue = useConst(function () { return function () {\n setValue(true);\n }; });\n var setFalse = useConst(function () { return function () {\n setValue(false);\n }; });\n var toggle = useConst(function () { return function () {\n setValue(function (currentValue) { return !currentValue; });\n }; });\n return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];\n}\n//# sourceMappingURL=useBoolean.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n var ref = React.useRef();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? initialValue() : initialValue,\n };\n }\n return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n // getId should only be called once since it updates the global constant for the next ID value.\n // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n var ref = React.useRef(providedId);\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n return ref.current;\n}\n//# sourceMappingURL=useId.js.map","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n var refs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n var mergedCallback = React.useCallback(function (value) {\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n var ref = refs_1[_i];\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, __spreadArray([], refs));\n return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n React.useEffect(function () {\n var actualElement = element && 'current' in element ? element.current : element;\n if (!actualElement) {\n return;\n }\n var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Returns a wrapper function for `setTimeout` which automatically handles disposal.\n */\nexport var useSetTimeout = function () {\n var timeoutIds = useConst({});\n // Cleanup function.\n React.useEffect(function () { return function () {\n for (var _i = 0, _a = Object.keys(timeoutIds); _i < _a.length; _i++) {\n var id = _a[_i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n clearTimeout(id);\n }\n }; }, \n // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n [timeoutIds]);\n // Return wrapper which will auto cleanup.\n return useConst({\n setTimeout: function (func, duration) {\n var id = setTimeout(func, duration);\n timeoutIds[id] = 1;\n return id;\n },\n clearTimeout: function (id) {\n delete timeoutIds[id];\n clearTimeout(id);\n },\n });\n};\n//# sourceMappingURL=useSetTimeout.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n var previousTargetProp = React.useRef();\n var targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n var targetWindow = useWindow();\n // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n }\n else if ('stopPropagation' in target) {\n targetRef.current = target;\n }\n else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n }\n else if ('current' in target) {\n targetRef.current = target.current;\n }\n else {\n targetRef.current = target;\n }\n }\n previousTargetProp.current = target;\n }\n return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Context for providing the window.\n */\nexport var WindowContext = React.createContext({\n window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map","export var DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0,\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1,\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2,\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3,\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4,\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5,\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6,\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7,\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8,\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9,\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10,\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11,\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12,\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var actionButtonStyles = {\n root: {\n padding: DEFAULT_PADDING,\n height: DEFAULT_BUTTON_HEIGHT,\n color: theme.palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: '1px solid transparent',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n },\n rootHovered: {\n color: theme.palette.themePrimary,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b),\n },\n iconHovered: {\n color: theme.palette.themePrimary,\n },\n rootPressed: {\n color: theme.palette.black,\n },\n rootExpanded: {\n color: theme.palette.themePrimary,\n },\n iconPressed: {\n color: theme.palette.themeDarker,\n },\n rootDisabled: {\n color: theme.palette.neutralTertiary,\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n rootChecked: {\n color: theme.palette.black,\n },\n iconChecked: {\n color: theme.palette.themeDarker,\n },\n flexContainer: {\n justifyContent: 'flex-start',\n },\n icon: {\n color: theme.palette.themeDarkAlt,\n },\n iconDisabled: {\n color: 'inherit',\n },\n menuIcon: {\n color: theme.palette.neutralSecondary,\n },\n textContainer: {\n flexGrow: 0,\n },\n };\n return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n __extends(ActionButton, _super);\n function ActionButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ActionButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n ActionButton = __decorate([\n customizable('ActionButton', ['theme', 'styles'], true)\n ], ActionButton);\n return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n var _a, _b;\n var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n var isExpanded = expanded && !isSplit;\n return mergeStyleSets({\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n {\n selectors: (_a = {},\n _a[\":hover .\" + classNames.msButtonIcon] = styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n _a[\":hover .\" + classNames.msButtonMenuIcon] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n _a[':hover'] = styles.rootExpandedHovered,\n _a),\n },\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n _b[\":hover .\" + classNames.msButtonLabel] = styles.labelHovered,\n _b[\":hover .\" + classNames.msButtonIcon] = styles.iconHovered,\n _b[\":hover .\" + classNames.msButtonDescription] = styles.descriptionHovered,\n _b[\":hover .\" + classNames.msButtonMenuIcon] = styles.menuIconHovered,\n _b[':focus'] = styles.rootFocused,\n _b[':active'] = styles.rootPressed,\n _b[\":active .\" + classNames.msButtonIcon] = styles.iconPressed,\n _b[\":active .\" + classNames.msButtonDescription] = styles.descriptionPressed,\n _b[\":active .\" + classNames.msButtonMenuIcon] = styles.menuIconPressed,\n _b),\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n return {\n root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n !disabled && [\n {\n selectors: {\n ':focus': styles.splitButtonMenuFocused,\n },\n },\n ]),\n splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n selectors: {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n },\n ], !disabled &&\n !checked && [\n {\n selectors: {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n },\n ], disabled && styles.splitButtonContainerDisabled),\n icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n divider: mergeStyles(styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n __extends(BaseButton, _super);\n function BaseButton(props) {\n var _this = _super.call(this, props) || this;\n _this._buttonElement = React.createRef();\n _this._splitButtonContainer = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._renderedVisibleMenu = false;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onRenderIcon = function (buttonProps, defaultRender) {\n var iconProps = _this.props.iconProps;\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n if (iconProps.iconName) {\n return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n }\n if (imageProps) {\n return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n }\n return null;\n };\n _this._onRenderTextContents = function () {\n var _a = _this.props, text = _a.text, children = _a.children, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n if (text || typeof children === 'string' || secondaryText) {\n return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n onRenderText(_this.props, _this._onRenderText),\n onRenderDescription(_this.props, _this._onRenderDescription)));\n }\n return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n };\n _this._onRenderText = function () {\n var text = _this.props.text;\n var children = _this.props.children;\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n if (_this._hasText()) {\n return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n }\n return null;\n };\n _this._onRenderChildren = function () {\n var children = _this.props.children;\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n return children;\n };\n _this._onRenderDescription = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n };\n _this._onRenderAriaDescription = function () {\n var ariaDescription = _this.props.ariaDescription;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n };\n _this._onRenderMenuIcon = function (props) {\n var menuIconProps = _this.props.menuIconProps;\n return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n };\n _this._onRenderMenu = function (menuProps) {\n var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n return React.createElement(MenuType, __assign({}, menuProps));\n };\n _this._onDismissMenu = function (ev) {\n var menuProps = _this.props.menuProps;\n if (menuProps && menuProps.onDismiss) {\n menuProps.onDismiss(ev);\n }\n if (!ev || !ev.defaultPrevented) {\n _this._dismissMenu();\n }\n };\n _this._dismissMenu = function () {\n _this._menuShouldFocusOnMount = undefined;\n _this._menuShouldFocusOnContainer = undefined;\n _this.setState({ menuHidden: true });\n };\n _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n if (_this.props.menuProps) {\n _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n _this._menuShouldFocusOnMount = shouldFocusOnMount;\n _this._renderedVisibleMenu = true;\n _this.setState({ menuHidden: false });\n }\n };\n _this._onToggleMenu = function (shouldFocusOnContainer) {\n var shouldFocusOnMount = true;\n if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n shouldFocusOnMount = false;\n }\n _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n };\n _this._onSplitContainerFocusCapture = function (ev) {\n var container = _this._splitButtonContainer.current;\n // If the target is coming from the portal we do not need to set focus on the container.\n if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n return;\n }\n // We should never be able to focus the individual buttons in a split button. Focus\n // should always remain on the container.\n container.focus();\n };\n _this._onSplitButtonPrimaryClick = function (ev) {\n if (!_this.state.menuHidden) {\n _this._dismissMenu();\n }\n if (!_this._processingTouch && _this.props.onClick) {\n _this.props.onClick(ev);\n }\n else if (_this._processingTouch) {\n _this._onMenuClick(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n // explicity cancelling event so click won't fire after this\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuKeyDown(ev);\n }\n else if (_this.props.onKeyDown !== undefined) {\n _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onKeyUp = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onKeyPress = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseUp = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseDown = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onClick = function (ev) {\n if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuClick(ev);\n }\n else if (_this.props.onClick !== undefined) {\n _this.props.onClick(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onSplitButtonContainerKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n if (_this._buttonElement.current) {\n _this._buttonElement.current.click();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n _this._onMenuKeyDown(ev);\n }\n };\n _this._onMenuKeyDown = function (ev) {\n if (_this.props.disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n var onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n _this._onToggleMenu(false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n setFocusVisibility(true, ev.target);\n }\n if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n // We need to re-render the menu with shouldFocusOnMount as true.\n if (!_this.state.menuHidden && _this.props.menuProps) {\n var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n ? _this._menuShouldFocusOnMount\n : _this.props.menuProps.shouldFocusOnMount;\n if (!currentShouldFocusOnMount) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._menuShouldFocusOnMount = true;\n _this.forceUpdate();\n }\n }\n }\n };\n _this._onTouchStart = function () {\n if (_this._isSplitButton &&\n _this._splitButtonContainer.current &&\n !('onpointerdown' in _this._splitButtonContainer.current)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onMenuClick = function (ev) {\n var _a = _this.props, onMenuClick = _a.onMenuClick, menuProps = _a.menuProps;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof (menuProps === null || menuProps === void 0 ? void 0 : menuProps.shouldFocusOnContainer) === 'boolean'\n ? menuProps.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n if (!ev.defaultPrevented) {\n _this._onToggleMenu(shouldFocusOnContainer);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n _this._labelId = getId();\n _this._descriptionId = getId();\n _this._ariaDescriptionId = getId();\n _this.state = {\n menuHidden: true,\n };\n return _this;\n }\n Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n get: function () {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n },\n enumerable: false,\n configurable: true\n });\n BaseButton.prototype.render = function () {\n var _a;\n var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n // eslint-disable-next-line deprecation/deprecation\n _c = _b.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n var menuHidden = this.state.menuHidden;\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n var isPrimaryButtonDisabled = disabled || primaryDisabled;\n this._classNames = getClassNames\n ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n var tag = renderAsAnchor ? 'a' : 'button';\n var nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n 'disabled', // let disabled buttons be focused and styled as disabled.\n ]);\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n var ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n }\n else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n }\n else if (nativeProps['aria-describedby']) {\n ariaDescribedBy = nativeProps['aria-describedby'];\n }\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute)\n // and no ariaLabel is specified, set the labelledby element.\n // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n var ariaLabelledBy = undefined;\n if (nativeProps['aria-labelledby']) {\n ariaLabelledBy = nativeProps['aria-labelledby'];\n }\n else if (ariaDescribedBy && !resolvedAriaLabel) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n var buttonProps = assign(nativeProps, (_a = {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable\n },\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n _a));\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n }\n else if (this.props.menuProps) {\n var _e = this.props.menuProps.id, id = _e === void 0 ? this._labelId + \"-menu\" : _e;\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-controls': !menuHidden ? id : null,\n 'aria-haspopup': true,\n });\n }\n return this._onRenderContent(tag, buttonProps);\n };\n BaseButton.prototype.componentDidMount = function () {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n };\n BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n };\n BaseButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n BaseButton.prototype.focus = function () {\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true);\n this._splitButtonContainer.current.focus();\n }\n else if (this._buttonElement.current) {\n setFocusVisibility(true);\n this._buttonElement.current.focus();\n }\n };\n BaseButton.prototype.dismissMenu = function () {\n this._dismissMenu();\n };\n BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n };\n BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n var _this = this;\n var props = this.props;\n var Tag = tag;\n var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n // eslint-disable-next-line deprecation/deprecation\n _d = props.onRenderMenu, \n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n var keytipProps = props.keytipProps;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n onRenderIcon(props, _this._onRenderIcon),\n _this._onRenderTextContents(),\n onRenderAriaDescription(props, _this._onRenderAriaDescription),\n onRenderChildren(props, _this._onRenderChildren),\n !_this._isSplitButton &&\n (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n menuProps &&\n !menuProps.doNotLayer &&\n _this._shouldRenderMenu() &&\n onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n var Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n if (menuProps && menuProps.doNotLayer) {\n return (React.createElement(React.Fragment, null,\n Content,\n this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n }\n return (React.createElement(React.Fragment, null,\n Content,\n React.createElement(FocusRects, null)));\n };\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n BaseButton.prototype._shouldRenderMenu = function () {\n var menuHidden = this.state.menuHidden;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n }\n else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n return false;\n };\n BaseButton.prototype._hasText = function () {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n };\n BaseButton.prototype._getMenuProps = function (menuProps) {\n var persistMenu = this.props.persistMenu;\n var menuHidden = this.state.menuHidden;\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n }\n return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n };\n BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n var _this = this;\n var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n var keytipProps = this.props.keytipProps;\n var menuHidden = this.state.menuHidden;\n var classNames = getSplitButtonClassNames\n ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n assign(buttonProps, {\n onClick: undefined,\n onPointerDown: undefined,\n onPointerUp: undefined,\n tabIndex: -1,\n 'data-is-focusable': false,\n });\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n // Add additional props to apply on primary action button\n if (primaryActionButtonProps) {\n assign(buttonProps, primaryActionButtonProps);\n }\n var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n React.createElement(\"span\", { style: { display: 'flex' } },\n _this._onRenderContent(tag, buttonProps),\n _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n _this._onRenderSplitButtonDivider(classNames)))); };\n return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n };\n BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n if (classNames && classNames.divider) {\n var onClick = function (ev) {\n ev.stopPropagation();\n };\n return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n }\n return null;\n };\n BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n var menuHidden = this.state.menuHidden;\n var menuIconProps = this.props.menuIconProps;\n if (menuIconProps === undefined) {\n menuIconProps = {\n iconName: 'ChevronDown',\n };\n }\n var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n // Add data-ktp-execute-target to the split button if the keytip is defined\n return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n };\n BaseButton.prototype._onPointerDown = function (ev) {\n var onPointerDown = this.props.onPointerDown;\n if (onPointerDown) {\n onPointerDown(ev);\n }\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n BaseButton.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n // Touch and pointer events don't focus the button naturally,\n // so adding an imperative focus call to guarantee this behavior.\n _this.focus();\n }, TouchIdleDelay);\n };\n /**\n * Returns if the user hits a valid keyboard key to open the menu\n * @param ev - the keyboard event\n * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n */\n BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n if (this.props.menuTriggerKeyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === this.props.menuTriggerKeyCode;\n }\n else if (this.props.menuProps) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n }\n // Note: When enter is pressed, we will let the event continue to propagate\n // to trigger the onClick event on the button\n return false;\n };\n BaseButton.defaultProps = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n outline: 0,\n};\nvar iconStyle = function (fontSize) {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n var _a, _b;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var border = semanticColors.buttonBorder;\n var disabledBackground = semanticColors.disabledBackground;\n var disabledText = semanticColors.disabledText;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n boxSizing: 'border-box',\n border: '1px solid ' + border,\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n padding: '0 16px',\n borderRadius: effects.roundedCorner2,\n selectors: {\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > span': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n },\n ],\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n selectors: {\n ':hover': noOutline,\n ':focus': noOutline,\n },\n },\n ],\n iconDisabled: {\n color: disabledText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n menuIconDisabled: {\n color: disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n icon: iconStyle(fonts.mediumPlus.fontSize),\n menuIcon: iconStyle(fonts.small.fontSize),\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nvar DEFAULT_BUTTON_HEIGHT = '32px';\nvar DEFAULT_BUTTON_MIN_WIDTH = '80px';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var defaultButtonStyles = {\n root: {\n minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n height: DEFAULT_BUTTON_HEIGHT,\n },\n label: {\n fontWeight: FontWeights.semibold,\n },\n };\n return concatStyleSets(baseButtonStyles, defaultButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=DefaultButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar splitButtonDividerBaseStyles = function () {\n return {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n};\nexport function standardStyles(theme) {\n var _a, _b, _c, _d, _e;\n var s = theme.semanticColors, p = theme.palette;\n var buttonBackground = s.buttonBackground;\n var buttonBackgroundPressed = s.buttonBackgroundPressed;\n var buttonBackgroundHovered = s.buttonBackgroundHovered;\n var buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n var buttonText = s.buttonText;\n var buttonTextHovered = s.buttonTextHovered;\n var buttonTextDisabled = s.buttonTextDisabled;\n var buttonTextChecked = s.buttonTextChecked;\n var buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n return {\n root: {\n backgroundColor: buttonBackground,\n color: buttonText,\n },\n rootHovered: {\n backgroundColor: buttonBackgroundHovered,\n color: buttonTextHovered,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootPressed: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootExpanded: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootChecked: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootCheckedHovered: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextCheckedHovered,\n },\n rootDisabled: {\n color: buttonTextDisabled,\n backgroundColor: buttonBackgroundDisabled,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _b),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n border: 'none',\n },\n _c),\n },\n splitButtonMenuButton: {\n color: p.white,\n backgroundColor: 'transparent',\n selectors: {\n ':hover': {\n backgroundColor: p.neutralLight,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n },\n },\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.buttonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.buttonBackgroundDisabled,\n },\n },\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.neutralTertiaryAlt, selectors: (_e = {},\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _e) }),\n splitButtonDividerDisabled: {\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.buttonText,\n },\n splitButtonMenuIconDisabled: {\n color: s.buttonTextDisabled,\n },\n };\n}\nexport function primaryStyles(theme) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n var p = theme.palette, s = theme.semanticColors;\n return {\n root: {\n backgroundColor: s.primaryButtonBackground,\n border: \"1px solid \" + s.primaryButtonBackground,\n color: s.primaryButtonText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _a[\".\" + IsFocusVisibleClassName + \" &:focus\"] = {\n selectors: {\n ':after': {\n border: \"none\",\n outlineColor: p.white,\n },\n },\n },\n _a),\n },\n rootHovered: {\n backgroundColor: s.primaryButtonBackgroundHovered,\n border: \"1px solid \" + s.primaryButtonBackgroundHovered,\n color: s.primaryButtonTextHovered,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n },\n _b),\n },\n rootPressed: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n border: \"1px solid \" + s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n rootExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootCheckedHovered: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootDisabled: {\n color: s.primaryButtonTextDisabled,\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n },\n _e),\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.white, selectors: (_f = {},\n _f[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _f) }),\n splitButtonMenuButton: {\n backgroundColor: s.primaryButtonBackground,\n color: s.primaryButtonText,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _g[':hover'] = {\n backgroundColor: s.primaryButtonBackgroundHovered,\n selectors: (_h = {},\n _h[HighContrastSelector] = {\n color: 'Highlight',\n },\n _h),\n },\n _g),\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n },\n },\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.primaryButtonText,\n },\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n color: 'GrayText',\n },\n _j),\n },\n };\n}\n//# sourceMappingURL=ButtonThemes.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\n/**\n * {@docCategory Button}\n */\nvar DefaultButton = /** @class */ (function (_super) {\n __extends(DefaultButton, _super);\n function DefaultButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DefaultButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: getStyles(theme, styles, primary), onRenderDescription: nullRender })));\n };\n DefaultButton = __decorate([\n customizable('DefaultButton', ['theme', 'styles'], true)\n ], DefaultButton);\n return DefaultButton;\n}(React.Component));\nexport { DefaultButton };\n//# sourceMappingURL=DefaultButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var iconButtonStyles = {\n root: {\n padding: '0 4px',\n width: '32px',\n height: '32px',\n backgroundColor: 'transparent',\n border: 'none',\n color: semanticColors.link,\n },\n rootHovered: {\n color: palette.themeDarkAlt,\n backgroundColor: palette.neutralLighter,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootHasMenu: {\n width: 'auto',\n },\n rootPressed: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootExpanded: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootChecked: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootCheckedHovered: {\n color: palette.themeDark,\n backgroundColor: palette.neutralQuaternaryAlt,\n },\n rootDisabled: {\n color: palette.neutralTertiaryAlt,\n },\n };\n return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n __extends(IconButton, _super);\n function IconButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IconButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n };\n IconButton = __decorate([\n customizable('IconButton', ['theme', 'styles'], true)\n ], IconButton);\n return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { DefaultButton } from '../DefaultButton/DefaultButton';\n/**\n * {@docCategory Button}\n */\nvar PrimaryButton = /** @class */ (function (_super) {\n __extends(PrimaryButton, _super);\n function PrimaryButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrimaryButton.prototype.render = function () {\n return React.createElement(DefaultButton, __assign({}, this.props, { primary: true, onRenderDescription: nullRender }));\n };\n PrimaryButton = __decorate([\n customizable('PrimaryButton', ['theme', 'styles'], true)\n ], PrimaryButton);\n return PrimaryButton;\n}(React.Component));\nexport { PrimaryButton };\n//# sourceMappingURL=PrimaryButton.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n };\n var splitButtonDividerBaseStyles = {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n var splitButtonStyles = {\n splitButtonContainer: [\n getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 }),\n {\n display: 'inline-flex',\n selectors: {\n '.ms-Button--default': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n borderRight: 'none',\n },\n '.ms-Button--primary': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n border: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n '.ms-Button--primary + .ms-Button': {\n border: 'none',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n },\n _b),\n },\n },\n },\n ],\n splitButtonContainerHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n },\n _c),\n },\n '.ms-Button.is-disabled': {\n color: semanticColors.buttonTextDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n },\n },\n splitButtonContainerChecked: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n splitButtonContainerCheckedHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n splitButtonContainerFocused: {\n outline: 'none!important',\n },\n splitButtonMenuButton: (_g = {\n padding: 6,\n height: 'auto',\n boxSizing: 'border-box',\n borderRadius: 0,\n borderTopRightRadius: effects.roundedCorner2,\n borderBottomRightRadius: effects.roundedCorner2,\n border: \"1px solid \" + palette.neutralSecondaryAlt,\n borderLeft: 'none',\n outline: 'transparent',\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n verticalAlign: 'top',\n width: 32,\n marginLeft: -1,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0\n },\n _g[HighContrastSelector] = {\n '.ms-Button-menuIcon': {\n color: 'WindowText',\n },\n },\n _g),\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_h = {},\n _h[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _h) }),\n splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n },\n _j) }),\n splitButtonMenuButtonDisabled: {\n pointerEvents: 'none',\n border: 'none',\n selectors: (_k = {\n ':hover': {\n cursor: 'default',\n },\n '.ms-Button--primary': {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _l),\n },\n '.ms-Button-menuIcon': {\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n color: 'GrayText',\n },\n _m),\n }\n },\n _k[HighContrastSelector] = {\n color: 'GrayText',\n border: '1px solid GrayText',\n backgroundColor: 'Window',\n },\n _k),\n },\n splitButtonFlexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n splitButtonContainerDisabled: {\n outline: 'none',\n border: 'none',\n selectors: (_o = {},\n _o[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n },\n splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n };\n return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n Position[Position[\"top\"] = 0] = \"top\";\n Position[Position[\"bottom\"] = 1] = \"bottom\";\n Position[Position[\"start\"] = 2] = \"start\";\n Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n if (rect.top < boundingRect.top) {\n return false;\n }\n if (rect.bottom > boundingRect.bottom) {\n return false;\n }\n if (rect.left < boundingRect.left) {\n return false;\n }\n if (rect.right > boundingRect.right) {\n return false;\n }\n return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n var outOfBounds = [];\n if (rect.top < boundingRect.top) {\n outOfBounds.push(RectangleEdge.top);\n }\n if (rect.bottom > boundingRect.bottom) {\n outOfBounds.push(RectangleEdge.bottom);\n }\n if (rect.left < boundingRect.left) {\n outOfBounds.push(RectangleEdge.left);\n }\n if (rect.right > boundingRect.right) {\n outOfBounds.push(RectangleEdge.right);\n }\n return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n rect[RectangleEdge[edge]] = value;\n return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n var edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n if (edge > 0) {\n return value;\n }\n else {\n return value * -1;\n }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect, edge, newValue, maintainSize) {\n if (maintainSize === void 0) { maintainSize = true; }\n var difference = _getEdgeValue(rect, edge) - newValue;\n var returnRect = _setEdgeValue(rect, edge, newValue);\n if (maintainSize) {\n returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n }\n return returnRect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n if (gap === void 0) { gap = 0; }\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n if (gap === void 0) { gap = 0; }\n var oppositeEdge = targetEdge * -1;\n var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect, bounds) {\n var breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n var total = 0;\n for (var _i = 0, breakingEdges_1 = breakingEdges; _i < breakingEdges_1.length; _i++) {\n var edge = breakingEdges_1[_i];\n total += Math.pow(_getRelativeEdgeDifference(rect, bounds, edge), 2);\n }\n return total;\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, gap) {\n if (gap === void 0) { gap = 0; }\n var directions = [\n RectangleEdge.left,\n RectangleEdge.right,\n RectangleEdge.bottom,\n RectangleEdge.top,\n ];\n // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n if (getRTL()) {\n directions[0] *= -1;\n directions[1] *= -1;\n }\n var currentEstimate = rect;\n var currentEdge = positionData.targetEdge;\n var currentAlignment = positionData.alignmentEdge;\n // keep track of least bad option, in case no sides fit\n var oobDegree;\n var bestEdge = currentEdge;\n var bestAlignment = currentAlignment;\n // Keep switching sides until one is found with enough space.\n // If all sides don't fit then return the unmodified element.\n for (var i = 0; i < 4; i++) {\n if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n // update least-bad edges\n var currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n if (!oobDegree || currentOOBDegree < oobDegree) {\n oobDegree = currentOOBDegree;\n bestEdge = currentEdge;\n bestAlignment = currentAlignment;\n }\n directions.splice(directions.indexOf(currentEdge), 1);\n if (directions.length > 0) {\n if (directions.indexOf(currentEdge * -1) > -1) {\n currentEdge = currentEdge * -1;\n }\n else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n }\n }\n else {\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n };\n }\n }\n // nothing fits, use least-bad option\n currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n return {\n elementRectangle: currentEstimate,\n targetEdge: bestEdge,\n alignmentEdge: bestAlignment,\n };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n var oppositeEdge = alignmentEdge * -1;\n var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n var elementEstimate = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n }\n var outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n // if directionalHintFixed is specified, we need to force the target edge to not change\n // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n var fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n if (outOfBounds.length > 0) {\n if (alignTargetEdge) {\n // The edge opposite to the alignment edge might be out of bounds.\n // Flip alignment to see if we can get it within bounds.\n if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n }\n else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding, preserveEdge) {\n for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n var direction = outOfBoundsEdges_1[_i];\n var edgeAttempt = void 0;\n // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n // this is because _alignEdges will move the opposite edge\n if (preserveEdge && preserveEdge === direction * -1) {\n edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n elementEstimate.forcedInBounds = true;\n }\n else {\n edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n var inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n // only update estimate if the attempt didn't break out of the opposite bounding edge\n if (!inBounds) {\n edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n elementEstimate.forcedInBounds = true;\n }\n }\n elementEstimate.elementRectangle = edgeAttempt;\n }\n return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n var elementMiddle = _getCenterValue(rect, edge);\n var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var estimatedElementPosition = new Rectangle(elementToPosition.left, elementToPosition.right, elementToPosition.top, elementToPosition.bottom);\n var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n // if no alignment edge is provided it's supposed to be centered.\n if (!alignmentEdge) {\n var targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n }\n else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n }\n else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\n }\n}\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n if (bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n return returnEdge * -1;\n }\n return returnEdge;\n}\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle, edge, bounds) {\n return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge, forceWithinBounds) {\n var returnValue = {};\n var hostRect = _getRectangleFromElement(hostElement);\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n // in the usual direction\n if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n // if the positioned element will still overflow, return all four edges with in-bounds values\n if (forceWithinBounds) {\n returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge * -1);\n returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge * -1);\n }\n return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n if (getRTL()) {\n // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n }\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n var targetCenter = _getCenterValue(target, targetEdge);\n var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n }\n else {\n return negativeEdge;\n }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n }\n else {\n return _adjustFitWithinBounds(estimatedElementPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget);\n }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n var targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n var returnValue = {};\n var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n // only show the beak if the callout is not fully covering the target\n var beakEdgeDifference = _getRelativeEdgeDifference(elementPosition.elementRectangle, elementPosition.targetRectangle, targetEdge);\n var showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n return {\n elementPosition: __assign({}, returnValue),\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n hideBeak: !showBeak,\n };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n var target = elementPosition.targetRectangle;\n /**\n * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n */\n var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n }\n else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n var clientRect = element.getBoundingClientRect();\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n var targetRectangle;\n if (target) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!target.preventDefault) {\n var ev = target;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n // eslint-disable-next-line no-extra-boolean-cast\n }\n else if (!!target.getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n var rectOrPoint = target;\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPoint.left || rectOrPoint.x;\n // eslint-disable-next-line deprecation/deprecation\n var top_1 = rectOrPoint.top || rectOrPoint.y;\n var right = rectOrPoint.right || left;\n var bottom = rectOrPoint.bottom || top_1;\n targetRectangle = new Rectangle(left, right, top_1, bottom);\n }\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n var direction = outOfBounds_1[_i];\n targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n }\n }\n }\n else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n var maxHeight = 0;\n var directionalHint = DirectionalDictionary[targetEdge];\n // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n // that's the direction that the callout will expand in.\n // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n // is (bottom of target) - (top of screen) - gapSpace.\n var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n }\n else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n }\n else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions) {\n var gap = props.gapSpace ? props.gapSpace : 0;\n var targetRect = _getTargetRect(boundingRect, props.target);\n var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, props.directionalHintFixed, props.coverTarget);\n return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge, positionedElement.forcedInBounds);\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions) {\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, doNotFinalizeReturnEdge) {\n var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n var gap = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n var positionProps = props;\n positionProps.gapSpace = gap;\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions);\n var beakPositioned = _positionBeak(beakWidth, positionedElement);\n var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions) {\n return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n _finalizePositionData: _finalizePositionData,\n _finalizeBeakPosition: _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds: _positionElementWithinBounds,\n _positionBeak: _positionBeak,\n _getPositionData: _getPositionData,\n _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions) {\n return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions) {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions) {\n return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget) {\n if (gapSpace === void 0) { gapSpace = 0; }\n var mouseTarget = target;\n var elementTarget = target;\n var rectOrPointTarget = target;\n var targetRect;\n var boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPointTarget.left || rectOrPointTarget.x;\n // eslint-disable-next-line deprecation/deprecation\n var top = rectOrPointTarget.top || rectOrPointTarget.y;\n var right = rectOrPointTarget.right || left;\n var bottom = rectOrPointTarget.bottom || top;\n // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n }\n else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, right, top, bottom);\n }\n else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n var segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\n // Identify if we're dealing with single screen scenarios.\n if (segments === undefined || segments.length <= 1) {\n return {\n top: 0,\n left: 0,\n right: targetWindow.innerWidth,\n bottom: targetWindow.innerHeight,\n width: targetWindow.innerWidth,\n height: targetWindow.innerHeight,\n };\n }\n // Logic for determining dual screen scenarios.\n var x = 0;\n var y = 0;\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!target.getBoundingClientRect) {\n var clientRect = target.getBoundingClientRect();\n x = (clientRect.left + clientRect.right) / 2;\n y = (clientRect.top + clientRect.bottom) / 2;\n }\n // If the target is not null get x-axis and y-axis coordinates directly.\n else if (target !== null) {\n // eslint-disable-next-line deprecation/deprecation\n x = target.left || target.x;\n // eslint-disable-next-line deprecation/deprecation\n y = target.top || target.y;\n }\n var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n var segment = segments_1[_i];\n if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n bounds = {\n top: segment.top,\n left: segment.left,\n right: segment.right,\n bottom: segment.bottom,\n width: segment.width,\n height: segment.height,\n };\n }\n }\n return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\n//# sourceMappingURL=positioning.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n function Rectangle(left, right, top, bottom) {\n if (left === void 0) { left = 0; }\n if (right === void 0) { right = 0; }\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * Calculated automatically by subtracting the right from left\n */\n get: function () {\n return this.right - this.left;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n get: function () {\n return this.bottom - this.top;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n Rectangle.prototype.equals = function (rect) {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n };\n return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { css, divProperties, elementContains, focusFirstChild, getNativeProps, on, shallowCompare, getPropsWithDefaults, } from '../../Utilities';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'CalloutContentBase';\nvar ANIMATIONS = (_a = {},\n _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n _a);\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = {\n opacity: 0,\n filter: 'opacity(0)',\n pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar DEFAULT_PROPS = {\n preventDismissOnLostFocus: false,\n preventDismissOnScroll: false,\n preventDismissOnResize: false,\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n};\nvar getClassNames = classNamesFunction({\n disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(_a, targetRef, targetWindow) {\n var bounds = _a.bounds, _b = _a.minPagePadding, minPagePadding = _b === void 0 ? DEFAULT_PROPS.minPagePadding : _b, target = _a.target;\n var _c = React.useState(false), targetWindowResized = _c[0], setTargetWindowResized = _c[1];\n var cachedBounds = React.useRef();\n var getBounds = React.useCallback(function () {\n if (!cachedBounds.current || targetWindowResized) {\n var currentBounds = typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n if (!currentBounds && targetWindow) {\n currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n currentBounds = {\n top: currentBounds.top + minPagePadding,\n left: currentBounds.left + minPagePadding,\n right: currentBounds.right - minPagePadding,\n bottom: currentBounds.bottom - minPagePadding,\n width: currentBounds.width - minPagePadding * 2,\n height: currentBounds.height - minPagePadding * 2,\n };\n }\n cachedBounds.current = currentBounds;\n targetWindowResized && setTargetWindowResized(false);\n }\n return cachedBounds.current;\n }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n var async = useAsync();\n useOnEvent(targetWindow, 'resize', async.debounce(function () {\n setTargetWindowResized(true);\n }, 500, { leading: true }));\n return getBounds;\n}\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(_a, getBounds, positions) {\n var _b;\n var calloutMaxHeight = _a.calloutMaxHeight, finalHeight = _a.finalHeight, directionalHint = _a.directionalHint, directionalHintFixed = _a.directionalHintFixed, hidden = _a.hidden;\n var _c = React.useState(), maxHeight = _c[0], setMaxHeight = _c[1];\n var _d = (_b = positions === null || positions === void 0 ? void 0 : positions.elementPosition) !== null && _b !== void 0 ? _b : {}, top = _d.top, bottom = _d.bottom;\n React.useEffect(function () {\n var _a;\n var _b = (_a = getBounds()) !== null && _a !== void 0 ? _a : {}, topBounds = _b.top, bottomBounds = _b.bottom;\n if (!calloutMaxHeight && !hidden) {\n if (typeof top === 'number' && bottomBounds) {\n setMaxHeight(bottomBounds - top);\n }\n else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n setMaxHeight(bottomBounds - topBounds - bottom);\n }\n }\n else if (calloutMaxHeight) {\n setMaxHeight(calloutMaxHeight);\n }\n else {\n setMaxHeight(undefined);\n }\n }, [bottom, calloutMaxHeight, finalHeight, directionalHint, directionalHintFixed, getBounds, hidden, positions, top]);\n return maxHeight;\n}\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(props, hostElement, calloutElement, targetRef, getBounds) {\n var _a = React.useState(), positions = _a[0], setPositions = _a[1];\n var positionAttempts = React.useRef(0);\n var previousTarget = React.useRef();\n var async = useAsync();\n var hidden = props.hidden, target = props.target, finalHeight = props.finalHeight, calloutMaxHeight = props.calloutMaxHeight, onPositioned = props.onPositioned, directionalHint = props.directionalHint;\n React.useEffect(function () {\n if (!hidden) {\n var timerId_1 = async.requestAnimationFrame(function () {\n var _a, _b;\n if (hostElement.current && calloutElement) {\n var currentProps = __assign(__assign({}, props), { target: targetRef.current, bounds: getBounds() });\n // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n var dupeCalloutElement = calloutElement.cloneNode(true);\n dupeCalloutElement.style.maxHeight = calloutMaxHeight ? \"\" + calloutMaxHeight : '';\n dupeCalloutElement.style.visibility = 'hidden';\n (_a = calloutElement.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(dupeCalloutElement);\n var previousPositions = previousTarget.current === target ? positions : undefined;\n // If there is a finalHeight given then we assume that the user knows and will handle\n // additional positioning adjustments so we should call positionCard\n var newPositions = finalHeight\n ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions)\n : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions);\n // clean up duplicate calloutElement\n (_b = calloutElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(dupeCalloutElement);\n // Set the new position only when the positions do not exist or one of the new callout positions\n // is different. The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions) ||\n (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)) {\n // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n // and we should stop trying to reposition to prevent a stack overflow.\n positionAttempts.current++;\n setPositions(newPositions);\n }\n else if (positionAttempts.current > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n positionAttempts.current = 0;\n onPositioned === null || onPositioned === void 0 ? void 0 : onPositioned(positions);\n }\n }\n }, calloutElement);\n previousTarget.current = target;\n return function () {\n async.cancelAnimationFrame(timerId_1);\n previousTarget.current = undefined;\n };\n }\n else {\n // When the callout is hidden, clear position state so that it is not accidentally used next render.\n setPositions(undefined);\n positionAttempts.current = 0;\n }\n }, [\n hidden,\n directionalHint,\n async,\n calloutElement,\n calloutMaxHeight,\n hostElement,\n targetRef,\n finalHeight,\n getBounds,\n onPositioned,\n positions,\n props,\n target,\n ]);\n return positions;\n}\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(_a, positions, calloutElement) {\n var hidden = _a.hidden, setInitialFocus = _a.setInitialFocus;\n var async = useAsync();\n var hasPositions = !!positions;\n React.useEffect(function () {\n if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n var timerId_2 = async.requestAnimationFrame(function () { return focusFirstChild(calloutElement); }, calloutElement);\n return function () { return async.cancelAnimationFrame(timerId_2); };\n }\n }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(_a, positions, hostElement, targetRef, targetWindow) {\n var hidden = _a.hidden, onDismiss = _a.onDismiss, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnScroll = _a.preventDismissOnScroll, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnResize = _a.preventDismissOnResize, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnLostFocus = _a.preventDismissOnLostFocus, dismissOnTargetClick = _a.dismissOnTargetClick, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus, preventDismissOnEvent = _a.preventDismissOnEvent;\n var isMouseDownOnPopup = React.useRef(false);\n var async = useAsync();\n var mouseDownHandlers = useConst([\n function () {\n isMouseDownOnPopup.current = true;\n },\n function () {\n isMouseDownOnPopup.current = false;\n },\n ]);\n var positionsExists = !!positions;\n React.useEffect(function () {\n var dismissOnScroll = function (ev) {\n if (positionsExists && !preventDismissOnScroll) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnResize = function (ev) {\n if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnLostFocus = function (ev) {\n if (!preventDismissOnLostFocus) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnClickOrScroll = function (ev) {\n var eventPaths = ev.composedPath ? ev.composedPath() : [];\n var target = eventPaths.length > 0 ? eventPaths[0] : ev.target;\n var isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n isMouseDownOnPopup.current = false;\n return;\n }\n if ((!targetRef.current && isEventTargetOutsideCallout) ||\n (ev.target !== targetWindow &&\n isEventTargetOutsideCallout &&\n (!targetRef.current ||\n 'stopPropagation' in targetRef.current ||\n dismissOnTargetClick ||\n (target !== targetRef.current && !elementContains(targetRef.current, target))))) {\n if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n return;\n }\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnTargetWindowBlur = function (ev) {\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.hasFocus()) &&\n ev.relatedTarget === null) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n // This is added so the callout will dismiss when the window is scrolled\n // but not when something inside the callout is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the callout.\n var disposablesPromise = new Promise(function (resolve) {\n async.setTimeout(function () {\n if (!hidden && targetWindow) {\n var disposables_1 = [\n on(targetWindow, 'scroll', dismissOnScroll, true),\n on(targetWindow, 'resize', dismissOnResize, true),\n on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n ];\n resolve(function () {\n disposables_1.forEach(function (dispose) { return dispose(); });\n });\n }\n }, 0);\n });\n return function () {\n disposablesPromise.then(function (dispose) { return dispose(); });\n };\n }, [\n hidden,\n async,\n hostElement,\n targetRef,\n targetWindow,\n onDismiss,\n shouldDismissOnWindowFocus,\n dismissOnTargetClick,\n preventDismissOnLostFocus,\n preventDismissOnResize,\n preventDismissOnScroll,\n positionsExists,\n preventDismissOnEvent,\n ]);\n return mouseDownHandlers;\n}\nexport var CalloutContentBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.shouldRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted;\n var hostElement = React.useRef(null);\n var _c = React.useState(null), calloutElement = _c[0], setCalloutElement = _c[1];\n var calloutCallback = React.useCallback(function (calloutEl) {\n setCalloutElement(calloutEl);\n }, []);\n var rootRef = useMergedRefs(hostElement, forwardedRef);\n var _d = useTarget(props.target, {\n current: calloutElement,\n }), targetRef = _d[0], targetWindow = _d[1];\n var getBounds = useBounds(props, targetRef, targetWindow);\n var positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds);\n var maxHeight = useMaxHeight(props, getBounds, positions);\n var _e = useDismissHandlers(props, positions, hostElement, targetRef, targetWindow), mouseDownOnPopup = _e[0], mouseUpOnPopup = _e[1];\n // do not set both top and bottom css props from positions\n // instead, use maxHeight\n var isForcedInBounds = (positions === null || positions === void 0 ? void 0 : positions.elementPosition.top) && (positions === null || positions === void 0 ? void 0 : positions.elementPosition.bottom);\n var cssPositions = __assign(__assign({}, positions === null || positions === void 0 ? void 0 : positions.elementPosition), { maxHeight: maxHeight });\n if (isForcedInBounds) {\n cssPositions.bottom = undefined;\n }\n useAutoFocus(props, positions, calloutElement);\n React.useEffect(function () {\n if (!hidden) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n }, [hidden]);\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!targetWindow) {\n return null;\n }\n var overflowYHidden = hideOverflow;\n var beakVisible = isBeakVisible && !!target;\n var classNames = getClassNames(styles, {\n theme: props.theme,\n className: className,\n overflowYHidden: overflowYHidden,\n calloutWidth: calloutWidth,\n positions: positions,\n beakWidth: beakWidth,\n backgroundColor: backgroundColor,\n calloutMaxWidth: calloutMaxWidth,\n calloutMinWidth: calloutMinWidth,\n doNotLayer: doNotLayer,\n });\n var overflowStyle = __assign(__assign({ maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%' }, style), (overflowYHidden && { overflowY: 'hidden' }));\n var visibilityStyle = props.hidden ? { visibility: 'hidden' } : undefined;\n // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n return (React.createElement(\"div\", { ref: rootRef, className: classNames.container, style: visibilityStyle },\n React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? __assign({}, cssPositions) : OFF_SCREEN_STYLE, \n // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n tabIndex: -1, ref: calloutCallback }),\n beakVisible && React.createElement(\"div\", { className: classNames.beak, style: getBeakPosition(positions) }),\n beakVisible && React.createElement(\"div\", { className: classNames.beakCurtain }),\n React.createElement(Popup\n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n , { \n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n role: props.role, \"aria-roledescription\": props['aria-roledescription'], ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, className: classNames.calloutMain, onDismiss: props.onDismiss, onMouseDown: mouseDownOnPopup, onMouseUp: mouseUpOnPopup, onRestoreFocus: props.onRestoreFocus, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle }, children))));\n}), function (previousProps, nextProps) {\n if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(previousProps, nextProps);\n});\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions) {\n var _a, _b;\n var beakPositionStyle = __assign(__assign({}, (_a = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _a === void 0 ? void 0 : _a.elementPosition), { display: ((_b = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _b === void 0 ? void 0 : _b.hideBeak) ? 'none' : undefined });\n if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n return beakPositionStyle;\n}\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(prevElementPositions, newElementPosition) {\n return (comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition));\n}\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions, newElementPositions) {\n for (var key in newElementPositions) {\n if (newElementPositions.hasOwnProperty(key)) {\n var oldPositionEdge = prevElementPositions[key];\n var newPositionEdge = newElementPositions[key];\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n return true;\n}\nCalloutContentBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\nvar GlobalClassNames = {\n container: 'ms-Callout-container',\n root: 'ms-Callout',\n beak: 'ms-Callout-beak',\n beakCurtain: 'ms-Callout-beakCurtain',\n calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n container: [\n classNames.container,\n {\n position: 'relative',\n },\n ],\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'absolute',\n display: 'flex',\n zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n boxSizing: 'border-box',\n borderRadius: effects.roundedCorner2,\n boxShadow: effects.elevation16,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n _a),\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n !!calloutMinWidth && { minWidth: calloutMinWidth },\n ],\n beak: [\n classNames.beak,\n {\n position: 'absolute',\n backgroundColor: semanticColors.menuBackground,\n boxShadow: 'inherit',\n border: 'inherit',\n boxSizing: 'border-box',\n transform: 'rotate(45deg)',\n },\n getBeakStyle(beakWidth),\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n beakCurtain: [\n classNames.beakCurtain,\n {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: semanticColors.menuBackground,\n borderRadius: effects.roundedCorner2,\n },\n ],\n calloutMain: [\n classNames.calloutMain,\n {\n backgroundColor: semanticColors.menuBackground,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n width: '100%',\n borderRadius: effects.roundedCorner2,\n },\n overflowYHidden && {\n overflowY: 'hidden',\n },\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, {\n scope: 'CalloutContent',\n});\n//# sourceMappingURL=CalloutContent.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nexport var Callout = React.forwardRef(function (_a, forwardedRef) {\n var layerProps = _a.layerProps, doNotLayer = _a.doNotLayer, rest = __rest(_a, [\"layerProps\", \"doNotLayer\"]);\n var content = React.createElement(CalloutContent, __assign({}, rest, { doNotLayer: doNotLayer, ref: forwardedRef }));\n return doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n});\nCallout.displayName = 'Callout';\n//# sourceMappingURL=Callout.js.map","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 { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n var _a;\n if (typeof isMacResult === 'undefined' || reset) {\n var win = getWindow();\n // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n var userAgent = (_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n // Item is not checkable.\n return null;\n}\nexport function hasSubmenu(item) {\n // eslint-disable-next-line deprecation/deprecation\n return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar defaultIconRenderer = function (props) {\n var item = props.item, classNames = props.classNames;\n var iconProps = item.iconProps;\n return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderItemIcon = function (props) {\n var item = props.item, hasIcons = props.hasIcons;\n if (!hasIcons) {\n return null;\n }\n if (item.onRenderIcon) {\n return item.onRenderIcon(props, defaultIconRenderer);\n }\n return defaultIconRenderer(props);\n};\nvar renderCheckMarkIcon = function (_a) {\n var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n var isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n var onClick = function (e) { return onCheckmarkClick(item, e); };\n return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: onClick }));\n }\n return null;\n};\nvar renderItemName = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n /* eslint-disable deprecation/deprecation */\n if (item.text || item.name) {\n return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n }\n /* eslint-enable deprecation/deprecation */\n return null;\n};\nvar renderSecondaryText = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n if (item.secondaryText) {\n return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n }\n return null;\n};\nvar renderSubMenuIcon = function (_a) {\n var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n if (hasSubmenu(item)) {\n return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n }\n return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n __extends(ContextualMenuItemBase, _super);\n function ContextualMenuItemBase(props) {\n var _this = _super.call(this, props) || this;\n _this.openSubMenu = function () {\n var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n if (getSubmenuTarget) {\n var submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n _this.dismissSubMenu = function () {\n var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n _this.dismissMenu = function (dismissAll) {\n var dismissMenu = _this.props.dismissMenu;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemBase.prototype.render = function () {\n var _a = this.props, item = _a.item, classNames = _a.classNames;\n var renderContent = item.onRenderContent || this._renderLayout;\n return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n renderCheckMarkIcon: renderCheckMarkIcon,\n renderItemIcon: renderItemIcon,\n renderItemName: renderItemName,\n renderSecondaryText: renderSecondaryText,\n renderSubMenuIcon: renderSubMenuIcon,\n })));\n };\n ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n return (React.createElement(React.Fragment, null,\n defaultRenders.renderCheckMarkIcon(props),\n defaultRenders.renderItemIcon(props),\n defaultRenders.renderItemName(props),\n defaultRenders.renderSecondaryText(props),\n defaultRenders.renderSubMenuIcon(props)));\n };\n return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n return mergeStyleSets({\n wrapper: {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n divider: {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n var _a, _b, _c, _d, _e;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n var menuItemStyles = {\n item: [\n fonts.medium,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n boxSizing: 'border-box',\n },\n ],\n divider: {\n display: 'block',\n height: '1px',\n backgroundColor: ContextualMenuItemDividerColor,\n position: 'relative',\n },\n root: [\n getFocusStyle(theme),\n fonts.medium,\n {\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n border: 'none',\n width: '100%',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n display: 'block',\n cursor: 'pointer',\n padding: '0px 8px 0 4px',\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n // ensure disabled text looks different than enabled\n color: 'GrayText',\n opacity: 1,\n },\n _a),\n },\n rootHovered: {\n backgroundColor: ContextualMenuItemBackgroundHoverColor,\n color: ContextualMenuItemTextHoverColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDarkAlt,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootFocused: {\n backgroundColor: palette.white,\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootPressed: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDark,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n selectors: (_b = {\n '.ms-ContextualMenu-submenuIcon': (_c = {},\n _c[HighContrastSelector] = {\n // icons inside of anchor tags are not properly inheriting color in high contrast\n color: 'inherit',\n },\n _c)\n },\n _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _b),\n },\n linkContent: {\n whiteSpace: 'nowrap',\n height: 'inherit',\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n },\n anchorLink: {\n padding: '0px 8px 0 4px',\n textRendering: 'auto',\n color: 'inherit',\n letterSpacing: 'normal',\n wordSpacing: 'normal',\n textTransform: 'none',\n textIndent: '0px',\n textShadow: 'none',\n textDecoration: 'none',\n boxSizing: 'border-box',\n },\n label: {\n margin: '0 4px',\n verticalAlign: 'middle',\n display: 'inline-block',\n flexGrow: '1',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\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[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _a[\".\" + IsFocusVisibleClassName + \" &:hover\"] = { background: 'inherit;' },\n _a),\n },\n ],\n className,\n ],\n splitPrimary: [\n styles.root,\n {\n width: \"calc(100% - \" + 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 ~ .\" + classNames.splitMenu] = styles.rootHovered,\n _b[':active'] = styles.rootPressed,\n _b[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _b[\".\" + 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[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _c[\".\" + 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[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + 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 { isItemDisabled, hasSubmenu, getMenuItemAriaRole } 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 && 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 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 = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, onItemMouseLeave = _a.onItemMouseLeave, expandedMenuItemKey = _a.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 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\": item.isChecked || item.checked, \"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 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 };\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-hidden': 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 * as React from 'react';\nexport var MenuContext = React.createContext({});\nexport var useMenuContext = function () {\n return React.useContext(MenuContext);\n};\n//# sourceMappingURL=MenuContext.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, assign, classNamesFunction, css, getFirstFocusable, getLastFocusable, getRTL, KeyCodes, shouldWrapFocus, isIOS, isMac, memoizeFunction, getPropsWithDefaults, getDocument, } 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};\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_1 = items; _i < items_1.length; _i++) {\n var subItem = items_1[_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));\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) {\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;\n if (!hidden) {\n previousActiveElement.current = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement;\n }\n else if (previousActiveElement.current) {\n tryFocusPreviousActiveElement({\n originalElement: previousActiveElement.current,\n containsFocus: true,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n previousActiveElement.current = undefined;\n }\n }, [hidden, targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement, tryFocusPreviousActiveElement]);\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)[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-\" + 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 return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\" + 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 return renderMenuItem(contextualMenuItem, itemsIndex, itemsIndex, sectionProps.items.length, hasCheckmarks, hasIcons, menuClassNames);\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 = 0;\n for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n var item = items_2[_i];\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount_1 += itemCount;\n }\n }\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 }\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","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n return function (oldScopedSettings) {\n var newScopedSettings = __assign({}, oldScopedSettings);\n for (var scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n }\n }\n return newScopedSettings;\n };\n}\n//# sourceMappingURL=mergeSettings.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n *\n * @deprecated This component is deprecated for purpose of applying theme to components\n * as of `@fluentui/react` version 8. Use `ThemeProvider` for applying theme instead.\n */\nvar Customizer = /** @class */ (function (_super) {\n __extends(Customizer, _super);\n function Customizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n return _this;\n }\n Customizer.prototype.componentDidMount = function () {\n Customizations.observe(this._onCustomizationChange);\n };\n Customizer.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onCustomizationChange);\n };\n Customizer.prototype.render = function () {\n var _this = this;\n var contextTransform = this.props.contextTransform;\n return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n var newContext = mergeCustomizations(_this.props, parentContext);\n if (contextTransform) {\n newContext = contextTransform(newContext);\n }\n return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n }));\n };\n return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n return {\n customizations: {\n settings: mergeSettings(customizations.settings, props.settings),\n scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n inCustomizerContext: true,\n },\n };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getNativeProps, divProperties, classNamesFunction, getDocument, memoizeFunction, getRTL, Customizer, useFocusRects, } 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 useFocusRects(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(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 theme = props.theme, className = props.className, applyTheme = props.applyTheme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: theme.palette.neutralPrimary,\n selectors: {\n '& button': inheritFont,\n '& input': inheritFont,\n '& textarea': inheritFont,\n },\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 { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n var _a = getIcon(iconName) || {\n subset: {},\n code: undefined,\n }, code = _a.code, subset = _a.subset;\n if (!code) {\n return null;\n }\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n mergeImageProps: subset.mergeImageProps,\n };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n var accessibleName = props['aria-label'] || props.title;\n var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n ? {\n role: mergeImageProps ? undefined : 'img',\n }\n : {\n 'aria-hidden': true,\n };\n var finalChildren = children;\n if (mergeImageProps) {\n if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n finalChildren = React.cloneElement(children, { alt: accessibleName });\n }\n }\n return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n // https://github.com/microsoft/fluentui/issues/10449\n style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n /**\n * Render using the fabric icon font.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"default\"] = 0] = \"default\";\n /**\n * Render using an image, where imageProps would be used.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"image\"] = 1] = \"image\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Default\"] = 100000] = \"Default\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n // Icon is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Icon.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n __extends(IconBase, _super);\n function IconBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoadingStateChange = function (state) {\n if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n _this.props.imageProps.onLoadingStateChange(state);\n }\n if (state === ImageLoadState.error) {\n _this.setState({ imageLoadError: true });\n }\n };\n _this.state = {\n imageLoadError: false,\n };\n return _this;\n }\n IconBase.prototype.render = function () {\n var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n var isImage = \n // eslint-disable-next-line deprecation/deprecation\n !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n iconClassName: iconClassName,\n isImage: isImage,\n isPlaceholder: isPlaceholder,\n });\n var RootType = isImage ? 'span' : 'i';\n var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n 'aria-label',\n ]);\n var imageLoadError = this.state.imageLoadError;\n var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n var ImageType = (imageLoadError && imageErrorAs) || Image;\n // eslint-disable-next-line deprecation/deprecation\n var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n var hasName = !!(accessibleName ||\n this.props['aria-labelledby'] ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby']);\n var containerProps = hasName\n ? {\n role: isImage || mergeImageProps ? undefined : 'img',\n 'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n }\n : {\n 'aria-hidden': true,\n };\n var finalIconContentChildren = iconContentChildren;\n if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n finalIconContentChildren = React.cloneElement(iconContentChildren, {\n alt: accessibleName,\n });\n }\n return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n };\n return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n//# sourceMappingURL=Icon.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n var className = props.className, imageProps = props.imageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'aria-label',\n 'aria-labelledby',\n 'title',\n 'aria-describedby',\n ]);\n var altText = imageProps.alt || props['aria-label'];\n var hasName = altText ||\n props['aria-labelledby'] ||\n props.title ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby'] ||\n imageProps.title;\n // move naming or describing attributes from the container (where they are invalid) to the image\n var imageNameProps = {\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n title: props.title,\n };\n var containerProps = hasName\n ? {}\n : {\n 'aria-hidden': true,\n };\n return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n React.createElement(Image, __assign({}, imageNameProps, imageProps, { alt: hasName ? altText : '' }))));\n};\n//# sourceMappingURL=ImageIcon.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar SVG_REGEX = /\\.svg$/i;\nvar KEY_PREFIX = 'fabricImage';\nfunction useLoadState(props, imageElement) {\n var onLoadingStateChange = props.onLoadingStateChange, onLoad = props.onLoad, onError = props.onError, src = props.src;\n var _a = React.useState(ImageLoadState.notLoaded), loadState = _a[0], setLoadState = _a[1];\n useIsomorphicLayoutEffect(function () {\n // If the src property changes, reset the load state\n // (does nothing if the load state is already notLoaded)\n setLoadState(ImageLoadState.notLoaded);\n }, [src]);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n React.useEffect(function () {\n if (loadState === ImageLoadState.notLoaded) {\n // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n // .complete, because .complete will also be set to true if the image breaks. However,\n // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n // to checking .complete for these images.\n var isLoaded = imageElement.current\n ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n (imageElement.current.complete && SVG_REGEX.test(src))\n : false;\n if (isLoaded) {\n setLoadState(ImageLoadState.loaded);\n }\n }\n });\n React.useEffect(function () {\n onLoadingStateChange === null || onLoadingStateChange === void 0 ? void 0 : onLoadingStateChange(loadState);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n }, [loadState]);\n var onImageLoaded = React.useCallback(function (ev) {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(ev);\n if (src) {\n setLoadState(ImageLoadState.loaded);\n }\n }, [src, onLoad]);\n var onImageError = React.useCallback(function (ev) {\n onError === null || onError === void 0 ? void 0 : onError(ev);\n setLoadState(ImageLoadState.error);\n }, [onError]);\n return [loadState, onImageLoaded, onImageError];\n}\nexport var ImageBase = React.forwardRef(function (props, forwardedRef) {\n var frameElement = React.useRef();\n var imageElement = React.useRef();\n var _a = useLoadState(props, imageElement), loadState = _a[0], onImageLoaded = _a[1], onImageError = _a[2];\n var imageProps = getNativeProps(props, imgProperties, [\n 'width',\n 'height',\n ]);\n var src = props.src, alt = props.alt, width = props.width, height = props.height, _b = props.shouldFadeIn, shouldFadeIn = _b === void 0 ? true : _b, shouldStartVisible = props.shouldStartVisible, className = props.className, imageFit = props.imageFit, role = props.role, maximizeFrame = props.maximizeFrame, styles = props.styles, theme = props.theme, loading = props.loading;\n var coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n width: width,\n height: height,\n maximizeFrame: maximizeFrame,\n shouldFadeIn: shouldFadeIn,\n shouldStartVisible: shouldStartVisible,\n isLoaded: loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n isLandscape: coverStyle === ImageCoverStyle.landscape,\n isCenter: imageFit === ImageFit.center,\n isCenterContain: imageFit === ImageFit.centerContain,\n isCenterCover: imageFit === ImageFit.centerCover,\n isContain: imageFit === ImageFit.contain,\n isCover: imageFit === ImageFit.cover,\n isNone: imageFit === ImageFit.none,\n isError: loadState === ImageLoadState.error,\n isNotImageFit: imageFit === undefined,\n });\n // If image dimensions aren't specified, the natural size of the image is used.\n return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: frameElement },\n React.createElement(\"img\", __assign({}, imageProps, { onLoad: onImageLoaded, onError: onImageError, key: KEY_PREFIX + props.src || '', className: classNames.image, ref: useMergedRefs(imageElement, forwardedRef), src: src, alt: alt, role: role, loading: loading }))));\n});\nImageBase.displayName = 'ImageBase';\nfunction useCoverStyle(props, loadState, imageElement, frameElement) {\n var previousLoadState = React.useRef(loadState);\n var coverStyle = React.useRef();\n if (coverStyle === undefined ||\n (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)) {\n coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n }\n previousLoadState.current = loadState;\n return coverStyle.current;\n}\nfunction computeCoverStyle(props, loadState, imageElement, frameElement) {\n var imageFit = props.imageFit, width = props.width, height = props.height;\n // Do not compute cover style if it was already specified in props\n if (props.coverStyle !== undefined) {\n return props.coverStyle;\n }\n else if (loadState === ImageLoadState.loaded &&\n (imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n imageElement.current &&\n frameElement.current) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n var desiredRatio = void 0;\n if (typeof width === 'number' &&\n typeof height === 'number' &&\n imageFit !== ImageFit.centerContain &&\n imageFit !== ImageFit.centerCover) {\n desiredRatio = width / height;\n }\n else {\n desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n }\n // Examine the source image to determine its original ratio.\n var naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n return ImageCoverStyle.landscape;\n }\n }\n return ImageCoverStyle.portrait;\n}\n//# sourceMappingURL=Image.base.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Image',\n rootMaximizeFrame: 'ms-Image--maximizeFrame',\n image: 'ms-Image-image',\n imageCenter: 'ms-Image-image--center',\n imageContain: 'ms-Image-image--contain',\n imageCover: 'ms-Image-image--cover',\n imageCenterContain: 'ms-Image-image--centerContain',\n imageCenterCover: 'ms-Image-image--centerCover',\n imageNone: 'ms-Image-image--none',\n imageLandscape: 'ms-Image-image--landscape',\n imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ImageFitStyles = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n };\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n var window = getWindow();\n var supportsObjectFit = window !== undefined && window.navigator.msMaxTouchPoints === undefined;\n var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n overflow: 'hidden',\n },\n maximizeFrame && [\n classNames.rootMaximizeFrame,\n {\n height: '100%',\n width: '100%',\n },\n ],\n isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n position: 'relative',\n },\n className,\n ],\n image: [\n classNames.image,\n {\n display: 'block',\n opacity: 0,\n },\n isLoaded && [\n 'is-loaded',\n {\n opacity: 1,\n },\n ],\n isCenter && [classNames.imageCenter, ImageFitStyles],\n isContain && [\n classNames.imageContain,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCenterContain && [\n classNames.imageCenterContain,\n isLandscape && {\n maxWidth: '100%',\n },\n !isLandscape && {\n maxHeight: '100%',\n },\n ImageFitStyles,\n ],\n isCenterCover && [\n classNames.imageCenterCover,\n isLandscape && {\n maxHeight: '100%',\n },\n !isLandscape && {\n maxWidth: '100%',\n },\n ImageFitStyles,\n ],\n isNone && [\n classNames.imageNone,\n {\n width: 'auto',\n height: 'auto',\n },\n ],\n isNotImageFit && [\n !!width &&\n !height && {\n height: 'auto',\n width: '100%',\n },\n !width &&\n !!height && {\n height: '100%',\n width: 'auto',\n },\n !!width &&\n !!height && {\n height: '100%',\n width: '100%',\n },\n ],\n isLandscape && classNames.imageLandscape,\n !isLandscape && classNames.imagePortrait,\n !isLoaded && 'is-notLoaded',\n shouldFadeIn && 'is-fadeIn',\n isError && 'is-error',\n ],\n };\n};\n//# sourceMappingURL=Image.styles.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n scope: 'Image',\n}, true);\nImage.displayName = 'Image';\n//# sourceMappingURL=Image.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n /**\n * The image has been loaded successfully.\n */\n ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n /**\n * An error has been encountered while loading the image.\n */\n ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __spreadArray } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n return keySequences.reduce(function (prevValue, keySequence) {\n return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n var overflowSequenceLen = overflowKeySequences.length;\n var overflowSequence = __spreadArray([], overflowKeySequences).pop();\n var newKeySequences = __spreadArray([], keySequences);\n return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n var describedby = ' ' + KTP_LAYER_ID;\n if (!keySequences.length) {\n // Return just the layer ID\n return describedby;\n }\n return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n var uniqueId = React.useRef();\n var keytipProps = options.keytipProps\n ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n var keytipManager = useConst(KeytipManager.getInstance());\n var prevOptions = usePrevious(options);\n // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n useIsomorphicLayoutEffect(function () {\n if (uniqueId.current &&\n keytipProps &&\n ((prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.keytipProps) !== options.keytipProps || (prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.disabled) !== options.disabled)) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n useIsomorphicLayoutEffect(function () {\n // Register Keytip in KeytipManager\n if (keytipProps) {\n uniqueId.current = keytipManager.register(keytipProps);\n }\n return function () {\n // Unregister Keytip in KeytipManager\n keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n };\n // this is meant to run only at mount, and updates are handled separately\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var nativeKeytipProps = {\n ariaDescribedBy: undefined,\n keytipId: undefined,\n };\n if (keytipProps) {\n nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n }\n return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n // Add the parent overflow sequence if necessary\n var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n // Construct aria-describedby and data-ktp-id attributes\n var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n var keySequences = __spreadArray([], newKeytipProps.keySequences);\n if (newKeytipProps.overflowSetSequence) {\n keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n }\n var keytipId = sequencesToID(keySequences);\n return {\n ariaDescribedBy: ariaDescribedBy,\n keytipId: keytipId,\n };\n}\n//# sourceMappingURL=useKeytipData.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n var _a;\n var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n return children((_a = {},\n _a[DATAKTP_TARGET] = keytipId,\n _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n _a['aria-describedby'] = ariaDescribedBy,\n _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import * as React from 'react';\nvar PortalCompatContext = /*#__PURE__*/React.createContext( // eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction () {\n return function () {};\n});\nexport var PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n return React.useContext(PortalCompatContext);\n}\n//# sourceMappingURL=PortalCompatContext.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar defaultHostId = 'fluent-default-layer-host';\nvar _defaultHostSelector = \"#\" + defaultHostId;\n/**\n * Register a layer for a given host id\n * @param hostId Id of the layer host\n * @param layer Layer instance\n */\nexport function registerLayer(hostId, callback) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n _layersByHostId[hostId].push(callback);\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n var layerHost = layerHosts_1[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId Id of the layer host\n * @param layer Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n var layers = _layersByHostId[hostId];\n if (layers) {\n var idx = layers.indexOf(callback);\n if (idx >= 0) {\n layers.splice(idx, 1);\n if (layers.length === 0) {\n delete _layersByHostId[hostId];\n }\n }\n }\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n var layerHost = layerHosts_2[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n var layers = _layerHostsById[hostId];\n return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n var layerHosts = _layerHostsById[hostId];\n return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId Id of the layer host\n * @param layerHost layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n // Insert this at the start of an array to avoid race conditions between mount and unmount.\n // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n // get the new one even if the old one is around briefly.\n layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId Id of the layer host\n * @param layerHost layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n var idx = layerHosts.indexOf(layerHost);\n if (idx >= 0) {\n layerHosts.splice(idx, 1);\n }\n if (layerHosts.length === 0) {\n delete _layerHostsById[hostId];\n }\n }\n}\n/**\n * When no default layer host is provided, this function is executed to create the default host.\n */\nexport function createDefaultLayerHost(doc) {\n var host = doc.createElement('div');\n host.setAttribute('id', defaultHostId);\n host.style.cssText = 'position:fixed;z-index:1000000';\n doc === null || doc === void 0 ? void 0 : doc.body.appendChild(host);\n return host;\n}\n/**\n * This function can be optionally called to clean up the default layer host as needed.\n */\nexport function cleanupDefaultLayerHost(doc) {\n var host = doc.querySelector(\"#\" + defaultHostId);\n if (host) {\n doc.removeChild(host);\n }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n if (_layersByHostId[id]) {\n _layersByHostId[id].forEach(function (callback) { return callback(); });\n }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsy value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","import { __assign } from \"tslib\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \"react-portal-compat-context\" uses v9 configs via path aliases\nimport { usePortalCompat } from '@fluentui/react-portal-compat-context';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, setPortalAttribute, setVirtualParent } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost, createDefaultLayerHost, } from './Layer.notification';\nimport { useIsomorphicLayoutEffect, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nvar getClassNames = classNamesFunction();\nexport var LayerBase = React.forwardRef(function (props, ref) {\n var registerPortalEl = usePortalCompat();\n var rootRef = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var layerRef = React.useRef();\n // Tracks if the layer mount events need to be raised.\n // Required to allow the DOM to render after the layer element is added.\n var _a = React.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1];\n var doc = useDocument();\n var eventBubblingEnabled = props.eventBubblingEnabled, styles = props.styles, theme = props.theme, className = props.className, children = props.children, hostId = props.hostId, _b = props.onLayerDidMount, onLayerDidMount = _b === void 0 ? function () { return undefined; } : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onLayerMounted, \n // eslint-disable-next-line deprecation/deprecation\n onLayerMounted = _c === void 0 ? function () { return undefined; } : _c, onLayerWillUnmount = props.onLayerWillUnmount, insertFirst = props.insertFirst;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isNotHost: !hostId,\n });\n // Returns the user provided hostId props element, the default target selector,\n // or undefined if document doesn't exist.\n var getHost = function () {\n var _a, _b;\n if (hostId) {\n var layerHost = getLayerHost(hostId);\n if (layerHost) {\n return (_a = layerHost.rootRef.current) !== null && _a !== void 0 ? _a : null;\n }\n return (_b = doc === null || doc === void 0 ? void 0 : doc.getElementById(hostId)) !== null && _b !== void 0 ? _b : null;\n }\n else {\n var defaultHostSelector = getDefaultTarget();\n // Find the host.\n var host = defaultHostSelector ? doc === null || doc === void 0 ? void 0 : doc.querySelector(defaultHostSelector) : null;\n // If no host is available, create a container for injecting layers in.\n // Having a container scopes layout computation.\n if (!host && doc) {\n host = createDefaultLayerHost(doc);\n }\n return host;\n }\n };\n // Removes the current layer element's parentNode and runs onLayerWillUnmount prop if provided.\n var removeLayerElement = function () {\n onLayerWillUnmount === null || onLayerWillUnmount === void 0 ? void 0 : onLayerWillUnmount();\n var elem = layerRef.current;\n // Clear ref before removing from the DOM\n layerRef.current = undefined;\n if (elem && elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n };\n // If a doc or host exists, it will remove and update layer parentNodes.\n var createLayerElement = function () {\n var _a, _b;\n var host = getHost();\n if (!host) {\n return;\n }\n // Remove and re-create any previous existing layer elements.\n removeLayerElement();\n var el = (_b = ((_a = host.ownerDocument) !== null && _a !== void 0 ? _a : doc)) === null || _b === void 0 ? void 0 : _b.createElement('div');\n if (el) {\n el.className = classNames.root;\n setPortalAttribute(el);\n setVirtualParent(el, rootRef.current);\n insertFirst ? host.insertBefore(el, host.firstChild) : host.appendChild(el);\n layerRef.current = el;\n setNeedRaiseLayerMount(true);\n }\n };\n useIsomorphicLayoutEffect(function () {\n createLayerElement();\n // Check if the user provided a hostId prop and register the layer with the ID.\n if (hostId) {\n registerLayer(hostId, createLayerElement);\n }\n var unregisterPortalEl = layerRef.current ? registerPortalEl(layerRef.current) : undefined;\n return function () {\n if (unregisterPortalEl) {\n unregisterPortalEl();\n }\n removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, createLayerElement);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should run if the hostId updates.\n }, [hostId]);\n React.useEffect(function () {\n if (layerRef.current && needRaiseLayerMount) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n onLayerDidMount === null || onLayerDidMount === void 0 ? void 0 : onLayerDidMount();\n setNeedRaiseLayerMount(false);\n }\n }, [needRaiseLayerMount, onLayerMounted, onLayerDidMount]);\n useDebugWarnings(props);\n return (React.createElement(\"span\", { className: \"ms-layer\", ref: mergedRef }, layerRef.current &&\n ReactDOM.createPortal(\n /* eslint-disable deprecation/deprecation */\n React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && getFilteredEvents()), { className: classNames.content }), children), \n /* eslint-enable deprecation/deprecation */\n layerRef.current)));\n});\nLayerBase.displayName = 'LayerBase';\nvar filteredEventProps;\nvar onFilterEvent = function (ev) {\n // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n // event name rather than ev.bubble.\n if (ev.eventPhase === Event.BUBBLING_PHASE &&\n ev.type !== 'mouseenter' &&\n ev.type !== 'mouseleave' &&\n ev.type !== 'touchstart' &&\n ev.type !== 'touchend') {\n ev.stopPropagation();\n }\n};\nfunction getFilteredEvents() {\n if (!filteredEventProps) {\n filteredEventProps = {};\n [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseOut',\n 'onMouseUp',\n 'onTouchMove',\n 'onTouchStart',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onFocus',\n 'onBlur',\n 'onChange',\n 'onInput',\n 'onInvalid',\n 'onSubmit',\n ].forEach(function (name) { return (filteredEventProps[name] = onFilterEvent); });\n }\n return filteredEventProps;\n}\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Layer',\n props: props,\n deprecations: { onLayerMounted: 'onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Layer.base.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n var virtualChild = child;\n var virtualParent = parent;\n if (!virtualChild._virtual) {\n virtualChild._virtual = {\n children: [],\n };\n }\n var oldParent = virtualChild._virtual.parent;\n if (oldParent && oldParent !== parent) {\n // Remove the child from its old parent.\n var index = oldParent._virtual.children.indexOf(virtualChild);\n if (index > -1) {\n oldParent._virtual.children.splice(index, 1);\n }\n }\n virtualChild._virtual.parent = virtualParent || undefined;\n if (virtualParent) {\n if (!virtualParent._virtual) {\n virtualParent._virtual = {\n children: [],\n };\n }\n virtualParent._virtual.children.push(virtualChild);\n }\n}\n//# sourceMappingURL=setVirtualParent.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Layer',\n rootNoHost: 'ms-Layer--fixed',\n content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isNotHost && [\n classNames.rootNoHost,\n {\n position: 'fixed',\n zIndex: ZIndexes.Layer,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n visibility: 'hidden',\n },\n ],\n className,\n ],\n content: [\n classNames.content,\n {\n visibility: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n scope: 'Layer',\n fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { classNamesFunction, useFocusRects } from '@fluentui/utilities';\nvar getClassNames = classNamesFunction();\n/**\n * The useLink hook processes the Link component props and returns\n * state, slots and slotProps for consumption by the component.\n */\nexport var useLink = function (props, forwardedRef) {\n var as = props.as, className = props.className, disabled = props.disabled, href = props.href, onClick = props.onClick, styles = props.styles, theme = props.theme, underline = props.underline;\n var rootRef = React.useRef(null);\n var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n useComponentRef(props, rootRef);\n useFocusRects(rootRef);\n var classNames = getClassNames(styles, {\n className: className,\n isButton: !href,\n isDisabled: disabled,\n isUnderlined: underline,\n theme: theme,\n });\n var _onClick = function (ev) {\n if (disabled) {\n ev.preventDefault();\n }\n else if (onClick) {\n onClick(ev);\n }\n };\n var rootType = as ? as : href ? 'a' : 'button';\n var state = {};\n var slots = { root: rootType };\n var slotProps = {\n root: __assign(__assign({}, adjustPropsForRootType(rootType, props)), { 'aria-disabled': disabled, className: classNames.root, onClick: _onClick, ref: mergedRootRefs }),\n };\n return { state: state, slots: slots, slotProps: slotProps };\n};\nvar useComponentRef = function (props, link) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n if (link.current) {\n link.current.focus();\n }\n },\n }); }, [link]);\n};\nvar adjustPropsForRootType = function (RootType, props) {\n // Deconstruct the props so we remove props like `as`, `theme` and `styles`\n // as those will always be removed. We also take some props that are optional\n // based on the RootType.\n var as = props.as, disabled = props.disabled, target = props.target, href = props.href, theme = props.theme, getStyles = props.getStyles, styles = props.styles, componentRef = props.componentRef, underline = props.underline, restProps = __rest(props, [\"as\", \"disabled\", \"target\", \"href\", \"theme\", \"getStyles\", \"styles\", \"componentRef\", \"underline\"]);\n // RootType will be a string if we're dealing with an html component\n if (typeof RootType === 'string') {\n // Remove the disabled prop for anchor elements\n if (RootType === 'a') {\n return __assign({ target: target, href: disabled ? undefined : href }, restProps);\n }\n // Add the type='button' prop for button elements\n if (RootType === 'button') {\n return __assign({ type: 'button', disabled: disabled }, restProps);\n }\n // Remove the target and href props for all other non anchor elements\n return __assign(__assign({}, restProps), { disabled: disabled });\n }\n // Retain all props except 'as' for ReactComponents\n return __assign({ target: target, href: href, disabled: disabled }, restProps);\n};\n//# sourceMappingURL=useLink.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useLink } from './useLink';\nexport var LinkBase = React.forwardRef(function (props, ref) {\n var _a = useLink(props, ref), slots = _a.slots, slotProps = _a.slotProps;\n return React.createElement(slots.root, __assign({}, slotProps.root));\n});\nLinkBase.displayName = 'LinkBase';\n//# sourceMappingURL=Link.base.js.map","import { styled } from '@fluentui/utilities';\nimport { LinkBase } from './Link.base';\nimport { getStyles } from './Link.styles';\nexport var Link = styled(LinkBase, getStyles, undefined, {\n scope: 'Link',\n});\n//# sourceMappingURL=Link.js.map","import { getGlobalClassNames, HighContrastSelector } from '@fluentui/style-utilities';\nexport var GlobalClassNames = {\n root: 'ms-Link',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f;\n var className = props.className, isButton = props.isButton, isDisabled = props.isDisabled, isUnderlined = props.isUnderlined, theme = props.theme;\n var semanticColors = theme.semanticColors;\n // Tokens\n var linkColor = semanticColors.link;\n var linkInteractedColor = semanticColors.linkHovered;\n var linkDisabledColor = semanticColors.disabledText;\n var focusBorderColor = semanticColors.focusBorder;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: linkColor,\n outline: 'none',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n textDecoration: isUnderlined ? 'underline' : 'none',\n selectors: (_a = {\n '.ms-Fabric--isFocusVisible &:focus': {\n // Can't use getFocusStyle because it doesn't support wrapping links\n // https://github.com/microsoft/fluentui/issues/4883#issuecomment-406743543\n // Using box-shadow and outline allows the focus rect to wrap links that span multiple lines\n // and helps the focus rect avoid getting clipped.\n boxShadow: \"0 0 0 1px \" + focusBorderColor + \" inset\",\n outline: \"1px auto \" + focusBorderColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n outline: '1px solid WindowText',\n },\n _b),\n }\n },\n _a[HighContrastSelector] = {\n // For IE high contrast mode\n borderBottom: 'none',\n },\n _a),\n },\n isButton && {\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n display: 'inline',\n margin: 0,\n overflow: 'inherit',\n padding: 0,\n textAlign: 'left',\n textOverflow: 'inherit',\n userSelect: 'text',\n borderBottom: '1px solid transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'LinkText',\n forcedColorAdjust: 'none',\n },\n _c),\n },\n !isButton && {\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n // This is mainly for MessageBar, which sets MsHighContrastAdjust: none by default\n MsHighContrastAdjust: 'auto',\n forcedColorAdjust: 'auto',\n },\n _d),\n },\n isDisabled && [\n 'is-disabled',\n {\n color: linkDisabledColor,\n cursor: 'default',\n },\n {\n selectors: {\n '&:link, &:visited': {\n pointerEvents: 'none',\n },\n },\n },\n ],\n !isDisabled && {\n selectors: {\n '&:active, &:hover, &:active:hover': {\n color: linkInteractedColor,\n textDecoration: 'underline',\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'LinkText',\n },\n _e),\n },\n '&:focus': {\n color: linkColor,\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'LinkText',\n },\n _f),\n },\n },\n },\n classNames.root,\n className,\n ],\n };\n};\n//# sourceMappingURL=Link.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, getPropsWithDefaults, getWindow, modalize, } from '../../Utilities';\nimport { useMergedRefs, useAsync, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindow } from '@fluentui/react-window-provider';\nfunction useScrollbarAsync(props, root) {\n var async = useAsync();\n var _a = React.useState(false), needsVerticalScrollBarState = _a[0], setNeedsVerticalScrollBar = _a[1];\n React.useEffect(function () {\n async.requestAnimationFrame(function () {\n var _a;\n // If overflowY is overridden, don't waste time calculating whether the scrollbar is necessary.\n if (props.style && props.style.overflowY) {\n return;\n }\n var needsVerticalScrollBar = false;\n if (root && root.current && ((_a = root.current) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {\n // ClientHeight returns the client height of an element rounded to an\n // integer. On some browsers at different zoom levels this rounding\n // can generate different results for the root container and child even\n // though they are the same height. This causes us to show a scroll bar\n // when not needed. Ideally we would use BoundingClientRect().height\n // instead however seems that the API is 90% slower than using ClientHeight.\n // Therefore instead we will calculate the difference between heights and\n // allow for a 1px difference to still be considered ok and not show the\n // scroll bar.\n var rootHeight = root.current.clientHeight;\n var firstChildHeight = root.current.firstElementChild.clientHeight;\n if (rootHeight > 0 && firstChildHeight > rootHeight) {\n needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n }\n }\n if (needsVerticalScrollBarState !== needsVerticalScrollBar) {\n setNeedsVerticalScrollBar(needsVerticalScrollBar);\n }\n });\n return function () { return async.dispose(); };\n });\n return needsVerticalScrollBarState;\n}\nfunction defaultFocusRestorer(options) {\n var originalElement = options.originalElement, containsFocus = options.containsFocus;\n if (originalElement && containsFocus && originalElement !== getWindow()) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n // This is wrapped in a setTimeout because of a React 16 bug that is resolved in 17.\n // Once we move to 17, the setTimeout should be removed (ref: https://github.com/facebook/react/issues/17894#issuecomment-656094405)\n setTimeout(function () {\n var _a;\n (_a = originalElement.focus) === null || _a === void 0 ? void 0 : _a.call(originalElement);\n }, 0);\n }\n}\nfunction useRestoreFocus(props, root) {\n var _a = props.onRestoreFocus, onRestoreFocus = _a === void 0 ? defaultFocusRestorer : _a;\n var originalFocusedElement = React.useRef();\n var containsFocus = React.useRef(false);\n React.useEffect(function () {\n originalFocusedElement.current = getDocument().activeElement;\n if (doesElementContainFocus(root.current)) {\n containsFocus.current = true;\n }\n return function () {\n var _a;\n onRestoreFocus === null || onRestoreFocus === void 0 ? void 0 : onRestoreFocus({\n originalElement: originalFocusedElement.current,\n containsFocus: containsFocus.current,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n originalFocusedElement.current = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []);\n useOnEvent(root, 'focus', React.useCallback(function () {\n containsFocus.current = true;\n }, []), true);\n useOnEvent(root, 'blur', React.useCallback(function (ev) {\n /** The popup should update this._containsFocus when:\n * relatedTarget exists AND\n * the relatedTarget is not contained within the popup.\n * If the relatedTarget is within the popup, that means the popup still has focus\n * and focused moved from one element to another within the popup.\n * If relatedTarget is undefined or null that usually means that a\n * keyboard event occurred and focus didn't change\n */\n if (root.current && ev.relatedTarget && !root.current.contains(ev.relatedTarget)) {\n containsFocus.current = false;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []), true);\n}\nfunction useHideSiblingNodes(props, root) {\n // eslint-disable-next-line deprecation/deprecation\n var shouldHideSiblings = String(props['aria-modal']).toLowerCase() === 'true' && props.enableAriaHiddenSiblings;\n React.useEffect(function () {\n if (!(shouldHideSiblings && root.current)) {\n return;\n }\n var unmodalize = modalize(root.current);\n return unmodalize;\n }, [root, shouldHideSiblings]);\n}\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport var Popup = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults({ shouldRestoreFocus: true, enableAriaHiddenSiblings: true }, propsWithoutDefaults);\n var root = React.useRef();\n var mergedRootRef = useMergedRefs(root, forwardedRef);\n useHideSiblingNodes(props, root);\n useRestoreFocus(props, root);\n var role = props.role, className = props.className, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, style = props.style, children = props.children, onDismiss = props.onDismiss;\n var needsVerticalScrollBar = useScrollbarAsync(props, root);\n var onKeyDown = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.escape:\n if (onDismiss) {\n onDismiss(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n }\n }, [onDismiss]);\n var win = useWindow();\n useOnEvent(win, 'keydown', onKeyDown);\n return (React.createElement(\"div\", __assign({ ref: mergedRootRef }, getNativeProps(props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: onKeyDown, style: __assign({ overflowY: needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), children));\n});\nPopup.displayName = 'Popup';\n//# sourceMappingURL=Popup.js.map","/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport var SpinnerSize;\n(function (SpinnerSize) {\n /**\n * 12px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"xSmall\"] = 0] = \"xSmall\";\n /**\n * 16px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"small\"] = 1] = \"small\";\n /**\n * 20px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"medium\"] = 2] = \"medium\";\n /**\n * 28px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"large\"] = 3] = \"large\";\n})(SpinnerSize || (SpinnerSize = {}));\n/**\n * @deprecated Use `SpinnerSize` instead. Will be removed at \\>= 2.0.0.\n * {@docCategory Spinner}\n */\nexport var SpinnerType;\n(function (SpinnerType) {\n /**\n * @deprecated Use `SpinnerSize.medium` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"normal\"] = 0] = \"normal\";\n /**\n * @deprecated Use `SpinnerSize.large` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"large\"] = 1] = \"large\";\n})(SpinnerType || (SpinnerType = {}));\n//# sourceMappingURL=Spinner.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { SpinnerType, SpinnerSize } from './Spinner.types';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar SpinnerBase = /** @class */ (function (_super) {\n __extends(SpinnerBase, _super);\n function SpinnerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SpinnerBase.prototype.render = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, styles = _a.styles, label = _a.label, theme = _a.theme, className = _a.className, labelPosition = _a.labelPosition;\n var statusMessage = ariaLabel;\n var nativeProps = getNativeProps(this.props, divProperties, ['size']);\n // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the\n // ISpinnerStyleProps, we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType\n // finally goes away we should delete this.\n var styleSize = size;\n if (styleSize === undefined && type !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n styleSize = type === SpinnerType.large ? SpinnerSize.large : SpinnerSize.medium;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: styleSize,\n className: className,\n labelPosition: labelPosition,\n });\n return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root }),\n React.createElement(\"div\", { className: classNames.circle }),\n label && React.createElement(\"div\", { className: classNames.label }, label),\n statusMessage && (React.createElement(\"div\", { role: \"status\", \"aria-live\": ariaLive },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, statusMessage))))));\n };\n SpinnerBase.defaultProps = {\n size: SpinnerSize.medium,\n ariaLive: 'polite',\n labelPosition: 'bottom',\n };\n return SpinnerBase;\n}(React.Component));\nexport { SpinnerBase };\n//# sourceMappingURL=Spinner.base.js.map","import { __assign } from \"tslib\";\nimport { SpinnerSize } from './Spinner.types';\nimport { hiddenContentStyle, keyframes, HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Spinner',\n circle: 'ms-Spinner-circle',\n label: 'ms-Spinner-label',\n};\nvar spinAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: 'rotate(0deg)',\n },\n '100%': {\n transform: 'rotate(360deg)',\n },\n });\n});\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, size = props.size, className = props.className, labelPosition = props.labelPosition;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n labelPosition === 'top' && {\n flexDirection: 'column-reverse',\n },\n labelPosition === 'right' && {\n flexDirection: 'row',\n },\n labelPosition === 'left' && {\n flexDirection: 'row-reverse',\n },\n className,\n ],\n circle: [\n classNames.circle,\n {\n boxSizing: 'border-box',\n borderRadius: '50%',\n border: '1.5px solid ' + palette.themeLight,\n borderTopColor: palette.themePrimary,\n animationName: spinAnimation(),\n animationDuration: '1.3s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'cubic-bezier(.53,.21,.29,.67)',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderTopColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n size === SpinnerSize.xSmall && [\n 'ms-Spinner--xSmall',\n {\n width: 12,\n height: 12,\n },\n ],\n size === SpinnerSize.small && [\n 'ms-Spinner--small',\n {\n width: 16,\n height: 16,\n },\n ],\n size === SpinnerSize.medium && [\n 'ms-Spinner--medium',\n {\n width: 20,\n height: 20,\n },\n ],\n size === SpinnerSize.large && [\n 'ms-Spinner--large',\n {\n width: 28,\n height: 28,\n },\n ],\n ],\n label: [\n classNames.label,\n theme.fonts.small,\n {\n color: palette.themePrimary,\n margin: '8px 0 0',\n textAlign: 'center',\n },\n labelPosition === 'top' && {\n margin: '0 0 8px',\n },\n labelPosition === 'right' && {\n margin: '0 0 0 8px',\n },\n labelPosition === 'left' && {\n margin: '0 8px 0 0',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Spinner.styles.js.map","import { styled } from '../../Utilities';\nimport { SpinnerBase } from './Spinner.base';\nimport { getStyles } from './Spinner.styles';\nexport var Spinner = styled(SpinnerBase, getStyles, undefined, { scope: 'Spinner' });\n//# sourceMappingURL=Spinner.js.map","var REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndestination, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nsource, exclusions) {\n if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }\n var hoisted = [];\n var _loop_1 = function (methodName) {\n if (typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)) {\n hoisted.push(methodName);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n source[methodName].apply(source, args);\n };\n }\n };\n for (var methodName in source) {\n _loop_1(methodName);\n }\n return hoisted;\n}\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source, methodNames) {\n methodNames.forEach(function (methodName) { return delete source[methodName]; });\n}\n//# sourceMappingURL=hoist.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\nvar BaseDecorator = /** @class */ (function (_super) {\n __extends(BaseDecorator, _super);\n function BaseDecorator(props) {\n var _this = _super.call(this, props) || this;\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n return _this;\n }\n /**\n * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n * (and unhoisting as appropriate) methods from said component.\n *\n * Pass this method as the argument to the 'ref' property of the composed component.\n */\n BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n }\n else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n };\n return BaseDecorator;\n}(React.Component));\nexport { BaseDecorator };\n//# sourceMappingURL=BaseDecorator.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n /** Width \\<= 479px */\n ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n /** Width \\> 479px and \\<= 639px */\n ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n /** Width \\> 639px and \\<= 1023px */\n ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n /** Width \\> 1023px and \\<= 1365px */\n ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n /** Width \\> 1365px and \\<= 1919px */\n ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n /** Width \\> 1919px */\n ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode) {\n _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element) {\n var currentWindow = getWindow(element);\n if (currentWindow) {\n getResponsiveMode(currentWindow);\n }\n}\nexport function getInitialResponsiveMode() {\n var _a;\n return (_a = _defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode) !== null && _a !== void 0 ? _a : ResponsiveMode.large;\n}\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(ComposedComponent) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(WithResponsiveMode, _super);\n function WithResponsiveMode(props) {\n var _this = _super.call(this, props) || this;\n _this._onResize = function () {\n var responsiveMode = getResponsiveMode(_this.context.window);\n if (responsiveMode !== _this.state.responsiveMode) {\n _this.setState({\n responsiveMode: responsiveMode,\n });\n }\n };\n _this._events = new EventGroup(_this);\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n _this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n return _this;\n }\n WithResponsiveMode.prototype.componentDidMount = function () {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n };\n WithResponsiveMode.prototype.componentWillUnmount = function () {\n this._events.dispose();\n };\n WithResponsiveMode.prototype.render = function () {\n var responsiveMode = this.state.responsiveMode;\n return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n };\n return WithResponsiveMode;\n }(BaseDecorator)),\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n}\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow) {\n var responsiveMode = ResponsiveMode.small;\n if (currentWindow) {\n try {\n while (currentWindow.innerWidth > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n }\n catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n }\n else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n }\n else {\n throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.');\n }\n }\n return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import * as React from 'react';\nimport { getWindow } from '@fluentui/utilities';\nimport { useOnEvent } from '@fluentui/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\nimport { useWindow } from '../../WindowProvider';\n/**\n * Hook to get the current responsive mode (window size category).\n * @param elementRef - Use this element's parent window when determining the responsive mode.\n * @param overrideResponsiveMode - Override the responsive mode. If this param is present, it's always returned.\n */\nexport var useResponsiveMode = function (elementRef, overrideResponsiveMode) {\n var _a = React.useState(getInitialResponsiveMode()), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n var onResize = React.useCallback(function () {\n var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n // Setting the same value should not cause a re-render.\n if (lastResponsiveMode !== newResponsiveMode) {\n setLastResponsiveMode(newResponsiveMode);\n }\n }, [elementRef, lastResponsiveMode]);\n var win = useWindow();\n useOnEvent(win, 'resize', onResize);\n // Call resize function initially on mount, or if the override changes from defined to undefined\n // (the effect will run on all override changes, but onResize will only be called if it changed to undefined)\n React.useEffect(function () {\n if (overrideResponsiveMode === undefined) {\n onResize();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount or when override changes\n }, [overrideResponsiveMode]);\n return overrideResponsiveMode !== null && overrideResponsiveMode !== void 0 ? overrideResponsiveMode : lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n function KeytipManager() {\n this.keytips = {};\n this.persistedKeytips = {};\n this.sequenceMapping = {};\n // This is (and should be) updated and kept in sync\n // with the inKeytipMode in KeytipLayer.\n this.inKeytipMode = false;\n // Boolean that gets checked before entering keytip mode by the KeytipLayer\n // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n this.shouldEnterKeytipMode = true;\n // Boolean to indicate whether to delay firing an event to update subscribers of\n // keytip data changed.\n this.delayUpdatingKeytipChange = false;\n }\n /**\n * Static function to get singleton KeytipManager instance\n *\n * @returns Singleton KeytipManager instance\n */\n KeytipManager.getInstance = function () {\n return this._instance;\n };\n /**\n * Initialization code to set set parameters to define\n * how the KeytipManager handles keytip data.\n *\n * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n * of keytip changes\n */\n KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n };\n /**\n * Registers a keytip\n *\n * @param keytipProps - Keytip to register\n * @param persisted - T/F if this keytip should be persisted, default is false\n * @returns Unique ID for this keytip\n */\n KeytipManager.prototype.register = function (keytipProps, persisted) {\n if (persisted === void 0) { persisted = false; }\n var props = keytipProps;\n if (!persisted) {\n // Add the overflowSetSequence if necessary\n props = this.addParentOverflow(keytipProps);\n this.sequenceMapping[props.keySequences.toString()] = props;\n }\n // Create a unique keytip\n var uniqueKeytip = this._getUniqueKtp(props);\n // Add to dictionary\n persisted\n ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n // We only want to add something new if we are currently showing keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n EventGroup.raise(this, event_1, {\n keytip: props,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n return uniqueKeytip.uniqueID;\n };\n /**\n * Update a keytip\n *\n * @param keytipProps - Keytip to update\n * @param uniqueID - Unique ID of this keytip\n */\n KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n var newKeytipProps = this.addParentOverflow(keytipProps);\n var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n var oldKeyTip = this.keytips[uniqueID];\n if (oldKeyTip) {\n // Update everything except 'visible'\n uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n // Update keytip in this.keytips\n this.keytips[uniqueID] = uniqueKeytip;\n // Update the sequence to be up to date\n delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n // Raise event only if we are currently in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n keytip: uniqueKeytip.keytip,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n }\n };\n /**\n * Unregisters a keytip\n *\n * @param keytipToRemove - IKeytipProps of the keytip to remove\n * @param uniqueID - Unique ID of this keytip\n * @param persisted - T/F if this keytip should be persisted, default is false\n */\n KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n if (persisted === void 0) { persisted = false; }\n persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n // Update keytips only if we're in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, event, {\n keytip: keytipToRemove,\n uniqueID: uniqueID,\n });\n }\n };\n /**\n * Manual call to enter keytip mode\n */\n KeytipManager.prototype.enterKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n };\n /**\n * Manual call to exit keytip mode\n */\n KeytipManager.prototype.exitKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n };\n /**\n * Gets all IKeytipProps from this.keytips\n *\n * @returns All keytips stored in the manager\n */\n KeytipManager.prototype.getKeytips = function () {\n var _this = this;\n return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n };\n /**\n * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n *\n * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n * @returns - Modified keytip props, if needed to be modified\n */\n KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n var fullSequence = __spreadArray([], keytipProps.keySequences);\n fullSequence.pop();\n if (fullSequence.length !== 0) {\n var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n if (parentKeytip && parentKeytip.overflowSetSequence) {\n return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n }\n }\n return keytipProps;\n };\n /**\n * Public function to bind for overflow items that have a submenu\n */\n KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n overflowButtonSequences: overflowButtonSequences,\n keytipSequences: keytipSequences,\n });\n };\n /**\n * Creates an IUniqueKeytip object\n *\n * @param keytipProps - IKeytipProps\n * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n * @returns IUniqueKeytip object\n */\n KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n if (uniqueID === void 0) { uniqueID = getId(); }\n return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n };\n KeytipManager._instance = new KeytipManager();\n return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, KeyCodes, elementContains, findScrollableParent, getParent, getDocument, getWindow, isElementTabbable, css, initializeComponentRef, FocusRects, } from '../../Utilities';\nimport { SelectionMode } from './interfaces';\n// Selection definitions:\n//\n// Anchor index: the point from which a range selection starts.\n// Focus index: the point from which layout movement originates from.\n//\n// These two can differ. Tests:\n//\n// If you start at index 5\n// Shift click to index 10\n// The focus is 10, the anchor is 5.\n// If you shift click at index 0\n// The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.\n// If you click index 8\n// The anchor and focus are set to 8.\nvar SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';\nvar SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';\nvar SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';\nvar SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';\nvar SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME = 'data-selection-touch-invoke';\nvar SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';\nvar SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';\n/**\n * {@docCategory Selection}\n */\nvar SelectionZone = /** @class */ (function (_super) {\n __extends(SelectionZone, _super);\n function SelectionZone(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n /**\n * In some cases, the consuming scenario requires to set focus on a row without having SelectionZone\n * react to the event. Note that focus events in IE \\<= 11 will occur asynchronously after .focus() has\n * been called on an element, so we need a flag to store the idea that we will bypass the \"next\"\n * focus event that occurs. This method does that.\n */\n _this.ignoreNextFocus = function () {\n _this._handleNextFocus(false);\n };\n _this._onSelectionChange = function () {\n var selection = _this.props.selection;\n var isModal = selection.isModal && selection.isModal();\n _this.setState({\n isModal: isModal,\n });\n };\n _this._onMouseDownCapture = function (ev) {\n var target = ev.target;\n if (document.activeElement !== target && !elementContains(document.activeElement, target)) {\n _this.ignoreNextFocus();\n return;\n }\n if (!elementContains(target, _this._root.current)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n _this.ignoreNextFocus();\n break;\n }\n target = getParent(target);\n }\n };\n /**\n * When we focus an item, for single/multi select scenarios, we should try to select it immediately\n * as long as the focus did not originate from a mouse down/touch event. For those cases, we handle them\n * specially.\n */\n _this._onFocus = function (ev) {\n var target = ev.target;\n var selection = _this.props.selection;\n var isToggleModifierPressed = _this._isCtrlPressed || _this._isMetaPressed;\n var selectionMode = _this._getSelectionMode();\n if (_this._shouldHandleFocus && selectionMode !== SelectionMode.none) {\n var isToggle = _this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME);\n var itemRoot = _this._findItemRoot(target);\n if (!isToggle && itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n if (isToggleModifierPressed) {\n // set anchor only.\n selection.setIndexSelected(index, selection.isIndexSelected(index), true);\n if (_this.props.enterModalOnTouch && _this._isTouch && selection.setModal) {\n selection.setModal(true);\n _this._setIsTouch(false);\n }\n }\n else {\n if (_this.props.isSelectedOnFocus) {\n _this._onItemSurfaceClick(ev, index);\n }\n }\n }\n }\n _this._handleNextFocus(false);\n };\n _this._onMouseDown = function (ev) {\n _this._updateModifiers(ev);\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n // No-op if selection is disabled\n if (_this._isSelectionDisabled(target)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n break;\n }\n else if (itemRoot) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if ((target === itemRoot || _this._shouldAutoSelect(target)) &&\n !_this._isShiftPressed &&\n !_this._isCtrlPressed &&\n !_this._isMetaPressed) {\n _this._onInvokeMouseDown(ev, _this._getItemIndex(itemRoot));\n break;\n }\n else if (_this.props.disableAutoSelectOnInputElements &&\n (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT')) {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onTouchStartCapture = function (ev) {\n _this._setIsTouch(true);\n };\n _this._onClick = function (ev) {\n var _a = _this.props.enableTouchInvocationTarget, enableTouchInvocationTarget = _a === void 0 ? false : _a;\n _this._updateModifiers(ev);\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n _this._onToggleAllClick(ev);\n }\n break;\n }\n else if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n if (_this._isShiftPressed) {\n _this._onItemSurfaceClick(ev, index);\n }\n else {\n _this._onToggleClick(ev, index);\n }\n }\n break;\n }\n else if ((_this._isTouch &&\n enableTouchInvocationTarget &&\n _this._hasAttribute(target, SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME)) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n break;\n }\n else if (target === itemRoot) {\n if (!isSelectionDisabled) {\n _this._onItemSurfaceClick(ev, index);\n }\n break;\n }\n else if (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT') {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onContextMenu = function (ev) {\n var target = ev.target;\n var _a = _this.props, onItemContextMenu = _a.onItemContextMenu, selection = _a.selection;\n if (onItemContextMenu) {\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n _this._onInvokeMouseDown(ev, index);\n var skipPreventDefault = onItemContextMenu(selection.getItems()[index], index, ev.nativeEvent);\n // In order to keep back compat, if the value here is undefined, then we should still\n // call preventDefault(). Only in the case where true is explicitly returned should\n // the call be skipped.\n if (!skipPreventDefault) {\n ev.preventDefault();\n }\n }\n }\n };\n /**\n * In multi selection, if you double click within an item's root (but not within the invoke element or\n * input elements), we should execute the invoke handler.\n */\n _this._onDoubleClick = function (ev) {\n var target = ev.target;\n var onItemInvoked = _this.props.onItemInvoked;\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot && onItemInvoked && !_this._isInputElement(target)) {\n var index = _this._getItemIndex(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (target === itemRoot) {\n _this._onInvokeClick(ev, index);\n break;\n }\n target = getParent(target);\n }\n target = getParent(target);\n }\n };\n _this._onKeyDownCapture = function (ev) {\n _this._updateModifiers(ev);\n _this._handleNextFocus(true);\n };\n _this._onKeyDown = function (ev) {\n _this._updateModifiers(ev);\n var target = ev.target;\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n var selection = _this.props.selection;\n // eslint-disable-next-line deprecation/deprecation\n var isSelectAllKey = ev.which === KeyCodes.a && (_this._isCtrlPressed || _this._isMetaPressed);\n // eslint-disable-next-line deprecation/deprecation\n var isClearSelectionKey = ev.which === KeyCodes.escape;\n // Ignore key downs from input elements.\n if (_this._isInputElement(target)) {\n // A key was pressed while an item in this zone was focused.\n return;\n }\n var selectionMode = _this._getSelectionMode();\n // If ctrl-a is pressed, select all (if all are not already selected.)\n if (isSelectAllKey && selectionMode === SelectionMode.multiple && !selection.isAllSelected()) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(true);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n // If escape is pressed, clear selection (if any are selected.)\n if (isClearSelectionKey && selection.getSelectedCount() > 0) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(false);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n var itemRoot = _this._findItemRoot(target);\n // If a key was pressed within an item, we should treat \"enters\" as invokes and \"space\" as toggle\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n // For toggle elements, assuming they are rendered as buttons, they will generate a click event,\n // so we can no-op for any keydowns in this case.\n break;\n }\n else if (_this._shouldAutoSelect(target)) {\n if (!isSelectionDisabled) {\n // If the event went to an element which should trigger auto-select, select it and then let\n // the default behavior kick in.\n _this._onInvokeMouseDown(ev, index);\n }\n break;\n }\n else if (\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) &&\n (target.tagName === 'BUTTON' || target.tagName === 'A' || target.tagName === 'INPUT')) {\n return false;\n }\n else if (target === itemRoot) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n ev.preventDefault();\n return;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.space) {\n if (!isSelectionDisabled) {\n _this._onToggleClick(ev, index);\n }\n ev.preventDefault();\n return;\n }\n break;\n }\n target = getParent(target);\n }\n }\n };\n _this._events = new EventGroup(_this);\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n var selection = _this.props.selection;\n // Reflect the initial modal state of selection into the state.\n var isModal = selection.isModal && selection.isModal();\n _this.state = {\n isModal: isModal,\n };\n return _this;\n }\n SelectionZone.getDerivedStateFromProps = function (nextProps, prevState) {\n var isModal = nextProps.selection.isModal && nextProps.selection.isModal();\n return __assign(__assign({}, prevState), { isModal: isModal });\n };\n SelectionZone.prototype.componentDidMount = function () {\n var win = getWindow(this._root.current);\n // Track the latest modifier keys globally.\n this._events.on(win, 'keydown, keyup', this._updateModifiers, true);\n this._events.on(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(document.body, 'touchstart', this._onTouchStartCapture, true);\n this._events.on(document.body, 'touchend', this._onTouchStartCapture, true);\n // Subscribe to the selection to keep modal state updated.\n this._events.on(this.props.selection, 'change', this._onSelectionChange);\n };\n SelectionZone.prototype.render = function () {\n var isModal = this.state.isModal;\n return (React.createElement(\"div\", { className: css('ms-SelectionZone', this.props.className, {\n 'ms-SelectionZone--modal': !!isModal,\n }), ref: this._root, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onKeyDownCapture: this._onKeyDownCapture, onClick: this._onClick, role: \"presentation\", onDoubleClick: this._onDoubleClick, onContextMenu: this._onContextMenu, onMouseDownCapture: this._onMouseDownCapture, onFocusCapture: this._onFocus, \"data-selection-is-modal\": isModal ? true : undefined },\n this.props.children,\n React.createElement(FocusRects, null)));\n };\n SelectionZone.prototype.componentDidUpdate = function (previousProps) {\n var selection = this.props.selection;\n if (selection !== previousProps.selection) {\n // Whenever selection changes, update the subscripton to keep modal state updated.\n this._events.off(previousProps.selection);\n this._events.on(selection, 'change', this._onSelectionChange);\n }\n };\n SelectionZone.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n };\n SelectionZone.prototype._isSelectionDisabled = function (target) {\n if (this._getSelectionMode() === SelectionMode.none) {\n return true;\n }\n while (target !== this._root.current) {\n if (this._hasAttribute(target, SELECTION_DISABLED_ATTRIBUTE_NAME)) {\n return true;\n }\n target = getParent(target);\n }\n return false;\n };\n SelectionZone.prototype._onToggleAllClick = function (ev) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n selection.toggleAllSelected();\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n SelectionZone.prototype._onToggleClick = function (ev, index) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n selection.setChangeEvents(false);\n if (this.props.enterModalOnTouch && this._isTouch && !selection.isIndexSelected(index) && selection.setModal) {\n selection.setModal(true);\n this._setIsTouch(false);\n }\n if (selectionMode === SelectionMode.multiple) {\n selection.toggleIndexSelected(index);\n }\n else if (selectionMode === SelectionMode.single) {\n var isSelected = selection.isIndexSelected(index);\n var isModal = selection.isModal && selection.isModal();\n selection.setAllSelected(false);\n selection.setIndexSelected(index, !isSelected, true);\n if (isModal && selection.setModal) {\n // Since the above call to setAllSelected(false) clears modal state,\n // restore it. This occurs because the SelectionMode of the Selection\n // may differ from the SelectionZone.\n selection.setModal(true);\n }\n }\n else {\n selection.setChangeEvents(true);\n return;\n }\n selection.setChangeEvents(true);\n ev.stopPropagation();\n // NOTE: ev.preventDefault is not called for toggle clicks, because this will kill the browser behavior\n // for checkboxes if you use a checkbox for the toggle.\n };\n SelectionZone.prototype._onInvokeClick = function (ev, index) {\n var _a = this.props, selection = _a.selection, onItemInvoked = _a.onItemInvoked;\n if (onItemInvoked) {\n onItemInvoked(selection.getItems()[index], index, ev.nativeEvent);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n SelectionZone.prototype._onItemSurfaceClick = function (ev, index) {\n var selection = this.props.selection;\n var isToggleModifierPressed = this._isCtrlPressed || this._isMetaPressed;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n if (this._isShiftPressed && !this._isTabPressed) {\n selection.selectToIndex(index, !isToggleModifierPressed);\n }\n else if (isToggleModifierPressed) {\n selection.toggleIndexSelected(index);\n }\n else {\n this._clearAndSelectIndex(index);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n this._clearAndSelectIndex(index);\n }\n };\n SelectionZone.prototype._onInvokeMouseDown = function (ev, index) {\n var selection = this.props.selection;\n // Only do work if item is not selected.\n if (selection.isIndexSelected(index)) {\n return;\n }\n this._clearAndSelectIndex(index);\n };\n /**\n * To avoid high startup cost of traversing the DOM on component mount,\n * defer finding the scrollable parent until a click interaction.\n *\n * The styles will probably already calculated since we're running in a click handler,\n * so this is less likely to cause layout thrashing then doing it in mount.\n */\n SelectionZone.prototype._findScrollParentAndTryClearOnEmptyClick = function (ev) {\n var scrollParent = findScrollableParent(this._root.current);\n // unbind this handler and replace binding with a binding on the actual scrollable parent\n this._events.off(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(scrollParent, 'click', this._tryClearOnEmptyClick);\n // If we clicked inside the scrollable parent, call through to the handler on this click.\n if ((scrollParent && ev.target instanceof Node && scrollParent.contains(ev.target)) || scrollParent === ev.target) {\n this._tryClearOnEmptyClick(ev);\n }\n };\n SelectionZone.prototype._tryClearOnEmptyClick = function (ev) {\n if (!this.props.selectionPreservedOnEmptyClick && this._isNonHandledClick(ev.target)) {\n this.props.selection.setAllSelected(false);\n }\n };\n SelectionZone.prototype._clearAndSelectIndex = function (index) {\n var _a = this.props, selection = _a.selection, _b = _a.selectionClearedOnSurfaceClick, selectionClearedOnSurfaceClick = _b === void 0 ? true : _b;\n var isAlreadySingleSelected = selection.getSelectedCount() === 1 && selection.isIndexSelected(index);\n if (!isAlreadySingleSelected && selectionClearedOnSurfaceClick) {\n var isModal = selection.isModal && selection.isModal();\n selection.setChangeEvents(false);\n selection.setAllSelected(false);\n selection.setIndexSelected(index, true, true);\n if (isModal || (this.props.enterModalOnTouch && this._isTouch)) {\n if (selection.setModal) {\n selection.setModal(true);\n }\n if (this._isTouch) {\n this._setIsTouch(false);\n }\n }\n selection.setChangeEvents(true);\n }\n };\n /**\n * We need to track the modifier key states so that when focus events occur, which do not contain\n * modifier states in the Event object, we know how to behave.\n */\n SelectionZone.prototype._updateModifiers = function (ev) {\n this._isShiftPressed = ev.shiftKey;\n this._isCtrlPressed = ev.ctrlKey;\n this._isMetaPressed = ev.metaKey;\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.keyCode;\n this._isTabPressed = keyCode ? keyCode === KeyCodes.tab : false;\n };\n SelectionZone.prototype._findItemRoot = function (target) {\n var selection = this.props.selection;\n while (target !== this._root.current) {\n var indexValue = target.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME);\n var index = Number(indexValue);\n if (indexValue !== null && index >= 0 && index < selection.getItems().length) {\n break;\n }\n target = getParent(target);\n }\n if (target === this._root.current) {\n return undefined;\n }\n return target;\n };\n SelectionZone.prototype._getItemIndex = function (itemRoot) {\n return Number(itemRoot.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME));\n };\n SelectionZone.prototype._shouldAutoSelect = function (element) {\n return this._hasAttribute(element, SELECTION_SELECT_ATTRIBUTE_NAME);\n };\n SelectionZone.prototype._hasAttribute = function (element, attributeName) {\n var isToggle = false;\n while (!isToggle && element !== this._root.current) {\n isToggle = element.getAttribute(attributeName) === 'true';\n element = getParent(element);\n }\n return isToggle;\n };\n SelectionZone.prototype._isInputElement = function (element) {\n return element.tagName === 'INPUT' || element.tagName === 'TEXTAREA';\n };\n SelectionZone.prototype._isNonHandledClick = function (element) {\n var doc = getDocument();\n if (doc && element) {\n while (element && element !== doc.documentElement) {\n if (isElementTabbable(element)) {\n return false;\n }\n element = getParent(element);\n }\n }\n return true;\n };\n SelectionZone.prototype._handleNextFocus = function (handleFocus) {\n var _this = this;\n if (this._shouldHandleFocusTimeoutId) {\n this._async.clearTimeout(this._shouldHandleFocusTimeoutId);\n this._shouldHandleFocusTimeoutId = undefined;\n }\n this._shouldHandleFocus = handleFocus;\n if (handleFocus) {\n this._async.setTimeout(function () {\n _this._shouldHandleFocus = false;\n }, 100);\n }\n };\n SelectionZone.prototype._setIsTouch = function (isTouch) {\n var _this = this;\n if (this._isTouchTimeoutId) {\n this._async.clearTimeout(this._isTouchTimeoutId);\n this._isTouchTimeoutId = undefined;\n }\n this._isTouch = true;\n if (isTouch) {\n this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 300);\n }\n };\n SelectionZone.prototype._getSelectionMode = function () {\n var selection = this.props.selection;\n var _a = this.props.selectionMode, selectionMode = _a === void 0 ? selection ? selection.mode : SelectionMode.none : _a;\n return selectionMode;\n };\n SelectionZone.defaultProps = {\n isSelectedOnFocus: true,\n selectionMode: SelectionMode.multiple,\n };\n return SelectionZone;\n}(React.Component));\nexport { SelectionZone };\n//# sourceMappingURL=SelectionZone.js.map","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nvar packagesCache = {};\n// Cache access to window to avoid IE11 memory leak.\nvar _win = undefined;\ntry {\n _win = window;\n}\ncatch (e) {\n /* no-op */\n}\nexport function setVersion(packageName, packageVersion) {\n if (typeof _win !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var packages = (_win.__packages__ = _win.__packages__ || {});\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n var versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n//# sourceMappingURL=setVersion.js.map","import { setVersion } from './setVersion';\nexport { setVersion };\nsetVersion('@fluentui/set-version', '6.0.0');\n//# sourceMappingURL=index.js.map","import { keyframes } from '@fluentui/merge-styles';\n/* Register the keyframes */\nvar EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nvar EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nvar DURATION_1 = '0.167s';\nvar DURATION_2 = '0.267s';\nvar DURATION_3 = '0.367s';\nvar DURATION_4 = '0.467s';\nvar FADE_IN = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\nvar FADE_OUT = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\nvar SLIDE_RIGHT_IN10 = _createSlideInX(-10);\nvar SLIDE_RIGHT_IN20 = _createSlideInX(-20);\nvar SLIDE_RIGHT_IN40 = _createSlideInX(-40);\nvar SLIDE_RIGHT_IN400 = _createSlideInX(-400);\nvar SLIDE_LEFT_IN10 = _createSlideInX(10);\nvar SLIDE_LEFT_IN20 = _createSlideInX(20);\nvar SLIDE_LEFT_IN40 = _createSlideInX(40);\nvar SLIDE_LEFT_IN400 = _createSlideInX(400);\nvar SLIDE_UP_IN10 = _createSlideInY(10);\nvar SLIDE_UP_IN20 = _createSlideInY(20);\nvar SLIDE_DOWN_IN10 = _createSlideInY(-10);\nvar SLIDE_DOWN_IN20 = _createSlideInY(-20);\nvar SLIDE_RIGHT_OUT10 = _createSlideOutX(10);\nvar SLIDE_RIGHT_OUT20 = _createSlideOutX(20);\nvar SLIDE_RIGHT_OUT40 = _createSlideOutX(40);\nvar SLIDE_RIGHT_OUT400 = _createSlideOutX(400);\nvar SLIDE_LEFT_OUT10 = _createSlideOutX(-10);\nvar SLIDE_LEFT_OUT20 = _createSlideOutX(-20);\nvar SLIDE_LEFT_OUT40 = _createSlideOutX(-40);\nvar SLIDE_LEFT_OUT400 = _createSlideOutX(-400);\nvar SLIDE_UP_OUT10 = _createSlideOutY(-10);\nvar SLIDE_UP_OUT20 = _createSlideOutY(-20);\nvar SLIDE_DOWN_OUT10 = _createSlideOutY(10);\nvar SLIDE_DOWN_OUT20 = _createSlideOutY(20);\nvar SCALE_UP100 = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_DOWN98 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\nvar SCALE_DOWN100 = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_UP103 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\nvar ROTATE90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\nvar ROTATE_N90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport var AnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport var AnimationStyles = {\n slideRightIn10: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN10, DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN20, DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN40, DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN400, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN10, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN20, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN40, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN400, DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(FADE_IN + \",\" + SLIDE_UP_IN10, DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(FADE_IN + \",\" + SLIDE_UP_IN20, DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(FADE_IN + \",\" + SLIDE_DOWN_IN10, DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(FADE_IN + \",\" + SLIDE_DOWN_IN20, DURATION_3, EASING_FUNCTION_1),\n slideRightOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT40, DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT400, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT40, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT400, DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_UP_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_UP_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_DOWN_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_DOWN_OUT20, DURATION_3, EASING_FUNCTION_1),\n scaleUpIn100: _createAnimation(FADE_IN + \",\" + SCALE_UP100, DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(FADE_IN + \",\" + SCALE_DOWN100, DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(FADE_OUT + \",\" + SCALE_UP103, DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(FADE_OUT + \",\" + SCALE_DOWN98, DURATION_1, EASING_FUNCTION_2),\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n // expandCollapse 100/200/400, delay 100/200\n};\nfunction _createAnimation(animationName, animationDuration, animationTimingFunction) {\n return {\n animationName: animationName,\n animationDuration: animationDuration,\n animationTimingFunction: animationTimingFunction,\n animationFillMode: 'both',\n };\n}\nfunction _createSlideInX(fromX) {\n return keyframes({\n from: { transform: \"translate3d(\" + fromX + \"px,0,0)\", pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideInY(fromY) {\n return keyframes({\n from: { transform: \"translate3d(0,\" + fromY + \"px,0)\", pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideOutX(toX) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(\" + toX + \"px,0,0)\" },\n });\n}\nfunction _createSlideOutY(toY) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(0,\" + toY + \"px,0)\" },\n });\n}\n//# sourceMappingURL=AnimationStyles.js.map","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\n/**\n * {@docCategory AnimationClassNames}\n */\nexport var AnimationClassNames = buildClassMap(AnimationStyles);\n//# sourceMappingURL=AnimationClassNames.js.map","import { mergeStyles } from '../MergeStyles';\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles) {\n var classes = {};\n var _loop_1 = function (styleName) {\n if (styles.hasOwnProperty(styleName)) {\n var className_1;\n Object.defineProperty(classes, styleName, {\n get: function () {\n if (className_1 === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n className_1 = mergeStyles(styles[styleName]).toString();\n }\n return className_1;\n },\n enumerable: true,\n configurable: true,\n });\n }\n };\n for (var styleName in styles) {\n _loop_1(styleName);\n }\n return classes;\n}\n//# sourceMappingURL=buildClassMap.js.map","export var HighContrastSelector = '@media screen and (-ms-high-contrast: active), (forced-colors: active)';\nexport var HighContrastSelectorWhite = '@media screen and (-ms-high-contrast: black-on-white), (forced-colors: black-on-white)';\nexport var HighContrastSelectorBlack = '@media screen and (-ms-high-contrast: white-on-black), (forced-colors: white-on-black)';\nexport var EdgeChromiumHighContrastSelector = '@media screen and (forced-colors: active)';\nexport var ScreenWidthMinSmall = 320;\nexport var ScreenWidthMinMedium = 480;\nexport var ScreenWidthMinLarge = 640;\nexport var ScreenWidthMinXLarge = 1024;\nexport var ScreenWidthMinXXLarge = 1366;\nexport var ScreenWidthMinXXXLarge = 1920;\nexport var ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport var ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport var ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport var ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport var ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\nexport var ScreenWidthMinUhfMobile = 768;\nexport function getScreenSelector(min, max) {\n var minSelector = typeof min === 'number' ? \" and (min-width: \" + min + \"px)\" : '';\n var maxSelector = typeof max === 'number' ? \" and (max-width: \" + max + \"px)\" : '';\n return \"@media only screen\" + minSelector + maxSelector;\n}\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle() {\n return {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n };\n}\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n * @deprecated Use `getHighContrastNoAdjustStyle`\n */\nexport function getEdgeChromiumNoHighContrastAdjustSelector() {\n var _a;\n return _a = {},\n _a[EdgeChromiumHighContrastSelector] = {\n forcedColorAdjust: 'none',\n },\n _a;\n}\n//# sourceMappingURL=CommonStyles.js.map","export var ZIndexes;\n(function (ZIndexes) {\n ZIndexes.Nav = 1;\n /**\n * @deprecated Do not use\n */\n ZIndexes.ScrollablePane = 1;\n ZIndexes.FocusStyle = 1;\n ZIndexes.Coachmark = 1000;\n ZIndexes.Layer = 1000000;\n ZIndexes.KeytipLayer = 1000001;\n})(ZIndexes || (ZIndexes = {}));\n//# sourceMappingURL=zIndexes.js.map","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nimport { ZIndexes } from './zIndexes';\nexport function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly) {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position: position,\n highContrastStyle: highContrastStyle,\n borderColor: borderColor,\n outlineColor: outlineColor,\n isFocusedOnly: isFocusedOnly,\n });\n }\n else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\nfunction _getFocusStyleInternal(theme, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? 'relative' : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h;\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position: position,\n selectors: (_a = {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n }\n },\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n _a[\".\" + IsFocusVisibleClassName + \" &\" + (isFocusedOnly ? ':focus' : '') + \":after\"] = {\n content: '\"\"',\n position: 'absolute',\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: width + \"px solid \" + borderColor,\n outline: width + \"px solid \" + outlineColor,\n zIndex: ZIndexes.FocusStyle,\n selectors: (_b = {},\n _b[HighContrastSelector] = highContrastStyle,\n _b),\n },\n _a),\n };\n}\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear() {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme, inset, width, color) {\n var _a;\n if (inset === void 0) { inset = 0; }\n if (width === void 0) { width = 1; }\n return {\n selectors: (_a = {},\n _a[\":global(\" + IsFocusVisibleClassName + \") &:focus\"] = {\n outline: width + \" solid \" + (color || theme.palette.neutralSecondary),\n outlineOffset: -inset + \"px\",\n },\n _a),\n };\n}\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport var getInputFocusStyle = function (borderColor, borderRadius, borderType, borderPosition) {\n var _a, _b, _c;\n if (borderType === void 0) { borderType = 'border'; }\n if (borderPosition === void 0) { borderPosition = -1; }\n var isBorderBottom = borderType === 'borderBottom';\n return {\n borderColor: borderColor,\n selectors: {\n ':after': (_a = {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition\n },\n _a[borderType] = \"2px solid \" + borderColor,\n _a.borderRadius = borderRadius,\n _a.width = borderType === 'borderBottom' ? '100%' : undefined,\n _a.selectors = (_b = {},\n _b[HighContrastSelector] = (_c = {},\n _c[borderType === 'border' ? 'borderColor' : 'borderBottomColor'] = 'Highlight',\n _c),\n _b),\n _a),\n },\n };\n};\n//# sourceMappingURL=getFocusStyle.js.map","export var hiddenContentStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=hiddenContentStyle.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nimport { memoizeFunction } from '@fluentui/utilities';\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nvar _getGlobalClassNames = memoizeFunction(function (classNames, disableGlobalClassNames) {\n var styleSheet = Stylesheet.getInstance();\n if (disableGlobalClassNames) {\n // disable global classnames\n return Object.keys(classNames).reduce(function (acc, className) {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {});\n }\n // use global classnames\n return classNames;\n});\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(classNames, theme, disableGlobalClassNames) {\n return _getGlobalClassNames(classNames, disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames);\n}\n//# sourceMappingURL=getGlobalClassNames.js.map","import { __assign } from \"tslib\";\nimport { Customizations, getWindow } from '@fluentui/utilities';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { createTheme } from '@fluentui/theme';\nexport { createTheme } from '@fluentui/theme';\nvar _theme = createTheme({});\nvar _onThemeChangeCallbacks = [];\nexport var ThemeSettingName = 'theme';\nexport function initializeThemeInCustomizations() {\n var _a;\n var _b, _c;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var win = getWindow();\n if ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.legacyTheme) {\n // does everything the `else` clause does and more, such as invoke legacy theming\n loadTheme(win.FabricConfig.legacyTheme);\n }\n else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n if ((_c = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _c === void 0 ? void 0 : _c.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n // Set the default theme.\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n }\n}\ninitializeThemeInCustomizations();\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments) {\n if (depComments === void 0) { depComments = false; }\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback) {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback) {\n var i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n _onThemeChangeCallbacks.splice(i, 1);\n}\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme, depComments) {\n var _a;\n if (depComments === void 0) { depComments = false; }\n _theme = createTheme(theme, depComments);\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme(__assign(__assign(__assign(__assign({}, _theme.palette), _theme.semanticColors), _theme.effects), _loadFonts(_theme)));\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n _onThemeChangeCallbacks.forEach(function (callback) {\n try {\n callback(_theme);\n }\n catch (e) {\n // don't let a bad callback break everything else\n }\n });\n return _theme;\n}\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme) {\n var lines = {};\n for (var _i = 0, _a = Object.keys(theme.fonts); _i < _a.length; _i++) {\n var fontName = _a[_i];\n var font = theme.fonts[fontName];\n for (var _b = 0, _c = Object.keys(font); _b < _c.length; _b++) {\n var propName = _c[_b];\n var name_1 = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n var value = font[propName];\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name_1] = value;\n }\n }\n return lines;\n}\n//# sourceMappingURL=theme.js.map","// This file mimics styles and mixins from _General.Mixins.scss\nexport var normalize = {\n boxShadow: 'none',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n};\nexport var noWrap = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=GeneralStyles.js.map","/**\n * Generates placeholder style for each of the browsers supported by `@fluentui/react`.\n * @param styles - The style to use.\n * @returns The placeholder style object for each browser depending on the placeholder directive it uses.\n */\nexport function getPlaceholderStyles(styles) {\n return {\n selectors: {\n '::placeholder': styles,\n ':-ms-input-placeholder': styles,\n '::-ms-input-placeholder': styles, // Edge\n },\n };\n}\n//# sourceMappingURL=getPlaceholderStyles.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings, warn } from '@fluentui/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@fluentui/merge-styles';\nvar ICON_SETTING_NAME = 'icons';\nvar _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n// Reset icon registration on stylesheet resets.\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () {\n for (var name_1 in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name_1) && !!_iconSettings[name_1].subset) {\n _iconSettings[name_1].subset.className = undefined;\n }\n }\n });\n}\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nvar normalizeIconName = function (name) { return name.toLowerCase(); };\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset, options) {\n var subset = __assign(__assign({}, iconSubset), { isRegistered: false, className: undefined });\n var icons = iconSubset.icons;\n // Grab options, optionally mix user provided ones on top.\n options = options ? __assign(__assign({}, _iconSettings.__options), options) : _iconSettings.__options;\n for (var iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n var code = icons[iconName];\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n }\n else {\n _iconSettings[normalizedIconName] = {\n code: code,\n subset: subset,\n };\n }\n }\n }\n}\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames) {\n var options = _iconSettings.__options;\n var _loop_1 = function (iconName) {\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n }\n else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(\"The icon \\\"\" + iconName + \"\\\" tried to unregister but was not registered.\");\n }\n }\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach(function (key) {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n };\n for (var _i = 0, iconNames_1 = iconNames; _i < iconNames_1.length; _i++) {\n var iconName = iconNames_1[_i];\n _loop_1(iconName);\n }\n}\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName, mappedToName) {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name) {\n var icon = undefined;\n var options = _iconSettings.__options;\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n if (name) {\n icon = _iconSettings[name];\n if (icon) {\n var subset = icon.subset;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\"The icon \\\"\" + name + \"\\\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.\");\n }\n }\n }\n return icon;\n}\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options) {\n _iconSettings.__options = __assign(__assign({}, _iconSettings.__options), options);\n}\nvar _missingIcons = [];\nvar _missingIconsTimer = undefined;\nfunction _warnDuplicateIcon(iconName) {\n var options = _iconSettings.__options;\n var warningDelay = 2000;\n var maxIconsInMessage = 10;\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(function () {\n warn(\"Some icons were re-registered. Applications should only call registerIcons for any given \" +\n \"icon once. Redefining what an icon is may have unintended consequences. Duplicates \" +\n \"include: \\n\" +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? \" (+ \" + (_missingIcons.length - maxIconsInMessage) + \" more)\" : ''));\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n//# sourceMappingURL=icons.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/style-utilities', '8.6.7');\n//# sourceMappingURL=version.js.map","export * from './classNames/index';\nexport * from './styles/index';\nexport * from './utilities/index';\nexport * from './interfaces/index';\nexport * from './MergeStyles';\nimport './version';\n// Ensure theme is initialized when this package is referenced.\nimport { initializeThemeInCustomizations } from './styles/theme';\ninitializeThemeInCustomizations();\n//# sourceMappingURL=index.js.map","// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport var DefaultPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n//# sourceMappingURL=DefaultPalette.js.map","export var Depths;\n(function (Depths) {\n Depths.depth0 = '0 0 0 0 transparent';\n Depths.depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n})(Depths || (Depths = {}));\n//# sourceMappingURL=FluentDepths.js.map","import { Depths } from './FluentDepths';\nexport var DefaultEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n//# sourceMappingURL=DefaultEffects.js.map","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\n// Fallback fonts, if specified system or web fonts are unavailable.\nvar FontFamilyFallbacks = \"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif\";\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nvar defaultFontFamily = \"'Segoe UI', '\" + LocalizedFontNames.WestEuropean + \"'\";\n// Mapping of language prefix to to font family.\nvar LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\nfunction _fontFamilyWithFallbacks(fontFamily) {\n return fontFamily + \", \" + FontFamilyFallbacks;\n}\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language) {\n for (var lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return LanguageToFontMap[lang];\n }\n }\n return defaultFontFamily;\n}\nfunction _createFont(size, weight, fontFamily) {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\nexport function createFontStyles(localeCode) {\n var localizedFont = _getLocalizedFontFamily(localeCode);\n var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n var fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n return fontStyles;\n}\n//# sourceMappingURL=createFontStyles.js.map","import { getDocument } from './dom/getDocument';\nimport * as localStorage from './localStorage';\nimport * as sessionStorage from './sessionStorage';\n// Default to undefined so that we initialize on first read.\nvar _language;\nvar STORAGE_KEY = 'language';\n/**\n * Gets the language set for the page.\n * @param persistenceType - Where to persist the value. Default is `sessionStorage` if available.\n */\nexport function getLanguage(persistenceType) {\n if (persistenceType === void 0) { persistenceType = 'sessionStorage'; }\n if (_language === undefined) {\n var doc = getDocument();\n var savedLanguage = persistenceType === 'localStorage'\n ? localStorage.getItem(STORAGE_KEY)\n : persistenceType === 'sessionStorage'\n ? sessionStorage.getItem(STORAGE_KEY)\n : undefined;\n if (savedLanguage) {\n _language = savedLanguage;\n }\n if (_language === undefined && doc) {\n _language = doc.documentElement.getAttribute('lang');\n }\n if (_language === undefined) {\n _language = 'en';\n }\n }\n return _language;\n}\nexport function setLanguage(language, persistenceParam) {\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('lang', language);\n }\n var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'sessionStorage' : persistenceParam;\n if (persistenceType === 'localStorage') {\n localStorage.setItem(STORAGE_KEY, language);\n }\n else if (persistenceType === 'sessionStorage') {\n sessionStorage.setItem(STORAGE_KEY, language);\n }\n _language = language;\n}\n//# sourceMappingURL=language.js.map","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\n// Default urls.\nvar DefaultBaseUrl = 'https://static2.sharepointonline.com/files/fabric/assets';\n// Standard font styling.\nexport var DefaultFontStyles = createFontStyles(getLanguage());\nfunction _registerFontFace(fontFamily, url, fontWeight, localFontName) {\n fontFamily = \"'\" + fontFamily + \"'\";\n var localFontSrc = localFontName !== undefined ? \"local('\" + localFontName + \"'),\" : '';\n fontFace({\n fontFamily: fontFamily,\n src: localFontSrc + (\"url('\" + url + \".woff2') format('woff2'),\") + (\"url('\" + url + \".woff') format('woff')\"),\n fontWeight: fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\nfunction _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {\n if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }\n var urlBase = baseUrl + \"/\" + cdnFolder + \"/\" + cdnFontName;\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(fontFamily, urlBase + '-semilight', FontWeights.semilight, localFontName && localFontName + ' SemiLight');\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(fontFamily, urlBase + '-semibold', FontWeights.semibold, localFontName && localFontName + ' SemiBold');\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\nexport function registerDefaultFontFaces(baseUrl) {\n if (baseUrl) {\n var fontUrl = baseUrl + \"/fonts\";\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-semilight\", FontWeights.light);\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-bold\", FontWeights.semibold);\n }\n}\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl() {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var fabricConfig = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.FabricConfig;\n return (_b = fabricConfig === null || fabricConfig === void 0 ? void 0 : fabricConfig.fontBaseUrl) !== null && _b !== void 0 ? _b : DefaultBaseUrl;\n}\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n//# sourceMappingURL=DefaultFontStyles.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.localStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key, data) {\n try {\n var win = getWindow();\n win && win.localStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=localStorage.js.map","export var DefaultSpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n//# sourceMappingURL=DefaultSpacing.js.map","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme, depComments) {\n if (theme === void 0) { theme = {}; }\n if (depComments === void 0) { depComments = false; }\n var isInverted = !!theme.isInverted;\n var baseTheme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted: isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n return mergeThemes(baseTheme, theme);\n}\n//# sourceMappingURL=createTheme.js.map","// Font face names to be registered.\nexport var LocalizedFontNames;\n(function (LocalizedFontNames) {\n LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';\n LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';\n LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';\n LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';\n LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';\n LocalizedFontNames.Thai = 'Leelawadee UI Web';\n LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';\n LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';\n LocalizedFontNames.Selawik = 'Selawik Web';\n LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';\n LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';\n})(LocalizedFontNames || (LocalizedFontNames = {}));\n// Font families with fallbacks, for the general regions.\nexport var LocalizedFontFamilies;\n(function (LocalizedFontFamilies) {\n LocalizedFontFamilies.Arabic = \"'\" + LocalizedFontNames.Arabic + \"'\";\n LocalizedFontFamilies.ChineseSimplified = \"'Microsoft Yahei UI', Verdana, Simsun\";\n LocalizedFontFamilies.ChineseTraditional = \"'Microsoft Jhenghei UI', Pmingliu\";\n LocalizedFontFamilies.Cyrillic = \"'\" + LocalizedFontNames.Cyrillic + \"'\";\n LocalizedFontFamilies.EastEuropean = \"'\" + LocalizedFontNames.EastEuropean + \"'\";\n LocalizedFontFamilies.Greek = \"'\" + LocalizedFontNames.Greek + \"'\";\n LocalizedFontFamilies.Hebrew = \"'\" + LocalizedFontNames.Hebrew + \"'\";\n LocalizedFontFamilies.Hindi = \"'Nirmala UI'\";\n LocalizedFontFamilies.Japanese = \"'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka\";\n LocalizedFontFamilies.Korean = \"'Malgun Gothic', Gulim\";\n LocalizedFontFamilies.Selawik = \"'\" + LocalizedFontNames.Selawik + \"'\";\n LocalizedFontFamilies.Thai = \"'Leelawadee UI Web', 'Kmer UI'\";\n LocalizedFontFamilies.Vietnamese = \"'\" + LocalizedFontNames.Vietnamese + \"'\";\n LocalizedFontFamilies.WestEuropean = \"'\" + LocalizedFontNames.WestEuropean + \"'\";\n LocalizedFontFamilies.Armenian = \"'\" + LocalizedFontNames.Armenian + \"'\";\n LocalizedFontFamilies.Georgian = \"'\" + LocalizedFontNames.Georgian + \"'\";\n})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));\n// Standard font sizes.\nexport var FontSizes;\n(function (FontSizes) {\n FontSizes.size10 = '10px';\n FontSizes.size12 = '12px';\n FontSizes.size14 = '14px';\n FontSizes.size16 = '16px';\n FontSizes.size18 = '18px';\n FontSizes.size20 = '20px';\n FontSizes.size24 = '24px';\n FontSizes.size28 = '28px';\n FontSizes.size32 = '32px';\n FontSizes.size42 = '42px';\n FontSizes.size68 = '68px';\n FontSizes.mini = '10px';\n FontSizes.xSmall = '10px';\n FontSizes.small = '12px';\n FontSizes.smallPlus = '12px';\n FontSizes.medium = '14px';\n FontSizes.mediumPlus = '16px';\n FontSizes.icon = '16px';\n FontSizes.large = '18px';\n FontSizes.xLarge = '20px';\n FontSizes.xLargePlus = '24px';\n FontSizes.xxLarge = '28px';\n FontSizes.xxLargePlus = '32px';\n FontSizes.superLarge = '42px';\n FontSizes.mega = '68px';\n})(FontSizes || (FontSizes = {}));\n// Standard font weights.\nexport var FontWeights;\n(function (FontWeights) {\n FontWeights.light = 100;\n FontWeights.semilight = 300;\n FontWeights.regular = 400;\n FontWeights.semibold = 600;\n FontWeights.bold = 700;\n})(FontWeights || (FontWeights = {}));\n// Standard Icon Sizes.\nexport var IconFontSizes;\n(function (IconFontSizes) {\n IconFontSizes.xSmall = '10px';\n IconFontSizes.small = '12px';\n IconFontSizes.medium = '16px';\n IconFontSizes.large = '20px';\n})(IconFontSizes || (IconFontSizes = {}));\n//# sourceMappingURL=FluentFonts.js.map","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n _merge(target || {}, arg);\n }\n return target;\n}\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _merge(target, source, circularReferences) {\n if (circularReferences === void 0) { circularReferences = []; }\n circularReferences.push(source);\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n if (name_1 !== '__proto__' && name_1 !== 'constructor' && name_1 !== 'prototype') {\n var value = source[name_1];\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n var isCircularReference = circularReferences.indexOf(value) > -1;\n target[name_1] = (isCircularReference\n ? value\n : _merge(target[name_1] || {}, value, circularReferences));\n }\n else {\n target[name_1] = value;\n }\n }\n }\n }\n circularReferences.pop();\n return target;\n}\n//# sourceMappingURL=merge.js.map","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme, partialTheme) {\n var _a, _b, _c;\n if (partialTheme === void 0) { partialTheme = {}; }\n var mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(partialTheme.palette, partialTheme.effects, partialTheme.semanticColors, partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted),\n });\n if (((_a = partialTheme.palette) === null || _a === void 0 ? void 0 : _a.themePrimary) && !((_b = partialTheme.palette) === null || _b === void 0 ? void 0 : _b.accent)) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n if (partialTheme.defaultFontStyle) {\n for (var _i = 0, _d = Object.keys(mergedTheme.fonts); _i < _d.length; _i++) {\n var fontStyle = _d[_i];\n mergedTheme.fonts[fontStyle] = merge(mergedTheme.fonts[fontStyle], partialTheme.defaultFontStyle, (_c = partialTheme === null || partialTheme === void 0 ? void 0 : partialTheme.fonts) === null || _c === void 0 ? void 0 : _c[fontStyle]);\n }\n }\n return mergedTheme;\n}\n//# sourceMappingURL=mergeThemes.js.map","import { __assign } from \"tslib\";\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var semanticColors = __assign({ primaryButtonBorder: 'transparent', errorText: !isInverted ? '#a4262c' : '#F1707B', messageText: !isInverted ? '#323130' : '#F3F2F1', messageLink: !isInverted ? '#005A9E' : '#6CB8F6', messageLinkHovered: !isInverted ? '#004578' : '#82C7FF', infoIcon: !isInverted ? '#605e5c' : '#C8C6C4', errorIcon: !isInverted ? '#A80000' : '#F1707B', blockingIcon: !isInverted ? '#FDE7E9' : '#442726', warningIcon: !isInverted ? '#797775' : '#C8C6C4', severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100', successIcon: !isInverted ? '#107C10' : '#92C353', infoBackground: !isInverted ? '#f3f2f1' : '#323130', errorBackground: !isInverted ? '#FDE7E9' : '#442726', blockingBackground: !isInverted ? '#FDE7E9' : '#442726', warningBackground: !isInverted ? '#FFF4CE' : '#433519', severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F', successBackground: !isInverted ? '#DFF6DD' : '#393D1B', \n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100', successText: !isInverted ? '#107C10' : '#92c353' }, s);\n var fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var result = {};\n // map palette\n var _a = p || {}, white = _a.white, black = _a.black, themePrimary = _a.themePrimary, themeDark = _a.themeDark, themeDarker = _a.themeDarker, themeDarkAlt = _a.themeDarkAlt, themeLighter = _a.themeLighter, neutralLight = _a.neutralLight, neutralLighter = _a.neutralLighter, neutralDark = _a.neutralDark, neutralQuaternary = _a.neutralQuaternary, neutralQuaternaryAlt = _a.neutralQuaternaryAlt, neutralPrimary = _a.neutralPrimary, neutralSecondary = _a.neutralSecondary, neutralSecondaryAlt = _a.neutralSecondaryAlt, neutralTertiary = _a.neutralTertiary, neutralTertiaryAlt = _a.neutralTertiaryAlt, neutralLighterAlt = _a.neutralLighterAlt, accent = _a.accent;\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = (s === null || s === void 0 ? void 0 : s.variantBorderHovered) || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n // map effects\n if (e === null || e === void 0 ? void 0 : e.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && (e === null || e === void 0 ? void 0 : e.elevation8)) {\n result.cardShadowHovered = e.elevation8;\n }\n else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n result = __assign(__assign({}, result), s);\n return result;\n}\nfunction _fixDeprecatedSlots(s, depComments) {\n // Add @deprecated tag as comment if enabled\n var dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n//# sourceMappingURL=makeSemanticColors.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Async(parent, onError) {\n this._timeoutIds = null;\n this._immediateIds = null;\n this._intervalIds = null;\n this._animationFrameIds = null;\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = function () {\n /* do nothing */\n };\n }\n /**\n * Dispose function, clears all async operations.\n */\n Async.prototype.dispose = function () {\n var id;\n this._isDisposed = true;\n this._parent = null;\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n this._timeoutIds = null;\n }\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n this._immediateIds = null;\n }\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n this._animationFrameIds = null;\n }\n };\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setTimeout = function (callback, duration) {\n var _this = this;\n var timeoutId = 0;\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n timeoutId = setTimeout(function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._timeoutIds) {\n delete _this._timeoutIds[timeoutId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._timeoutIds[timeoutId] = true;\n }\n return timeoutId;\n };\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n Async.prototype.clearTimeout = function (id) {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n };\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n Async.prototype.setImmediate = function (callback, targetElement) {\n var _this = this;\n var immediateId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n var setImmediateCallback = function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._immediateIds) {\n delete _this._immediateIds[immediateId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n immediateId = win.setTimeout(setImmediateCallback, 0);\n this._immediateIds[immediateId] = true;\n }\n return immediateId;\n };\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n Async.prototype.clearImmediate = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n };\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setInterval = function (callback, duration) {\n var _this = this;\n var intervalId = 0;\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n intervalId = setInterval(function () {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._intervalIds[intervalId] = true;\n }\n return intervalId;\n };\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n Async.prototype.clearInterval = function (id) {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n };\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.throttle = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n return this._noop;\n }\n var waitMS = wait || 0;\n var leading = true;\n var trailing = true;\n var lastExecuteTime = 0;\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n var callback = function (userCall) {\n var now = Date.now();\n var delta = now - lastExecuteTime;\n var waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(_this._parent, lastArgs);\n }\n else if (timeoutId === null && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n return resultFunction;\n };\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.debounce = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n var noOpFunction = (function () {\n /** Do nothing */\n });\n noOpFunction.cancel = function () {\n return;\n };\n noOpFunction.flush = (function () { return null; });\n noOpFunction.pending = function () { return false; };\n return noOpFunction;\n }\n var waitMS = wait || 0;\n var leading = false;\n var trailing = true;\n var maxWait = null;\n var lastCallTime = 0;\n var lastExecuteTime = Date.now();\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n var markExecuted = function (time) {\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n var invokeFunction = function (time) {\n markExecuted(time);\n lastResult = func.apply(_this._parent, lastArgs);\n };\n var callback = function (userCall) {\n var now = Date.now();\n var executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n var delta = now - lastCallTime;\n var waitLength = waitMS - delta;\n var maxWaitDelta = now - lastExecuteTime;\n var maxWaitExpired = false;\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n }\n else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n }\n else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n var pending = function () {\n return !!timeoutId;\n };\n var cancel = function () {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n var flush = function () {\n if (pending()) {\n invokeFunction(Date.now());\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n return resultFunction;\n };\n Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n var _this = this;\n var animationFrameId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n var animationFrameCallback = function () {\n try {\n // Now delete the record and call the callback.\n if (_this._animationFrameIds) {\n delete _this._animationFrameIds[animationFrameId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n this._animationFrameIds[animationFrameId] = true;\n }\n return animationFrameId;\n };\n Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype._logError = function (e) {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n };\n return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n __extends(BaseComponent, _super);\n /**\n * BaseComponent constructor\n * @param props - The props for the component.\n * @param context - The context for the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function BaseComponent(props, context) {\n var _this = _super.call(this, props, context) || this;\n // eslint-disable-next-line deprecation/deprecation\n _makeAllSafe(_this, BaseComponent.prototype, [\n 'componentDidMount',\n 'shouldComponentUpdate',\n 'getSnapshotBeforeUpdate',\n 'render',\n 'componentDidUpdate',\n 'componentWillUnmount',\n ]);\n return _this;\n }\n /**\n * When the component receives props, make sure the componentRef is updated.\n */\n BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._updateComponentRef(prevProps, this.props);\n };\n /**\n * When the component has mounted, update the componentRef.\n */\n BaseComponent.prototype.componentDidMount = function () {\n this._setComponentRef(this.props.componentRef, this);\n };\n /**\n * If we have disposables, dispose them automatically on unmount.\n */\n BaseComponent.prototype.componentWillUnmount = function () {\n this._setComponentRef(this.props.componentRef, null);\n if (this.__disposables) {\n for (var i = 0, len = this._disposables.length; i < len; i++) {\n var disposable = this.__disposables[i];\n if (disposable.dispose) {\n disposable.dispose();\n }\n }\n this.__disposables = null;\n }\n };\n Object.defineProperty(BaseComponent.prototype, \"className\", {\n /**\n * Gets the object's class name.\n */\n get: function () {\n if (!this.__className) {\n var funcNameRegex = /function (.{1,})\\(/;\n var results = funcNameRegex.exec(this.constructor.toString());\n this.__className = results && results.length > 1 ? results[1] : '';\n }\n return this.__className;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n /**\n * Allows subclasses to push things to this._disposables to be auto disposed.\n */\n get: function () {\n if (!this.__disposables) {\n this.__disposables = [];\n }\n return this.__disposables;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_async\", {\n /**\n * Gets the async instance associated with the component, created on demand. The async instance gives\n * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__async) {\n this.__async = new Async(this);\n this._disposables.push(this.__async);\n }\n return this.__async;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_events\", {\n /**\n * Gets the event group instance assocaited with the component, created on demand. The event instance\n * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n * will be automatically disconnected after unmounting. The helpers within the events object also\n * preserve the this reference so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__events) {\n this.__events = new EventGroup(this);\n this._disposables.push(this.__events);\n }\n return this.__events;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Helper to return a memoized ref resolver function.\n * @param refName - Name of the member to assign the ref to.\n * @returns A function instance keyed from the given refname.\n * @deprecated Use `createRef` from React.createRef.\n */\n BaseComponent.prototype._resolveRef = function (refName) {\n var _this = this;\n if (!this.__resolves) {\n this.__resolves = {};\n }\n if (!this.__resolves[refName]) {\n this.__resolves[refName] = function (ref) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (_this[refName] = ref);\n };\n }\n return this.__resolves[refName];\n };\n /**\n * Updates the componentRef (by calling it with \"this\" when necessary.)\n */\n BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n if (newProps === void 0) { newProps = {}; }\n // currentProps *should* always be defined, but verify that just in case a subclass is manually\n // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n this._setComponentRef(currentProps.componentRef, null);\n this._setComponentRef(newProps.componentRef, this);\n }\n };\n /**\n * Warns when a deprecated props are being used.\n *\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\n BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n warnDeprecations(this.className, this.props, deprecationMap);\n };\n /**\n * Warns when props which are mutually exclusive with each other are both used.\n *\n * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n */\n BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n };\n /**\n * Warns when props are required if a condition is met.\n *\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\n BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n };\n BaseComponent.prototype._setComponentRef = function (ref, value) {\n if (!this._skipComponentRefResolution && ref) {\n if (typeof ref === 'function') {\n ref(value);\n }\n if (typeof ref === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref.current = value;\n }\n }\n };\n return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n for (var i = 0, len = methodNames.length; i < len; i++) {\n _makeSafe(obj, prototype, methodNames[i]);\n }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n var classMethod = obj[methodName];\n var prototypeMethod = prototype[methodName];\n if (classMethod || prototypeMethod) {\n obj[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var retVal;\n if (prototypeMethod) {\n retVal = prototypeMethod.apply(this, args);\n }\n if (classMethod !== prototypeMethod) {\n retVal = classMethod.apply(this, args);\n }\n return retVal;\n };\n }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getWindow } from './dom/getWindow';\n/**\n * Utility component for delaying the render of a child component after a given delay. This component\n * requires a single child component; don't pass in many components. Wrap multiple components in a DIV\n * if necessary.\n *\n * @public\n * {@docCategory DelayedRender}\n */\nvar DelayedRender = /** @class */ (function (_super) {\n __extends(DelayedRender, _super);\n function DelayedRender(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isRendered: getWindow() === undefined,\n };\n return _this;\n }\n DelayedRender.prototype.componentDidMount = function () {\n var _this = this;\n var delay = this.props.delay;\n this._timeoutId = window.setTimeout(function () {\n _this.setState({\n isRendered: true,\n });\n }, delay);\n };\n DelayedRender.prototype.componentWillUnmount = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n };\n DelayedRender.prototype.render = function () {\n return this.state.isRendered ? React.Children.only(this.props.children) : null;\n };\n DelayedRender.defaultProps = {\n delay: 0,\n };\n return DelayedRender;\n}(React.Component));\nexport { DelayedRender };\n//# sourceMappingURL=DelayedRender.js.map","import { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nvar EventGroup = /** @class */ (function () {\n /** parent: the context in which events attached to non-HTMLElements are called */\n function EventGroup(parent) {\n this._id = EventGroup._uniqueId++;\n this._parent = parent;\n this._eventRecords = [];\n }\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent) {\n var retVal;\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, bubbleEvent || false, true);\n assign(ev, eventArgs);\n retVal = target.dispatchEvent(ev);\n }\n else if (typeof document !== 'undefined' && document.createEventObject) {\n // IE8\n var evObj = document.createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n while (target && retVal !== false) {\n var events = target.__events__;\n var eventRecords = events ? events[eventName] : null;\n if (eventRecords) {\n for (var id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n var eventRecordList = eventRecords[id];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n var record = eventRecordList[listIndex];\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n return retVal;\n };\n EventGroup.isObserved = function (target, eventName) {\n var events = target && target.__events__;\n return !!events && !!events[eventName];\n };\n /** Check to see if the target has declared support of the given event. */\n EventGroup.isDeclared = function (target, eventName) {\n var declaredEvents = target && target.__declaredEvents;\n return !!declaredEvents && !!declaredEvents[eventName];\n };\n EventGroup.stopPropagation = function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n else {\n // IE8\n event.cancelBubble = true;\n }\n };\n EventGroup._isElement = function (target) {\n return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n };\n EventGroup.prototype.dispose = function () {\n if (!this._isDisposed) {\n this._isDisposed = true;\n this.off();\n this._parent = null;\n }\n };\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n EventGroup.prototype.onAll = function (target, events, useCapture) {\n for (var eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n };\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n EventGroup.prototype.on = function (target, eventName, callback, options) {\n var _this = this;\n if (eventName.indexOf(',') > -1) {\n var events = eventName.split(/[ ,]+/);\n for (var i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n }\n else {\n var parent_1 = this._parent;\n var eventRecord = {\n target: target,\n eventName: eventName,\n parent: parent_1,\n callback: callback,\n options: options,\n };\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n var events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n events[eventName][this._id].push(eventRecord);\n events[eventName].count++;\n if (EventGroup._isElement(target)) {\n var processElementEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n var result;\n try {\n result = callback.apply(parent_1, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n if (result === false && args[0]) {\n var e = args[0];\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n e.cancelBubble = true;\n }\n }\n catch (e) {\n // ignore\n }\n return result;\n };\n eventRecord.elementCallback = processElementEvent;\n if (target.addEventListener) {\n target.addEventListener(eventName, processElementEvent, options);\n }\n else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n }\n else {\n var processObjectEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n return callback.apply(parent_1, args);\n };\n eventRecord.objectCallback = processObjectEvent;\n }\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n };\n EventGroup.prototype.off = function (target, eventName, callback, options) {\n for (var i = 0; i < this._eventRecords.length; i++) {\n var eventRecord = this._eventRecords[i];\n if ((!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)) {\n var events = eventRecord.target.__events__;\n var targetArrayLookup = events[eventRecord.eventName];\n var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n }\n else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n }\n else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n this._eventRecords.splice(i--, 1);\n }\n }\n };\n /** Trigger the given event in the context of this instance of EventGroup. */\n EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n };\n /** Declare an event as being supported by this instance of EventGroup. */\n EventGroup.prototype.declare = function (event) {\n var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n }\n else {\n for (var i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n };\n EventGroup._uniqueId = 0;\n return EventGroup;\n}());\nexport { EventGroup };\n//# sourceMappingURL=EventGroup.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\nvar GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nvar CALLBACK_STATE_PROP_NAME = '__callbacks__';\nvar _counter = 0;\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nvar GlobalSettings = /** @class */ (function () {\n function GlobalSettings() {\n }\n GlobalSettings.getValue = function (key, defaultValue) {\n var globalSettings = _getGlobalSettings();\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n return globalSettings[key];\n };\n GlobalSettings.setValue = function (key, value) {\n var globalSettings = _getGlobalSettings();\n var callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n var oldValue = globalSettings[key];\n if (value !== oldValue) {\n globalSettings[key] = value;\n var changeDescription = {\n oldValue: oldValue,\n value: value,\n key: key,\n };\n for (var id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n return value;\n };\n GlobalSettings.addChangeListener = function (cb) {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n var id = cb.__id__;\n var callbacks = _getCallbacks();\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n callbacks[id] = cb;\n };\n GlobalSettings.removeChangeListener = function (cb) {\n var callbacks = _getCallbacks();\n delete callbacks[cb.__id__];\n };\n return GlobalSettings;\n}());\nexport { GlobalSettings };\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings() {\n var _a;\n var win = getWindow();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var globalObj = win || {};\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = (_a = {},\n _a[CALLBACK_STATE_PROP_NAME] = {},\n _a);\n }\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\nfunction _getCallbacks() {\n var globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n//# sourceMappingURL=GlobalSettings.js.map","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport var KeyCodes = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n pauseBreak: 19,\n capslock: 20,\n escape: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n del: 46,\n zero: 48,\n one: 49,\n two: 50,\n three: 51,\n four: 52,\n five: 53,\n six: 54,\n seven: 55,\n eight: 56,\n nine: 57,\n colon: 58,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n leftWindow: 91,\n rightWindow: 92,\n select: 93,\n /* eslint-disable @typescript-eslint/naming-convention */\n zero_numpad: 96,\n one_numpad: 97,\n two_numpad: 98,\n three_numpad: 99,\n four_numpad: 100,\n five_numpad: 101,\n six_numpad: 102,\n seven_numpad: 103,\n eight_numpad: 104,\n nine_numpad: 105,\n /* eslint-enable @typescript-eslint/naming-convention */\n multiply: 106,\n add: 107,\n subtract: 109,\n decimalPoint: 110,\n divide: 111,\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123,\n numlock: 144,\n scrollLock: 145,\n semicolon: 186,\n equalSign: 187,\n comma: 188,\n dash: 189,\n period: 190,\n forwardSlash: 191,\n graveAccent: 192,\n openBracket: 219,\n backSlash: 220,\n closeBracket: 221,\n singleQuote: 222,\n};\n//# sourceMappingURL=KeyCodes.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n var ariaAttributes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ariaAttributes[_i] = arguments[_i];\n }\n var mergedAttribute = ariaAttributes\n .filter(function (arg) { return arg; })\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var index = -1;\n for (var i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n var index = findIndex(array, cb);\n if (index < 0) {\n return undefined;\n }\n return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n var array = [];\n for (var i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n return items.reduce(function (rows, currentValue, index) {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n }\n else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n var copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n var copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n var result = [];\n array.forEach(function (item) { return (result = result.concat(item)); });\n return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=array.js.map","import { mergeCssSets, Stylesheet } from '@fluentui/merge-styles';\nimport { getRTL } from './rtl';\nimport { getWindow } from './dom';\nvar MAX_CACHE_COUNT = 50;\nvar DEFAULT_SPECIFICITY_MULTIPLIER = 5;\nvar _memoizedClassNames = 0;\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () { return _memoizedClassNames++; });\n}\n// Note that because of the caching nature within the classNames memoization,\n// I've disabled this rule to simply be able to work with any types.\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// This represents a prop we attach to each Map to indicate the cached return value\n// associated with the graph node.\nvar retVal = '__retval__';\n/**\n * Creates a getClassNames function which calls getStyles given the props, and injects them\n * into mergeStyleSets.\n *\n * Note that the props you pass in on every render should be in the same order and\n * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating\n * these will cause extra recalcs to occur.\n */\nexport function classNamesFunction(options) {\n // We build a trie where each node is a Map. The map entry key represents an argument\n // value, and the entry value is another node (Map). Each node has a `__retval__`\n // property which is used to hold the cached response.\n if (options === void 0) { options = {}; }\n // To derive the response, we can simply ensure the arguments are added or already\n // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise\n // we call the `getStyles` api to evaluate, cache on the property, and return that.\n var map = new Map();\n var styleCalcCount = 0;\n var getClassNamesCount = 0;\n var currentMemoizedClassNames = _memoizedClassNames;\n var getClassNames = function (styleFunctionOrObject, styleProps) {\n var _a;\n if (styleProps === void 0) { styleProps = {}; }\n // If useStaticStyles is true, styleFunctionOrObject returns slot to classname mappings.\n // If there is also no style overrides, we can skip merge styles completely and\n // simply return the result from the style funcion.\n if (options.useStaticStyles &&\n typeof styleFunctionOrObject === 'function' &&\n styleFunctionOrObject.__noStyleOverride__) {\n return styleFunctionOrObject(styleProps);\n }\n getClassNamesCount++;\n var current = map;\n var theme = styleProps.theme;\n var rtl = theme && theme.rtl !== undefined ? theme.rtl : getRTL();\n var disableCaching = options.disableCaching;\n // On reset of our stylesheet, reset memoized cache.\n if (currentMemoizedClassNames !== _memoizedClassNames) {\n currentMemoizedClassNames = _memoizedClassNames;\n map = new Map();\n styleCalcCount = 0;\n }\n if (!options.disableCaching) {\n current = _traverseMap(map, styleFunctionOrObject);\n current = _traverseMap(current, styleProps);\n }\n if (disableCaching || !current[retVal]) {\n if (styleFunctionOrObject === undefined) {\n current[retVal] = {};\n }\n else {\n current[retVal] = mergeCssSets([\n (typeof styleFunctionOrObject === 'function'\n ? styleFunctionOrObject(styleProps)\n : styleFunctionOrObject),\n ], { rtl: !!rtl, specificityMultiplier: options.useStaticStyles ? DEFAULT_SPECIFICITY_MULTIPLIER : undefined });\n }\n if (!disableCaching) {\n styleCalcCount++;\n }\n }\n if (styleCalcCount > (options.cacheSize || MAX_CACHE_COUNT)) {\n var win = getWindow();\n if ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.enableClassNameCacheFullWarning) {\n // eslint-disable-next-line no-console\n console.warn(\"Styles are being recalculated too frequently. Cache miss rate is \" + styleCalcCount + \"/\" + getClassNamesCount + \".\");\n // eslint-disable-next-line no-console\n console.trace();\n }\n map.clear();\n styleCalcCount = 0;\n // Mutate the options passed in, that's all we can do.\n options.disableCaching = true;\n }\n // Note: the retVal is an attached property on the Map; not a key in the Map. We use this attached property to\n // cache the return value for this branch of the graph.\n return current[retVal];\n };\n return getClassNames;\n}\nfunction _traverseEdge(current, value) {\n value = _normalizeValue(value);\n if (!current.has(value)) {\n current.set(value, new Map());\n }\n return current.get(value);\n}\nfunction _traverseMap(current, inputs) {\n if (typeof inputs === 'function') {\n var cachedInputsFromStyled = inputs.__cachedInputs__;\n if (cachedInputsFromStyled) {\n // The styled helper will generate the styles function and will attach the cached\n // inputs (consisting of the default styles, customzied styles, and user provided styles.)\n // These should be used as cache keys for deriving the memoized value.\n for (var _i = 0, _a = inputs.__cachedInputs__; _i < _a.length; _i++) {\n var input = _a[_i];\n current = _traverseEdge(current, input);\n }\n }\n else {\n current = _traverseEdge(current, inputs);\n }\n }\n else if (typeof inputs === 'object') {\n for (var propName in inputs) {\n if (inputs.hasOwnProperty(propName)) {\n current = _traverseEdge(current, inputs[propName]);\n }\n }\n }\n return current;\n}\nfunction _normalizeValue(value) {\n switch (value) {\n case undefined:\n return '__undefined__';\n case null:\n return '__null__';\n default:\n return value;\n }\n}\n//# sourceMappingURL=classNamesFunction.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n var Outer = outer;\n var outerMemoizer = createMemoizer(function (inner) {\n if (outer === inner) {\n throw new Error('Attempted to compose a component with itself.');\n }\n var Inner = inner;\n var innerMemoizer = createMemoizer(function (defaultRender) {\n var InnerWithDefaultRender = function (innerProps) {\n return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n };\n return InnerWithDefaultRender;\n });\n var OuterWithDefaultRender = function (outerProps) {\n var defaultRender = outerProps.defaultRender;\n return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n };\n return OuterWithDefaultRender;\n });\n return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) { return function (newValue) {\n for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n var ref = _a[_i];\n if (typeof ref === 'function') {\n ref(newValue);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = newValue;\n }\n }\n}; };\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n var local = {\n refs: [],\n };\n return function () {\n var newRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newRefs[_i] = arguments[_i];\n }\n if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n local.resolver = createResolver(local);\n }\n local.refs = newRefs;\n return local.resolver;\n };\n};\n//# sourceMappingURL=createMergedRef.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n }\n else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var key in arg) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings } from '../GlobalSettings';\nvar CustomizationsGlobalKey = 'customizations';\nvar NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\nvar _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\nvar _events = [];\nvar Customizations = /** @class */ (function () {\n function Customizations() {\n }\n Customizations.reset = function () {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n };\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n Customizations.applySettings = function (settings) {\n _allSettings.settings = __assign(__assign({}, _allSettings.settings), settings);\n Customizations._raiseChange();\n };\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n Customizations.applyScopedSettings = function (scopeName, settings) {\n _allSettings.scopedSettings[scopeName] = __assign(__assign({}, _allSettings.scopedSettings[scopeName]), settings);\n Customizations._raiseChange();\n };\n Customizations.getSettings = function (properties, scopeName, localSettings) {\n if (localSettings === void 0) { localSettings = NO_CUSTOMIZATIONS; }\n var settings = {};\n var localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n var globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n return settings;\n };\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n Customizations.applyBatchedUpdates = function (code, suppressUpdate) {\n Customizations._suppressUpdates = true;\n try {\n code();\n }\n catch (_a) {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n };\n Customizations.observe = function (onChange) {\n _events.push(onChange);\n };\n Customizations.unobserve = function (onChange) {\n _events = _events.filter(function (cb) { return cb !== onChange; });\n };\n Customizations._raiseChange = function () {\n if (!Customizations._suppressUpdates) {\n _events.forEach(function (cb) { return cb(); });\n }\n };\n return Customizations;\n}());\nexport { Customizations };\n//# sourceMappingURL=Customizations.js.map","import * as React from 'react';\nexport var CustomizerContext = React.createContext({\n customizations: {\n inCustomizerContext: false,\n settings: {},\n scopedSettings: {},\n },\n});\n//# sourceMappingURL=CustomizerContext.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets } from '@fluentui/merge-styles';\nexport function customizable(scope, fields, concatStyles) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function customizableFactory(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(ComponentWithInjectedProps, _super);\n function ComponentWithInjectedProps(props) {\n var _this = _super.call(this, props) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._styleCache = {};\n _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n return _this;\n }\n ComponentWithInjectedProps.prototype.componentDidMount = function () {\n Customizations.observe(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.render = function () {\n var _this = this;\n return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var componentProps = _this.props;\n // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n }\n // If concatStyles is true and custom styles have been defined compute those styles\n if (concatStyles && defaultProps.styles) {\n if (_this._styleCache.default !== defaultProps.styles ||\n _this._styleCache.component !== componentProps.styles) {\n var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n _this._styleCache.default = defaultProps.styles;\n _this._styleCache.component = componentProps.styles;\n _this._styleCache.merged = mergedStyles;\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged }));\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps));\n }));\n };\n ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n this.forceUpdate();\n };\n return ComponentWithInjectedProps;\n }(React.Component)),\n _a.displayName = 'Customized' + scope,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n };\n}\n//# sourceMappingURL=customizable.js.map","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\n/**\n * Hook to get Customizations settings from Customizations singleton or CustomizerContext.\n * It will trigger component state update on settings change observed.\n */\nexport function useCustomizationSettings(properties, scopeName) {\n var forceUpdate = useForceUpdate();\n var customizations = React.useContext(CustomizerContext).customizations;\n var inCustomizerContext = customizations.inCustomizerContext;\n React.useEffect(function () {\n if (!inCustomizerContext) {\n Customizations.observe(forceUpdate);\n }\n return function () {\n if (!inCustomizerContext) {\n Customizations.unobserve(forceUpdate);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- exclude forceUpdate\n }, [inCustomizerContext]);\n return Customizations.getSettings(properties, scopeName, customizations);\n}\nfunction useForceUpdate() {\n var _a = React.useState(0), setValue = _a[1];\n return function () { return setValue(function (value) { return ++value; }); };\n}\n//# sourceMappingURL=useCustomizationSettings.js.map","import { _isSSR } from './setSSR';\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth. Also note that the SSR flag is used to test ssr scenarios even if\n * document is defined (from JSDOM for example.)\n *\n * @public\n */\nexport function getDocument(rootElement) {\n if (_isSSR || typeof document === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n//# sourceMappingURL=getDocument.js.map","import { _isSSR } from './setSSR';\nvar _window = undefined;\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n _window = window;\n}\ncatch (e) {\n /* no-op */\n}\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement) {\n if (_isSSR || typeof _window === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n//# sourceMappingURL=getWindow.js.map","export function on(element, eventName, callback, options) {\n element.addEventListener(eventName, callback, options);\n return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","export var _isSSR = false;\n/**\n * Helper to set ssr mode to simulate no window object returned from getWindow helper.\n *\n * @public\n */\nexport function setSSR(isEnabled) {\n _isSSR = isEnabled;\n}\n//# sourceMappingURL=setSSR.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement) {\n var element = getNextElement(rootElement, rootElement, true, false, false, true);\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check its children.\n if (traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getPreviousElement(rootElement, currentElement.lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n return childMatch;\n }\n var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n var childMatchParent = childMatch.parentElement;\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its previous sibling.\n var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (siblingMatch) {\n return siblingMatch;\n }\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n }\n return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its children.\n if (!suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatch) {\n return childMatch;\n }\n }\n if (currentElement === rootElement) {\n return null;\n }\n // Check its sibling.\n var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (siblingMatch) {\n return siblingMatch;\n }\n if (!suppressParentTraversal) {\n return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n }\n return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n // Fallback to other methods of determining actual visibility.\n return (element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element) {\n return (!!element &&\n isElementVisible(element) &&\n !element.hidden &&\n window.getComputedStyle(element).visibility !== 'hidden');\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex) {\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || element.disabled) {\n return false;\n }\n var tabIndex = 0;\n var tabIndexAttributeValue = null;\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n var result = !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet);\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n var document = getDocument(element);\n var currentActiveElement = document && document.activeElement;\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute) {\n return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\nvar targetToFocusOnNextRepaint = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n if (element) {\n // An element was already queued to be focused, so replace that one with the new element\n if (targetToFocusOnNextRepaint) {\n targetToFocusOnNextRepaint = element;\n return;\n }\n targetToFocusOnNextRepaint = element;\n var win = getWindow(element);\n if (win) {\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n win.requestAnimationFrame(function () {\n targetToFocusOnNextRepaint && targetToFocusOnNextRepaint.focus();\n // We are done focusing for this frame, so reset the queued focus element\n targetToFocusOnNextRepaint = undefined;\n });\n }\n }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n var element = parent;\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var index = path_1[_i];\n var nextChild = element.children[Math.min(index, element.children.length - 1)];\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n var path = [];\n while (toElement && fromElement && toElement !== fromElement) {\n var parent_1 = getParent(toElement, true);\n if (parent_1 === null) {\n return [];\n }\n path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n toElement = parent_1;\n }\n return path;\n}\n//# sourceMappingURL=focus.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute) {\n var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); });\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@fluentui/merge-styles';\n// Initialize global window id.\nvar CURRENT_ID_PROPERTY = '__currentId__';\nvar DEFAULT_ID_STRING = 'id__';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar _global = getWindow() || {};\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n _global[CURRENT_ID_PROPERTY] = 0;\n}\nvar _initializedStylesheetResets = false;\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix) {\n if (!_initializedStylesheetResets) {\n // Configure ids to reset on stylesheet resets.\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(resetIds);\n }\n _initializedStylesheetResets = true;\n }\n var index = _global[CURRENT_ID_PROPERTY]++;\n return (prefix === undefined ? DEFAULT_ID_STRING : prefix) + index;\n}\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter) {\n if (counter === void 0) { counter = 0; }\n _global[CURRENT_ID_PROPERTY] = counter;\n}\n//# sourceMappingURL=getId.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n var props = __assign({}, propsWithoutDefaults);\n for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n var key = _a[_i];\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dest[name_1] = source[name_1];\n }\n }\n return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n var functions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n functions[_i - 1] = arguments[_i];\n }\n if (functions.length < 2) {\n return functions[0];\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n functions.forEach(function (f) { return f && f.apply(parent, args); });\n };\n}\n//# sourceMappingURL=appendFunction.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n extendComponent(obj, {\n componentDidMount: _onMount,\n componentDidUpdate: _onUpdate,\n componentWillUnmount: _onUnmount,\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onMount() {\n _setComponentRef(this.props.componentRef, this);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUpdate(prevProps) {\n if (prevProps.componentRef !== this.props.componentRef) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _setComponentRef(prevProps.componentRef, null);\n _setComponentRef(this.props.componentRef, this);\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUnmount() {\n _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n if (componentRef) {\n if (typeof componentRef === 'object') {\n componentRef.current = value;\n }\n else if (typeof componentRef === 'function') {\n componentRef(value);\n }\n }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n for (var name_1 in methods) {\n if (methods.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n }\n }\n}\n//# sourceMappingURL=extendComponent.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nvar _initializedStylesheetResets = false;\nvar _resetCounter = 0;\nvar _emptyObject = { empty: true };\nvar _dictionary = {};\nvar _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap) {\n _weakMap = weakMap;\n}\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations() {\n _resetCounter++;\n}\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(_target, _key, descriptor) {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n var fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n return {\n configurable: true,\n get: function () {\n return fn;\n },\n };\n}\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction(cb, maxCacheSize, ignoreNullOrUndefinedResult) {\n if (maxCacheSize === void 0) { maxCacheSize = 100; }\n if (ignoreNullOrUndefinedResult === void 0) { ignoreNullOrUndefinedResult = false; }\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n if (!_initializedStylesheetResets) {\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n var rootNode;\n var cacheSize = 0;\n var localResetCounter = _resetCounter;\n return function memoizedFunction() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var currentNode = rootNode;\n if (rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n currentNode = rootNode;\n // Traverse the tree until we find the match.\n for (var i = 0; i < args.length; i++) {\n var arg = _normalizeArg(args[i]);\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n currentNode = currentNode.map.get(arg);\n }\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb.apply(void 0, args);\n cacheSize++;\n }\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb.apply(void 0, args);\n }\n return currentNode.value;\n };\n}\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer(getValue) {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n var cache = new _weakMap();\n function memoizedGetValue(input) {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n if (cache.has(input)) {\n return cache.get(input);\n }\n var value = getValue(input);\n cache.set(input, value);\n return value;\n }\n return memoizedGetValue;\n}\nfunction _normalizeArg(val) {\n if (!val) {\n return _emptyObject;\n }\n else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n }\n else if (!_dictionary[val]) {\n _dictionary[val] = { val: val };\n }\n return _dictionary[val];\n}\nfunction _createNode() {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n//# sourceMappingURL=memoize.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/** Tag names to ignore when modalizing */\nvar tagsToIgnore = ['TEMPLATE', 'STYLE', 'SCRIPT'];\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n var targetDocument = getDocument(target);\n if (!targetDocument) {\n // can't do this in SSR\n return function () { return undefined; };\n }\n var affectedNodes = [];\n // start at target, then recurse and do the same for parent, until we reach
\n while (target !== targetDocument.body && target.parentElement) {\n // grab all siblings of current element\n for (var _i = 0, _a = target.parentElement.children; _i < _a.length; _i++) {\n var sibling = _a[_i];\n // but ignore elements that are already aria-hidden\n var ariaHidden = sibling.getAttribute('aria-hidden');\n if (sibling !== target && (ariaHidden === null || ariaHidden === void 0 ? void 0 : ariaHidden.toLowerCase()) !== 'true' && tagsToIgnore.indexOf(sibling.tagName) === -1) {\n affectedNodes.push([sibling, ariaHidden]);\n }\n }\n target = target.parentElement;\n }\n // take all those elements and set aria-hidden=true on them\n affectedNodes.forEach(function (_a) {\n var node = _a[0];\n node.setAttribute('aria-hidden', 'true');\n });\n return function () {\n unmodalize(affectedNodes);\n affectedNodes = []; // dispose\n };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n affectedNodes.forEach(function (_a) {\n var node = _a[0], originalValue = _a[1];\n // Restore the original value (false or unset)\n if (originalValue) {\n node.setAttribute('aria-hidden', originalValue);\n }\n else {\n node.removeAttribute('aria-hidden');\n }\n });\n}\n//# sourceMappingURL=modalize.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n for (var propName in a) {\n if (a.hasOwnProperty(propName)) {\n if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (var propName in b) {\n if (b.hasOwnProperty(propName)) {\n if (!a.hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n target = target || {};\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var sourceObject = args_1[_a];\n if (sourceObject) {\n for (var propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n // map