{"version":3,"sources":["../node_modules/office-ui-fabric-react/lib/common/DirectionalHint.js","../node_modules/node-libs-browser/node_modules/punycode/punycode.js","../node_modules/office-ui-fabric-react/lib/components/Image/Image.types.js","../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.types.js","../node_modules/object-assign/index.js","../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.styles.js","../node_modules/optimism/lib/bundle.esm.js","../node_modules/office-ui-fabric-react/lib/components/Button/BaseButton.styles.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.types.js","../node_modules/office-ui-fabric-react/lib/components/Icon/ImageIcon.js","../node_modules/office-ui-fabric-react/lib/utilities/contextualMenu/contextualMenuUtility.js","../node_modules/office-ui-fabric-react/lib/utilities/decorators/withResponsiveMode.js","../node_modules/office-ui-fabric-react/lib/utilities/decorators/BaseDecorator.js","../node_modules/office-ui-fabric-react/lib/utilities/keytips/KeytipConstants.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItem.base.js","../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.classNames.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.classNames.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItem.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","../node_modules/office-ui-fabric-react/lib/utilities/keytips/KeytipManager.js","../node_modules/office-ui-fabric-react/lib/utilities/keytips/KeytipUtils.js","../node_modules/office-ui-fabric-react/lib/components/KeytipData/useKeytipData.js","../node_modules/office-ui-fabric-react/lib/components/KeytipData/KeytipData.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.base.js","../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.js","../node_modules/office-ui-fabric-react/lib/components/Divider/VerticalDivider.styles.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.base.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.styles.js","../node_modules/office-ui-fabric-react/lib/components/ContextualMenu/ContextualMenu.js","../node_modules/office-ui-fabric-react/lib/components/Button/BaseButton.classNames.js","../node_modules/office-ui-fabric-react/lib/components/Button/SplitButton/SplitButton.classNames.js","../node_modules/office-ui-fabric-react/lib/components/Button/BaseButton.js","../node_modules/office-ui-fabric-react/lib/components/Button/SplitButton/SplitButton.styles.js","../node_modules/office-ui-fabric-react/lib/components/Image/Image.base.js","../node_modules/office-ui-fabric-react/lib/components/Image/Image.styles.js","../node_modules/office-ui-fabric-react/lib/components/Image/Image.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.types.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.types.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.base.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.styles.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.base.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.styles.js","../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.js","../node_modules/office-ui-fabric-react/lib/components/Icon/FontIcon.js","../node_modules/popper.js/dist/esm/popper.js","../node_modules/office-ui-fabric-react/lib/components/Button/DefaultButton/DefaultButton.styles.js","../node_modules/office-ui-fabric-react/lib/components/Button/ButtonThemes.js","../node_modules/office-ui-fabric-react/lib/components/Button/DefaultButton/DefaultButton.js","../node_modules/office-ui-fabric-react/lib/components/Button/PrimaryButton/PrimaryButton.js","../node_modules/mui-downshift/dist/Input.js","../node_modules/mui-downshift/dist/Menu.js","../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.types.js","../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.base.js","../node_modules/office-ui-fabric-react/lib/components/Icon/Icon.js","../node_modules/office-ui-fabric-react/lib/components/Button/ActionButton/ActionButton.styles.js","../node_modules/office-ui-fabric-react/lib/components/Button/ActionButton/ActionButton.js","../node_modules/office-ui-fabric-react/lib/components/Button/CommandButton/CommandButton.js","../node_modules/office-ui-fabric-react/lib/components/Button/IconButton/IconButton.styles.js","../node_modules/office-ui-fabric-react/lib/components/Button/IconButton/IconButton.js","../node_modules/office-ui-fabric-react/lib/components/Popup/Popup.js","../node_modules/office-ui-fabric-react/lib/components/FocusTrapZone/FocusTrapZone.js","../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.notification.js","../node_modules/office-ui-fabric-react/lib/components/Fabric/Fabric.base.js","../node_modules/office-ui-fabric-react/lib/components/Fabric/Fabric.styles.js","../node_modules/office-ui-fabric-react/lib/components/Fabric/Fabric.js","../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.base.js","../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.styles.js","../node_modules/office-ui-fabric-react/lib/components/Layer/Layer.js","../node_modules/office-ui-fabric-react/lib/utilities/positioning/positioning.types.js","../node_modules/office-ui-fabric-react/lib/utilities/positioning/positioning.js","../node_modules/office-ui-fabric-react/lib/components/Callout/CalloutContent.base.js","../node_modules/office-ui-fabric-react/lib/components/Callout/CalloutContent.styles.js","../node_modules/office-ui-fabric-react/lib/components/Callout/CalloutContent.js","../node_modules/office-ui-fabric-react/lib/components/Callout/Callout.js","../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.base.js","../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.base.js","../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.styles.js","../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.js","../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.styles.js","../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.js","../node_modules/mui-downshift/dist/index.js","../node_modules/office-ui-fabric-react/node_modules/tslib/tslib.es6.js"],"names":["DirectionalHint","topLeftEdge","topCenter","topRightEdge","topAutoEdge","bottomLeftEdge","bottomCenter","bottomRightEdge","bottomAutoEdge","leftTopEdge","leftCenter","leftBottomEdge","rightTopEdge","rightCenter","rightBottomEdge","root","exports","nodeType","module","freeGlobal","global","window","self","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","length","result","mapDomain","string","parts","split","replace","join","ucs2decode","value","extra","output","counter","charCodeAt","push","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","baseMinusTMin","base","decode","input","out","basic","j","index","oldi","w","t","baseMinusT","codePoint","inputLength","i","n","bias","lastIndexOf","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","test","slice","toLowerCase","ImageFit","ImageCoverStyle","ImageLoadState","PanelType","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","assign","test1","getOwnPropertyNames","test2","test3","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","s","arguments","key","call","classNames","display","placeholder","width","image","overflow","MS_ICON","getStyles","props","className","iconClassName","isPlaceholder","isImage","styles","imageContainer","defaultDispose","Cache","max","dispose","Infinity","this","Map","newest","oldest","has","get","entry","getEntry","older","newer","set","clean","size","delete","parentEntrySlot","reusableEmptyArray","emptySetPool","assert","condition","optionalMessage","Error","valueGet","Entry","args","parents","Set","childValues","dirtyChildren","dirty","recomputing","count","recompute","child","parent","getValue","add","mightBeDirty","reportDirtyChild","reportCleanChild","rememberParent","maybeReportOrphan","originalChildren","forgetChildren","withValue","recomputeNewValue","subscribe","maybeUnsubscribe","unsubscribe","apply","e","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","_this","forgetChild","pop","childValue","a","b","len","valueIs","removeDirtyChild","dc","reportOrphan","children","_value","KeyTrie","weakness","lookup","_i","lookupArray","node","getChildTrie","data","create","isObjRef","weak","WeakMap","strong","keyTrie","defaultMakeCacheKey","caches","wrap","originalFunction","options","cache","pow","disposable","makeCacheKey","optimistic","hasValue","Array","clear","noOutline","outline","iconStyle","fontSize","margin","height","lineHeight","textAlign","flexShrink","theme","_a","_b","semanticColors","effects","fonts","border","buttonBorder","disabledBackground","disabledText","buttonHighContrastFocus","left","top","bottom","right","outlineColor","inset","highContrastStyle","borderColor","medium","boxSizing","userSelect","textDecoration","cursor","padding","borderRadius","roundedCorner2","selectors","position","rootDisabled","backgroundColor","color","iconDisabled","menuIconDisabled","flexContainer","flexWrap","justifyContent","alignItems","description","textContainer","flexGrow","icon","mediumPlus","menuIcon","small","label","screenReaderText","ContextualMenuItemType","ImageIcon","imageProps","nativeProps","containerProps","role","alt","css","Image","getIsChecked","item","canCheck","isChecked","checked","hasSubmenu","subMenuProps","items","isItemDisabled","isDisabled","disabled","getMenuItemAriaRole","ResponsiveMode","_super","BaseDecorator","_updateComposedComponentRef","bind","composedComponentInstance","_composedComponentInstance","_hoisted","hoist","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","getInitialResponsiveMode","large","withResponsiveMode","ComposedComponent","resultClass","WithResponsiveMode","_onResize","responsiveMode","getResponsiveMode","context","state","setState","_events","EventGroup","componentDidMount","on","componentWillUnmount","render","unknown","ref","contextType","hoistStatics","getWidthOfCurrentWindow","currentWindow","document","documentElement","clientWidth","innerWidth","KeytipEvents","renderItemIcon","hasIcons","iconProps","onRenderIcon","Icon","renderCheckMarkIcon","onCheckmarkClick","isItemChecked","iconName","checkmarkIcon","onClick","renderItemName","text","name","renderSecondaryText","secondaryText","renderSubMenuIcon","submenuIconProps","subMenuIcon","ContextualMenuItemBase","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissMenu","dismissAll","initializeComponentRef","renderContent","onRenderContent","_renderLayout","linkContentMenu","linkContent","defaultRenders","memoize","wrapper","divider","palette","neutralTertiaryAlt","MediumScreenSelector","getMenuItemStyles","_c","_d","_e","ContextualMenuItemBackgroundHoverColor","menuItemBackgroundHovered","ContextualMenuItemTextHoverColor","menuItemTextHovered","ContextualMenuItemBackgroundSelectedColor","menuItemBackgroundPressed","ContextualMenuItemDividerColor","bodyDivider","menuItemStyles","bodyText","disabledBodyText","pointerEvents","opacity","rootHovered","themeDarkAlt","neutralPrimary","rootFocused","white","rootChecked","rootPressed","themeDark","rootExpanded","bodyTextChecked","whiteSpace","maxWidth","anchorLink","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","verticalAlign","textOverflow","neutralSecondary","paddingLeft","minHeight","maxHeight","iconColor","bodySubtext","splitButtonFlexContainer","getSplitButtonVerticalDividerClassNames","GlobalClassNames","isExpanded","splitMenu","expanded","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","primaryDisabled","background","splitPrimary","flexBasis","minWidth","splitContainer","visibility","getItemStyles","ContextualMenuItem","styled","scope","ContextualMenuItemWrapper","_onItemMouseEnter","ev","onItemMouseEnter","currentTarget","_onItemClick","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubmenuTarget","shouldComponentUpdate","newProps","KEYTIP_ADDED","KEYTIP_REMOVED","KEYTIP_UPDATED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","ENTER_KEYTIP_MODE","EXIT_KEYTIP_MODE","KeytipManager","keytips","persistedKeytips","sequenceMapping","inKeytipMode","shouldEnterKeytipMode","delayUpdatingKeytipChange","getInstance","_instance","init","register","keytipProps","persisted","addParentOverflow","keySequences","toString","uniqueKeytip","_getUniqueKtp","uniqueID","event_1","raise","keytip","update","newKeytipProps","oldKeyTip","visible","unregister","keytipToRemove","event","enterKeytipMode","exitKeytipMode","getKeytips","fullSequence","parentKeytip","overflowSetSequence","menuExecute","overflowButtonSequences","keytipSequences","getId","sequencesToID","reduce","prevValue","keySequence","useKeytipData","uniqueId","keytipManager","useConst","prevOptions","usePrevious","current","nativeKeytipProps","ariaDescribedBy","keytipId","describedByPrepend","describedby","getAriaDescribedBy","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","mergeOverflows","getKeytipData","KeytipData","ContextualMenuAnchor","_anchor","_getMemoizedMenuButtonKeytipProps","hasMenu","onItemClick","_renderAriaDescription","ariaDescription","id","_ariaDescriptionId","focusableElementIndex","totalItemCount","hasCheckmarks","contextualMenuItemAs","ChildrenRenderer","expandedMenuItemKey","anchorRel","rel","itemHasSubmenu","itemProps","keytipAttributes","href","style","onMouseEnter","onMouseLeave","onMouseMove","onKeyDown","componentRef","ContextualMenuButton","_btn","onItemMouseDown","defaultRole","ariaLabel","buttonNativeProperties","itemRole","ariaDescribedByIds","itemButtonProperties","onMouseDown","title","classNamesFunction","VerticalDividerBase","deprecatedGetClassNames","getClassNames","displayName","VerticalDivider","names","ContextualMenuSplitButton","which","KeyCodes","enter","_executeItemClick","preventDefault","stopPropagation","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","_processingTouch","_onTouchStart","_handleTouchAndPointerEvent","_onPointerDown","pointerType","stopImmediatePropagation","_async","Async","splitButton","onTouchStart","tabIndex","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","itemComponentProps","getDividerClassNames","buttonProps","onTap","_lastTouchTimeoutId","clearTimeout","setTimeout","getContextualMenuItemClassNames","getSubmenuItems","overrideItems","items_1","subItem","preferMenuTargetAsEventTarget","contextItem","getOnClickWithOverrideTarget","_getMenuItemStylesFunction","styleProps","ContextualMenuBase","_mounted","dismiss","onDismiss","_tryFocusPreviousActiveElement","onRestoreFocus","containsFocus","_previousActiveElement","focus","_onRenderMenuList","menuListProps","defaultRender","indexCorrection","_classNames","list","_onKeyDown","onKeyUp","_onKeyUp","menuItem","_renderMenuItem","itemType","Divider","Header","indexIncrease","customOnRenderListLength","itemClassNames","renderedItems","getItemClassNames","subMenuIconClassName","itemStyleProps","subComponentStyles","_renderSeparator","headerItem","_renderHeaderMenuItem","_renderListItem","Section","_renderSectionItem","_renderNormalItem","_defaultMenuItemRenderer","_lastKeyDownWasAltOrMeta","_isAltOrMeta","dismissAllMenus","escape","_keyHandler","_shouldHandleKeyDown","_shouldCloseSubMenu","up","altKey","metaKey","_onMenuFocusCapture","delayUpdateFocusOnHover","_shouldUpdateFocusOnMouseEvent","_shouldHandleKeyUp","keyPressIsAltOrMetaAlone","shouldHandleKey","handled","_focusingPreviousElement","submenuCloseKey","isSubMenu","_adjustedFocusZoneProps","direction","vertical","checkForNoWrap","_onMenuKeyDown","_host","hasModifier","isUp","isDown","down","elementToFocus","lastChild","firstChild","_onScroll","_isScrollIdle","_scrollIdleTimeoutId","_onItemMouseEnterBase","_shouldIgnoreMouseEvent","_updateFocusOnMouseEvent","_onItemMouseMoveBase","targetElement","_gotMouseMove","_enterTimerId","_targetWindow","activeElement","_onMouseItemLeave","setActive","_onItemMouseDown","_onItemClickBase","_cancelSubMenuTimer","expandedByMouseClick","nativeEvent","detail","_onItemSubMenuExpand","_onAnchorClick","menuTarget","overrideTarget","defaultPrevented","openKey","_onSubMenuDismiss","dismissedMenuItemKey","_onPointerAndTouchEvent","warnDeprecations","getMenuClassNames","contextualMenuItems","subMenuId","_id","newState","shouldUpdateWhenHidden","hidden","UNSAFE_componentWillUpdate","newTarget","_setTargetWindowAndElement","_isHidden","_onMenuClosed","_onMenuOpened","UNSAFE_componentWillMount","onMenuDismissed","isBeakVisible","labelElementId","beakWidth","directionalHint","directionalHintForRTL","alignTargetEdge","gapSpace","coverTarget","doNotLayer","bounds","useTargetWidth","useTargetAsMinWidth","directionalHintFixed","shouldFocusOnMount","shouldFocusOnContainer","calloutProps","onRenderSubMenu","_onRenderSubMenu","onRenderMenuList","focusZoneProps","itemsHaveIcons","contextualMenuItems_1","sectionProps","_getFocusZoneDirection","contextMenuStyle","some","submenuItem","canAnyMenuItemsCheck","submenuProps","_getSubmenuProps","targetAsHtmlElement","_target","offsetWidth","targetWidth","getBoundingClientRect","items_2","calloutStyles","callout","Callout","setInitialFocus","onScroll","host","container","onFocusCapture","FocusZone","isCircularNavigation","handleTabKey","all","defaultMenuItemRenderer","onMenuOpened","off","documentContainsFocus","hasFocus","originalElement","sectionItem","menuClassNames","groupProps","headerContextualMenuItem","ariaLabellledby","topDivider","contextualMenuItem","itemsIndex","bottomDivider","content","fromSection","onRender","_renderAnchorMenuItem","_renderSplitButton","_renderButtonItem","divHtmlProperties","header","subMenuHoverDelay","timeoutDuration","_findItemByKey","_findItemByKeyFromItems","items_3","match","currentElement","currentDoc","getDocument","querySelector","getWindow","x","y","defaultProps","persist","Event","Element","isopen","LocalContextualMenu","menuBackground","listStyleType","fontWeight","semibold","menuHeader","paddingRight","paddingBottom","paddingTop","boxShadow","elevation8","composeRenderFunction","ContextualMenu","ButtonGlobalClassNames","msButton","msButtonHasMenu","msButtonIcon","msButtonMenuIcon","msButtonLabel","msButtonDescription","msButtonScreenReaderText","msButtonFlexContainer","msButtonTextContainer","getBaseButtonClassNames","variantClassName","menuIconClassName","isSplit","iconExpandedHovered","menuIconExpandedHovered","rootExpandedHovered","rootHasMenu","labelHovered","iconHovered","descriptionHovered","menuIconHovered","iconPressed","descriptionPressed","menuIconPressed","rootCheckedDisabled","rootCheckedHovered","rootCheckedPressed","iconExpanded","iconChecked","labelChecked","labelDisabled","menuIconChecked","menuIconExpanded","descriptionChecked","descriptionDisabled","splitButtonMenuButton","splitButtonMenuButtonExpanded","splitButtonMenuButtonDisabled","splitButtonMenuButtonChecked","splitButtonMenuFocused","splitButtonContainer","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonMenuIcon","splitButtonMenuIconDisabled","splitButtonDivider","splitButtonDividerDisabled","BaseButton","_buttonElement","_splitButtonContainer","_mergedRef","createMergedRef","_renderedVisibleMenu","_onRenderIcon","rest","FontIcon","_onRenderTextContents","onRenderText","_onRenderText","onRenderDescription","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","_onRenderMenuIcon","menuIconProps","_onRenderMenu","menuProps","MenuType","menuAs","composeComponentAs","_onDismissMenu","_dismissMenu","_menuShouldFocusOnMount","_menuShouldFocusOnContainer","menuHidden","_openMenu","_onToggleMenu","_onSplitContainerFocusCapture","portalContainsElement","_onSplitButtonPrimaryClick","_onMenuClick","space","_onKeyPress","onKeyPress","_onMouseUp","onMouseUp","_onMouseDown","_onClick","_onSplitButtonContainerKeyDown","click","_isValidMenuOpenKey","onMenuClick","setFocusVisibility","forceUpdate","_isSplitButton","warnConditionallyRequiredProps","rootProps","toggled","defineProperty","enumerable","configurable","ariaHidden","allowDisabledFocus","toggle","isPrimaryButtonDisabled","renderAsAnchor","tag","resolvedAriaLabel","ariaLabelledBy","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","elementRef","_onRenderSplitButtonContent","_onRenderContent","onPointerUp","componentDidUpdate","prevProps","prevState","onAfterMenuDismiss","openMenu","Tag","onRenderAriaDescription","onRenderChildren","onRenderMenu","onRenderMenuIcon","Button","_shouldRenderMenu","_getMenuProps","Content","persistMenu","renderPersistedMenuHiddenOnMount","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","SplitButton","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","menuTriggerKeyCode","baseClassName","customStyles","_f","_g","_h","_j","_k","_l","_m","_o","splitButtonDividerBaseStyles","splitButtonStyles","borderTopRightRadius","borderBottomRightRadius","borderRight","borderRightWidth","borderLeftWidth","buttonTextDisabled","neutralSecondaryAlt","borderLeft","marginLeft","marginTop","marginRight","marginBottom","ImageBase","_coverStyle","portrait","_imageElement","_frameElement","_onImageLoaded","src","onLoad","_computeCoverStyle","loadState","loaded","_onImageError","onError","notLoaded","UNSAFE_componentWillReceiveProps","nextProps","_checkImageLoaded","onLoadingStateChange","shouldFadeIn","shouldStartVisible","imageFit","maximizeFrame","coverStyle","isLoaded","isLandscape","landscape","isCenter","center","isCenterContain","centerContain","isCenterCover","centerCover","isContain","contain","isCover","cover","isNone","none","isError","isNotImageFit","naturalWidth","naturalHeight","complete","_svgRegex","desiredRatio","clientHeight","naturalRatio","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","ImageFitStyles","transform","supportsObjectFit","navigator","msMaxTouchPoints","fallbackObjectFitStyles","fadeIn400","objectFit","TooltipOverflowMode","TooltipDelay","TooltipBase","subText","Tooltip","tooltipGapSpace","sqrt","devicePixelRatio","fadeIn200","zIndex","menuItemText","wordWrap","overflowWrap","TooltipHostBase","_tooltipHost","_defaultTooltipId","show","_toggleTooltip","_hideTooltip","_getTargetElement","overflowMode","Parent","parentElement","Self","_onTooltipMouseEnter","delay","_currentVisibleTooltip","overflowElement","_clearDismissTimer","_clearOpenTimer","zero","delayTime","_getDelayTime","_openTimerId","_onTooltipMouseLeave","closeDelay","_dismissTimerId","_onTooltipKeyDown","ctrlKey","isTooltipVisible","onTooltipToggle","long","isAriaPlaceholderRendered","hostClassName","setAriaDescribedBy","tooltipProps","tooltipId","isContentPresent","showTooltip","onBlurCapture","ariaPlaceholder","TooltipHost","getIconContent","subset","code","fontFamily","fontFace","mergeImageProps","iconContent","accessibleName","finalChildren","isBrowser","longerTimeoutBrowsers","userAgent","indexOf","debounce","Promise","called","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","element","property","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","getScrollParent","body","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","isOffsetContainer","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","parseFloat","getSize","computedStyle","parseInt","getWindowSizes","classCallCheck","instance","Constructor","createClass","defineProperties","descriptor","writable","protoProps","staticProps","obj","_extends","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerHeight","offset","isFixed","getFixedPositionOffsetParent","el","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","sort","filteredAreas","filter","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isDestroyed","arrowStyles","attributes","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","search","splitRegex","ops","op","mergeWithPrevious","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","min","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","modifierOptions","Popper","requestAnimationFrame","jquery","Utils","PopperUtils","baseButtonStyles","defaultButtonStyles","p","primaryButtonBackground","primaryButtonText","primaryButtonBackgroundHovered","primaryButtonTextHovered","primaryButtonBackgroundPressed","primaryButtonTextPressed","primaryButtonTextDisabled","primaryButtonBackgroundDisabled","neutralTertiary","primaryStyles","buttonBackground","buttonBackgroundPressed","buttonBackgroundHovered","buttonBackgroundDisabled","buttonText","buttonTextHovered","buttonTextChecked","buttonTextCheckedHovered","neutralLight","neutralQuaternaryAlt","standardStyles","DefaultButton","customizable","PrimaryButton","_createClass","_react","_react2","_interopRequireDefault","_reactDom2","_FormControl2","_FormHelperText2","_InputLabel2","_InputAdornment2","_Input2","_FilledInput2","_OutlinedInput2","_LinearProgress2","_IconButton2","_ArrowDropDown2","_ArrowDropUp2","_Clear2","__esModule","default","variantComponent","standard","filled","outlined","Input","_Component","_classCallCheck","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","handleClearSelection","_this$props","downshiftProps","focusOnClear","clearSelection","handleToggleMenu","_this$props$downshift","isOpen","closeMenu","labelRef","createRef","subClass","superClass","constructor","setPrototypeOf","_inherits","variant","labelNode","findDOMNode","_this2","_props","_inputRef","inputRef","getInputProps","loading","labelProps","required","helperText","inputProps","_objectWithoutProperties","shrink","inputValue","startAdornment","InputMore","notched","labelWidth","InputComponent","createElement","fullWidth","getLabelProps","endAdornment","selectedItem","onFocus","Component","_reactVirtualized","_classnames4","_Paper2","_Popper2","_styles","_zIndex2","_defineProperty","getRowCount","includeFooter","MuiVirtualList","_temp","_len","_key2","CellMeasurerCache","fixedWidth","defaultHeight","keyMapper","getListItemKey","_keyMapper","clearAll","recomputeRowHeights","menuItemCount","menuHeight","getListItem","showEmpty","getVirtualListProps","_onRowsRendered","onRowsRendered","registerChild","classes","virtualListProps","rowHeight","useCellMeasurer","rowCount","visibleCount","getMenuHeight","List","highlightedIndex","scrollToIndex","rowRenderer","isHighlighted","keyboardFocused","listItem","getItemProps","_key","CellMeasurer","columnIndex","rowIndex","noRowsRenderer","deferredMeasurementCache","withStyles","_ref3","getInfiniteLoaderProps","AutoSizer","_ref4","open","anchorEl","modal","getMenuProps","suppressRefError","InfiniteLoader","_ref5","IconType","cacheSize","IconBase","_onImageLoadingStateChange","imageLoadError","imageErrorAs","iconType","iconContentChildren","RootType","ImageType","finalIconContentChildren","actionButtonStyles","themePrimary","black","themeDarker","ActionButton","CommandButton","iconButtonStyles","link","neutralLighter","IconButton","Popup","_root","_disposables","_onFocus","_containsFocus","_onBlur","relatedTarget","needsVerticalScrollBar","_originalFocusedElement","_updateScrollBarAsync","shouldRestoreFocus","defaultFocusRestorer","_getScrollBar","rootHeight","firstChildHeight","FocusTrapZone","_firstBumper","_lastBumper","_hasFocus","_onRootFocus","_onRootBlur","onBlur","_getDocument","_onFirstBumperFocus","_onBumperFocus","_onLastBumperFocus","isFirstBumper","currentBumper","nextFocusable","_isBumper","_onFocusCapture","_previouslyFocusedElementInTrapZone","_forceFocusInTrap","_focusStack","focusedElement","doc_1","_forceClickInTrap","clickedElement","_bringFocusIntoZone","_updateEventHandlers","enableAriaHiddenSiblings","_unmodalize","elementToFocusOnDismiss","_previouslyFocusedElementOutsideTrapZone","prevForceFocusInsideTrap","forceFocusInsideTrap","newForceFocusInsideTrap","prevDisabled","newDisabled","_returnFocusToInitiator","_disposeClickHandler","_disposeFocusHandler","divProps","bumperProps","focusPreviouslyFocusedInnerElement","firstFocusableSelector","firstFocusableTarget","_focusAsync","focusSelector","_firstFocusableChild","disableFirstFocus","ignoreExternalFocusing","doc","isClickableOutsideFocusTrap","_defaultHostSelector","getFabricTheme","isRTL","rtl","FabricBase","_rootElement","_removeClassNameFromBody","as","Root","dir","_getClassNames","contextDir","pageDir","componentDir","rootDir","needsTheme","getDir","renderedContent","Customizer","settings","rootRef","_addClassNameToBody","applyTheme","applyThemeToBody","classNames_1","currentDoc_1","classList","bodyThemed","remove","inheritFont","Fabric","bodyBackground","_layersByHostId","_layerHostsById","_filteredEventProps","LayerBase","_rootRef","_createLayerElement","hostId","_getHost","_removeLayerElement","layerElement","setPortalAttribute","setVirtualParent","insertFirst","insertBefore","appendChild","onLayerDidMount","onLayerMounted","layerHosts","layerHosts_1","notifyLayersChanged","registerLayer","eventBubblingEnabled","_onFilterEvent","_getFilteredEvents","layers","idx","layerHosts_2","unregisterLayer","onLayerWillUnmount","isNotHost","layerHost","getLayerHost","getElementById","defaultHostSelector","eventPhase","BUBBLING_PHASE","rootNoHost","Layer","fields","RectangleEdge","Position","_createPositionData","targetEdge","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","newValue","difference","_alignEdges","gap","_isEdgeInBounds","_adjustFitWithinBounds","bounding","positionData","elementEstimate","elementRectangle","directions","currentEstimate","currentEdge","currentAlignment","_estimatePosition","_flipToFit","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_alignOutOfBoundsEdges","outOfBoundsEdges","outOfBoundsEdges_1","_centerEdgeToPoint","point","elementToPosition","estimatedElementPosition","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","abs","_calculateActualBeakWidthInPixels","_getPositionData","previousPositions","positionInformation","getClosestEdge","targetCenter","boundingCenter","_positionElementWithinBounds","_finalizeBeakPosition","elementPosition","positionedBeak","actualElement","Rectangle","returnValue","closestEdge","_positionBeak","targetRectangle","beakTargetPoint","elementBounds","beakPosition","_getRectangleFromElement","clientRect","_getRectangleFromIRect","_getMaxHeightFromTargetRectangle","_positionElementRelative","targetRect","clientX","clientY","rectOrPoint","top_1","outOfBounds_1","_getTargetRect","_getAlignmentData","positionedElement","_finalizePositionData","hostElement","doNotFinalizeReturnEdge","elementEdgeString","_finalizeElementPosition","_positionCallout","positionProps","finalizedBeakPosition","positionCard","_positionCard","ANIMATIONS","slideUpIn10","slideDownIn10","slideLeftIn10","slideRightIn10","disableCaching","BEAK_ORIGIN_POSITION","OFF_SCREEN_STYLE","ARIA_ROLE_ATTRIBUTES","CalloutContentBase","_hostElement","_calloutElement","_hasListeners","_dismissOnScroll","preventDismissOnEvent","preventDismissOnScroll","positions","_dismissOnClickOrScroll","_dismissOnResize","preventDismissOnResize","_dismissOnLostFocus","preventDismissOnLostFocus","_setInitialFocus","_didSetInitialFocus","_onComponentDidMount","_addListeners","_updateAsyncPosition","_setHeightOffsetEveryFrame","_dismissOnTargetWindowBlur","shouldDismissOnWindowFocus","_mouseDownOnPopup","_isMouseDownOnPopup","_mouseUpOnPopup","slideDirectionalClassName","calloutElementRect","heightOffset","_positionAttempts","_removeListeners","_getTarget","_blockResetHeight","_maxHeight","finalHeight","_didPositionPropsChange","_bounds","calloutWidth","calloutMaxWidth","calloutMinWidth","hideOverflow","calloutMaxHeight","popupProps","getContentMaxHeight","_getMaxHeight","contentMaxHeight","overflowYHidden","beakVisible","overflowStyle","visibilityStyle","beak","_getBeakPosition","beakCurtain","calloutMain","isEventTargetOutsideCallout","elementContains","dismissOnTargetClick","_updatePosition","beakPostionStyle","calloutElement","expectsTarget","currentProps","_getBounds","newPositions","positionCallout","_arePositionsEqual","onPositioned","currentBounds","targetWindow","segments","getWindowSegments","segments_1","segment","_getBoundsFromTargetWindow","minPagePadding","totalGap_1","mouseTarget","elementTarget","rectOrPointTarget","boundingRectangle","getMaxHeight","newPosition","_comparePositions","oldPositions","oldPositionEdge","newPositionEdge","toFixed","_setHeightOffsetTimer","calloutMainElem","scrollDiff","scrollHeight","oldProps","getBeakStyle","CalloutContent","elevation16","borderWidth","borderStyle","layerProps","PanelVisibilityState","OverlayBase","allowTouchBodyScroll","_allowTouchBodyScroll","isDark","isDarkThemed","rootDark","Overlay","whiteTranslucent40","blackTranslucent40","PanelBase","_panel","_animationCallback","_hasCustomNavigation","onRenderNavigation","onRenderNavigationContent","isActive","close","_allowScrollOnPanel","elt","_scrollableContent","_onRenderNavigation","hasCloseButton","_onRenderNavigationContent","navigation","closeButtonAriaLabel","onRenderHeader","_onRenderHeader","closeButton","_headerTextId","_onPanelClick","headerTextId","headerText","headerTextProps","_onRenderBody","_onRenderFooter","onRenderFooterContent","footer","footerInner","_animateTo","newVisibilityState","onOpen","_onTransitionComplete","_clearExistingAnimationTimer","_updateFooterPosition","onOpened","closed","onDismissed","isFooterSticky","getDerivedStateFromProps","animatingClosed","animatingOpen","_shouldListenForOuterClick","_dismissOnOuterClick","previousProps","previousState","shouldListenOnOuterClick","previousShouldListenOnOuterClick","focusTrapZoneProps","headerClassName","isBlocking","isFooterAtBottom","isLightDismiss","isHiddenOnDismiss","overlayProps","customWidth","onLightDismissClick","onRenderBody","onRenderFooter","isLeft","smallFixedNear","customNear","isOnRightSide","customWidthStyles","custom","isAnimating","focusTrapZoneClassName","hasCustomNavigation","overlay","hiddenPanel","main","commands","contentInner","scrollableContent","innerHeight_1","panel","onOuterClick","smallFixedFar","smallFluid","largeFixed","extraLarge","panelWidth","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","getPanelBreakpoints","sharedPaddingStyles","Panel","isCustomPanel","fadeIn100","fadeOut100","elevation64","flexDirection","WebkitOverflowScrolling","variantBorder","slideRightIn40","slideLeftIn40","slideLeftOut40","slideRightOut40","alignSelf","xLarge","wordBreak","hyphens","borderTop","transition","durationValue3","easeFunction2","borderTopColor","resetIdCounter","stateChangeTypes","_propTypes2","_downshift2","_ListItem2","_ListItemText2","_ListItemIcon2","_ListItemAvatar2","_Menu2","MuiDownshift","itemToString","getRootProps","itemCount","button","avatar","fontStyle","propTypes","func","object","bool","oneOf","number","extendStatics","d","__extends","__","__assign","__rest","__decorate","decorators","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","__spreadArrays","il","jl"],"mappings":"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","file":"static/js/defaultVendors~main~9c5b28f6.232c4223.chunk.js","sourcesContent":["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","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","/**\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 at v1.3.6, to replace the src in case of errors, use `onLoadingStateChange` instead\n * and rerender the Image with a difference src.\n * @deprecated Use `onLoadingStateChange` instead\n * and rerender the Image with a difference src.\n */\n ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","/**\n * {@docCategory Panel}\n */\nexport var PanelType;\n(function (PanelType) {\n /**\n * Renders the Panel with a `fluid` (full screen) width.\n * Recommended for use on small screen breakpoints.\n * - Small (320-479): full screen width, 16px left/right padding\n * - Medium (480-639): full screen width, 16px left/right padding\n * - Large (640-1023): full screen width, 32px left/right padding\n * - XLarge (1024-1365): full screen width, 32px left/right padding\n * - XXLarge (1366-up): full screen width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFluid\"] = 0] = \"smallFluid\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): 340px width, 16px left/right padding\n * - Large (640-1023): 340px width, 32px left/right padding\n * - XLarge (1024-1365): 340px width, 32px left/right padding\n * - XXLarge (1366-up): 340px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedFar\"] = 1] = \"smallFixedFar\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n * - Small (320-479): 272px width, 16px left/right padding\n * - Medium (480-639): 272px width, 16px left/right padding\n * - Large (640-1023): 272px width, 32px left/right padding\n * - XLarge (1024-1365): 272px width, 32px left/right padding\n * - XXLarge (1366-up): 272px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedNear\"] = 2] = \"smallFixedNear\";\n /**\n * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): 592px width, 32px left/right padding\n * - XLarge (1024-1365): 644px width, 32px left/right padding\n * - XXLarge (1366-up): 644px width, 40px left/right padding\n */\n PanelType[PanelType[\"medium\"] = 3] = \"medium\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"large\"] = 4] = \"large\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n * XX-Large breakpoint.\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 940px width, 40px left/right padding\n */\n PanelType[PanelType[\"largeFixed\"] = 5] = \"largeFixed\";\n /**\n * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"custom\"] = 7] = \"custom\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"customNear\"] = 8] = \"customNear\";\n})(PanelType || (PanelType = {}));\n//# sourceMappingURL=Panel.types.js.map","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","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 { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() { }\r\nvar Cache = /** @class */ (function () {\r\n function Cache(max, dispose) {\r\n if (max === void 0) { max = Infinity; }\r\n if (dispose === void 0) { dispose = defaultDispose; }\r\n this.max = max;\r\n this.dispose = dispose;\r\n this.map = new Map();\r\n this.newest = null;\r\n this.oldest = null;\r\n }\r\n Cache.prototype.has = function (key) {\r\n return this.map.has(key);\r\n };\r\n Cache.prototype.get = function (key) {\r\n var entry = this.getEntry(key);\r\n return entry && entry.value;\r\n };\r\n Cache.prototype.getEntry = function (key) {\r\n var entry = this.map.get(key);\r\n if (entry && entry !== this.newest) {\r\n var older = entry.older, newer = entry.newer;\r\n if (newer) {\r\n newer.older = older;\r\n }\r\n if (older) {\r\n older.newer = newer;\r\n }\r\n entry.older = this.newest;\r\n entry.older.newer = entry;\r\n entry.newer = null;\r\n this.newest = entry;\r\n if (entry === this.oldest) {\r\n this.oldest = newer;\r\n }\r\n }\r\n return entry;\r\n };\r\n Cache.prototype.set = function (key, value) {\r\n var entry = this.getEntry(key);\r\n if (entry) {\r\n return entry.value = value;\r\n }\r\n entry = {\r\n key: key,\r\n value: value,\r\n newer: null,\r\n older: this.newest\r\n };\r\n if (this.newest) {\r\n this.newest.newer = entry;\r\n }\r\n this.newest = entry;\r\n this.oldest = this.oldest || entry;\r\n this.map.set(key, entry);\r\n return entry.value;\r\n };\r\n Cache.prototype.clean = function () {\r\n while (this.oldest && this.map.size > this.max) {\r\n this.delete(this.oldest.key);\r\n }\r\n };\r\n Cache.prototype.delete = function (key) {\r\n var entry = this.map.get(key);\r\n if (entry) {\r\n if (entry === this.newest) {\r\n this.newest = entry.older;\r\n }\r\n if (entry === this.oldest) {\r\n this.oldest = entry.newer;\r\n }\r\n if (entry.newer) {\r\n entry.newer.older = entry.older;\r\n }\r\n if (entry.older) {\r\n entry.older.newer = entry.newer;\r\n }\r\n this.map.delete(key);\r\n this.dispose(entry.value, key);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return Cache;\r\n}());\n\nvar parentEntrySlot = new Slot();\n\nvar reusableEmptyArray = [];\r\nvar emptySetPool = [];\r\nvar POOL_TARGET_SIZE = 100;\r\n// Since this package might be used browsers, we should avoid using the\r\n// Node built-in assert module.\r\nfunction assert(condition, optionalMessage) {\r\n if (!condition) {\r\n throw new Error(optionalMessage || \"assertion failure\");\r\n }\r\n}\r\nfunction valueIs(a, b) {\r\n var len = a.length;\r\n return (\r\n // Unknown values are not equal to each other.\r\n len > 0 &&\r\n // Both values must be ordinary (or both exceptional) to be equal.\r\n len === b.length &&\r\n // The underlying value or exception must be the same.\r\n a[len - 1] === b[len - 1]);\r\n}\r\nfunction valueGet(value) {\r\n switch (value.length) {\r\n case 0: throw new Error(\"unknown value\");\r\n case 1: return value[0];\r\n case 2: throw value[1];\r\n }\r\n}\r\nfunction valueCopy(value) {\r\n return value.slice(0);\r\n}\r\nvar Entry = /** @class */ (function () {\r\n function Entry(fn, args) {\r\n this.fn = fn;\r\n this.args = args;\r\n this.parents = new Set();\r\n this.childValues = new Map();\r\n // When this Entry has children that are dirty, this property becomes\r\n // a Set containing other Entry objects, borrowed from emptySetPool.\r\n // When the set becomes empty, it gets recycled back to emptySetPool.\r\n this.dirtyChildren = null;\r\n this.dirty = true;\r\n this.recomputing = false;\r\n this.value = [];\r\n ++Entry.count;\r\n }\r\n // This is the most important method of the Entry API, because it\r\n // determines whether the cached this.value can be returned immediately,\r\n // or must be recomputed. The overall performance of the caching system\r\n // depends on the truth of the following observations: (1) this.dirty is\r\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\r\n // (3) valueGet(this.value) is usually returned without recomputation.\r\n Entry.prototype.recompute = function () {\r\n assert(!this.recomputing, \"already recomputing\");\r\n if (!rememberParent(this) && maybeReportOrphan(this)) {\r\n // The recipient of the entry.reportOrphan callback decided to dispose\r\n // of this orphan entry by calling entry.dispose(), so we don't need to\r\n // (and should not) proceed with the recomputation.\r\n return void 0;\r\n }\r\n return mightBeDirty(this)\r\n ? reallyRecompute(this)\r\n : valueGet(this.value);\r\n };\r\n Entry.prototype.setDirty = function () {\r\n if (this.dirty)\r\n return;\r\n this.dirty = true;\r\n this.value.length = 0;\r\n reportDirty(this);\r\n // We can go ahead and unsubscribe here, since any further dirty\r\n // notifications we receive will be redundant, and unsubscribing may\r\n // free up some resources, e.g. file watchers.\r\n maybeUnsubscribe(this);\r\n };\r\n Entry.prototype.dispose = function () {\r\n var _this = this;\r\n forgetChildren(this).forEach(maybeReportOrphan);\r\n maybeUnsubscribe(this);\r\n // Because this entry has been kicked out of the cache (in index.js),\r\n // we've lost the ability to find out if/when this entry becomes dirty,\r\n // whether that happens through a subscription, because of a direct call\r\n // to entry.setDirty(), or because one of its children becomes dirty.\r\n // Because of this loss of future information, we have to assume the\r\n // worst (that this entry might have become dirty very soon), so we must\r\n // immediately mark this entry's parents as dirty. Normally we could\r\n // just call entry.setDirty() rather than calling parent.setDirty() for\r\n // each parent, but that would leave this entry in parent.childValues\r\n // and parent.dirtyChildren, which would prevent the child from being\r\n // truly forgotten.\r\n this.parents.forEach(function (parent) {\r\n parent.setDirty();\r\n forgetChild(parent, _this);\r\n });\r\n };\r\n Entry.count = 0;\r\n return Entry;\r\n}());\r\nfunction rememberParent(child) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n child.parents.add(parent);\r\n if (!parent.childValues.has(child)) {\r\n parent.childValues.set(child, []);\r\n }\r\n if (mightBeDirty(child)) {\r\n reportDirtyChild(parent, child);\r\n }\r\n else {\r\n reportCleanChild(parent, child);\r\n }\r\n return parent;\r\n }\r\n}\r\nfunction reallyRecompute(entry) {\r\n // Since this recomputation is likely to re-remember some of this\r\n // entry's children, we forget our children here but do not call\r\n // maybeReportOrphan until after the recomputation finishes.\r\n var originalChildren = forgetChildren(entry);\r\n // Set entry as the parent entry while calling recomputeNewValue(entry).\r\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry]);\r\n if (maybeSubscribe(entry)) {\r\n // If we successfully recomputed entry.value and did not fail to\r\n // (re)subscribe, then this Entry is no longer explicitly dirty.\r\n setClean(entry);\r\n }\r\n // Now that we've had a chance to re-remember any children that were\r\n // involved in the recomputation, we can safely report any orphan\r\n // children that remain.\r\n originalChildren.forEach(maybeReportOrphan);\r\n return valueGet(entry.value);\r\n}\r\nfunction recomputeNewValue(entry) {\r\n entry.recomputing = true;\r\n // Set entry.value as unknown.\r\n entry.value.length = 0;\r\n try {\r\n // If entry.fn succeeds, entry.value will become a normal Value.\r\n entry.value[0] = entry.fn.apply(null, entry.args);\r\n }\r\n catch (e) {\r\n // If entry.fn throws, entry.value will become exceptional.\r\n entry.value[1] = e;\r\n }\r\n // Either way, this line is always reached.\r\n entry.recomputing = false;\r\n}\r\nfunction mightBeDirty(entry) {\r\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\r\n}\r\nfunction setClean(entry) {\r\n entry.dirty = false;\r\n if (mightBeDirty(entry)) {\r\n // This Entry may still have dirty children, in which case we can't\r\n // let our parents know we're clean just yet.\r\n return;\r\n }\r\n reportClean(entry);\r\n}\r\nfunction reportDirty(child) {\r\n child.parents.forEach(function (parent) { return reportDirtyChild(parent, child); });\r\n}\r\nfunction reportClean(child) {\r\n child.parents.forEach(function (parent) { return reportCleanChild(parent, child); });\r\n}\r\n// Let a parent Entry know that one of its children may be dirty.\r\nfunction reportDirtyChild(parent, child) {\r\n // Must have called rememberParent(child) before calling\r\n // reportDirtyChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(mightBeDirty(child));\r\n if (!parent.dirtyChildren) {\r\n parent.dirtyChildren = emptySetPool.pop() || new Set;\r\n }\r\n else if (parent.dirtyChildren.has(child)) {\r\n // If we already know this child is dirty, then we must have already\r\n // informed our own parents that we are dirty, so we can terminate\r\n // the recursion early.\r\n return;\r\n }\r\n parent.dirtyChildren.add(child);\r\n reportDirty(parent);\r\n}\r\n// Let a parent Entry know that one of its children is no longer dirty.\r\nfunction reportCleanChild(parent, child) {\r\n // Must have called rememberChild(child) before calling\r\n // reportCleanChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(!mightBeDirty(child));\r\n var childValue = parent.childValues.get(child);\r\n if (childValue.length === 0) {\r\n parent.childValues.set(child, valueCopy(child.value));\r\n }\r\n else if (!valueIs(childValue, child.value)) {\r\n parent.setDirty();\r\n }\r\n removeDirtyChild(parent, child);\r\n if (mightBeDirty(parent)) {\r\n return;\r\n }\r\n reportClean(parent);\r\n}\r\nfunction removeDirtyChild(parent, child) {\r\n var dc = parent.dirtyChildren;\r\n if (dc) {\r\n dc.delete(child);\r\n if (dc.size === 0) {\r\n if (emptySetPool.length < POOL_TARGET_SIZE) {\r\n emptySetPool.push(dc);\r\n }\r\n parent.dirtyChildren = null;\r\n }\r\n }\r\n}\r\n// If the given entry has a reportOrphan method, and no remaining parents,\r\n// call entry.reportOrphan and return true iff it returns true. The\r\n// reportOrphan function should return true to indicate entry.dispose()\r\n// has been called, and the entry has been removed from any other caches\r\n// (see index.js for the only current example).\r\nfunction maybeReportOrphan(entry) {\r\n return entry.parents.size === 0 &&\r\n typeof entry.reportOrphan === \"function\" &&\r\n entry.reportOrphan() === true;\r\n}\r\n// Removes all children from this entry and returns an array of the\r\n// removed children.\r\nfunction forgetChildren(parent) {\r\n var children = reusableEmptyArray;\r\n if (parent.childValues.size > 0) {\r\n children = [];\r\n parent.childValues.forEach(function (_value, child) {\r\n forgetChild(parent, child);\r\n children.push(child);\r\n });\r\n }\r\n // After we forget all our children, this.dirtyChildren must be empty\r\n // and therefore must have been reset to null.\r\n assert(parent.dirtyChildren === null);\r\n return children;\r\n}\r\nfunction forgetChild(parent, child) {\r\n child.parents.delete(parent);\r\n parent.childValues.delete(child);\r\n removeDirtyChild(parent, child);\r\n}\r\nfunction maybeSubscribe(entry) {\r\n if (typeof entry.subscribe === \"function\") {\r\n try {\r\n maybeUnsubscribe(entry); // Prevent double subscriptions.\r\n entry.unsubscribe = entry.subscribe.apply(null, entry.args);\r\n }\r\n catch (e) {\r\n // If this Entry has a subscribe function and it threw an exception\r\n // (or an unsubscribe function it previously returned now throws),\r\n // return false to indicate that we were not able to subscribe (or\r\n // unsubscribe), and this Entry should remain dirty.\r\n entry.setDirty();\r\n return false;\r\n }\r\n }\r\n // Returning true indicates either that there was no entry.subscribe\r\n // function or that it succeeded.\r\n return true;\r\n}\r\nfunction maybeUnsubscribe(entry) {\r\n var unsubscribe = entry.unsubscribe;\r\n if (typeof unsubscribe === \"function\") {\r\n entry.unsubscribe = void 0;\r\n unsubscribe();\r\n }\r\n}\n\n// A trie data structure that holds object keys weakly, yet can also hold\r\n// non-object keys, unlike the native `WeakMap`.\r\nvar KeyTrie = /** @class */ (function () {\r\n function KeyTrie(weakness) {\r\n this.weakness = weakness;\r\n }\r\n KeyTrie.prototype.lookup = function () {\r\n var array = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n array[_i] = arguments[_i];\r\n }\r\n return this.lookupArray(array);\r\n };\r\n KeyTrie.prototype.lookupArray = function (array) {\r\n var node = this;\r\n array.forEach(function (key) { return node = node.getChildTrie(key); });\r\n return node.data || (node.data = Object.create(null));\r\n };\r\n KeyTrie.prototype.getChildTrie = function (key) {\r\n var map = this.weakness && isObjRef(key)\r\n ? this.weak || (this.weak = new WeakMap())\r\n : this.strong || (this.strong = new Map());\r\n var child = map.get(key);\r\n if (!child)\r\n map.set(key, child = new KeyTrie(this.weakness));\r\n return child;\r\n };\r\n return KeyTrie;\r\n}());\r\nfunction isObjRef(value) {\r\n switch (typeof value) {\r\n case \"object\":\r\n if (value === null)\r\n break;\r\n // Fall through to return true...\r\n case \"function\":\r\n return true;\r\n }\r\n return false;\r\n}\n\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\r\n// a unique object for any shallow-identical list of arguments. If you need\r\n// to implement a custom makeCacheKey function, you may find it helpful to\r\n// delegate the final work to defaultMakeCacheKey, which is why we export it\r\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\r\n// does not support WeakMap, or you have the ability to return a string key.\r\n// In those cases, just write your own custom makeCacheKey functions.\r\nvar keyTrie = new KeyTrie(typeof WeakMap === \"function\");\r\nfunction defaultMakeCacheKey() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return keyTrie.lookupArray(args);\r\n}\r\nvar caches = new Set();\r\nfunction wrap(originalFunction, options) {\r\n if (options === void 0) { options = Object.create(null); }\r\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) { return entry.dispose(); });\r\n var disposable = !!options.disposable;\r\n var makeCacheKey = options.makeCacheKey || defaultMakeCacheKey;\r\n function optimistic() {\r\n if (disposable && !parentEntrySlot.hasValue()) {\r\n // If there's no current parent computation, and this wrapped\r\n // function is disposable (meaning we don't care about entry.value,\r\n // just dependency tracking), then we can short-cut everything else\r\n // in this function, because entry.recompute() is going to recycle\r\n // the entry object without recomputing anything, anyway.\r\n return void 0;\r\n }\r\n var key = makeCacheKey.apply(null, arguments);\r\n if (key === void 0) {\r\n return originalFunction.apply(null, arguments);\r\n }\r\n var args = Array.prototype.slice.call(arguments);\r\n var entry = cache.get(key);\r\n if (entry) {\r\n entry.args = args;\r\n }\r\n else {\r\n entry = new Entry(originalFunction, args);\r\n cache.set(key, entry);\r\n entry.subscribe = options.subscribe;\r\n if (disposable) {\r\n entry.reportOrphan = function () { return cache.delete(key); };\r\n }\r\n }\r\n var value = entry.recompute();\r\n // Move this entry to the front of the least-recently used queue,\r\n // since we just finished computing its value.\r\n cache.set(key, entry);\r\n caches.add(cache);\r\n // Clean up any excess entries in the cache, but only if there is no\r\n // active parent entry, meaning we're not in the middle of a larger\r\n // computation that might be flummoxed by the cleaning.\r\n if (!parentEntrySlot.hasValue()) {\r\n caches.forEach(function (cache) { return cache.clean(); });\r\n caches.clear();\r\n }\r\n // If options.disposable is truthy, the caller of wrap is telling us\r\n // they don't care about the result of entry.recompute(), so we should\r\n // avoid returning the value, so it won't be accidentally used.\r\n return disposable ? void 0 : value;\r\n }\r\n optimistic.dirty = function () {\r\n var key = makeCacheKey.apply(null, arguments);\r\n var child = key !== void 0 && cache.get(key);\r\n if (child) {\r\n child.setDirty();\r\n }\r\n };\r\n return optimistic;\r\n}\n\nexport { KeyTrie, defaultMakeCacheKey, wrap };\n//# sourceMappingURL=bundle.esm.js.map\n","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","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 { __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 var containerProps = props['aria-label']\n ? {}\n : {\n role: 'presentation',\n 'aria-hidden': imageProps.alt || imageProps['aria-labelledby'] ? false : true,\n };\n return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n React.createElement(Image, __assign({}, imageProps))));\n};\n//# sourceMappingURL=ImageIcon.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 { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\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 */\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 */\nexport function initializeResponsiveMode(element) {\n if (typeof window !== 'undefined') {\n var currentWindow = (element && getWindow(element)) || window;\n getResponsiveMode(currentWindow);\n }\n}\nexport function getInitialResponsiveMode() {\n var _a;\n return _a = (_defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode), (_a !== null && _a !== void 0 ? _a : ResponsiveMode.large);\n}\nexport function withResponsiveMode(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(WithResponsiveMode, _super);\n function WithResponsiveMode(props) {\n var _this = _super.call(this, props) || this;\n _this._onResize = function () {\n var responsiveMode = getResponsiveMode(_this.context.window);\n if (responsiveMode !== _this.state.responsiveMode) {\n _this.setState({\n responsiveMode: responsiveMode,\n });\n }\n };\n _this._events = new EventGroup(_this);\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n _this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n return _this;\n }\n WithResponsiveMode.prototype.componentDidMount = function () {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n };\n WithResponsiveMode.prototype.componentWillUnmount = function () {\n this._events.dispose();\n };\n WithResponsiveMode.prototype.render = function () {\n var responsiveMode = this.state.responsiveMode;\n return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n };\n return WithResponsiveMode;\n }(BaseDecorator)),\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n try {\n return currentWindow.document.documentElement.clientWidth;\n }\n catch (e) {\n return currentWindow.innerWidth;\n }\n}\nexport function getResponsiveMode(currentWindow) {\n var responsiveMode = ResponsiveMode.small;\n if (currentWindow) {\n try {\n while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n }\n catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n }\n else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n }\n else {\n throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.');\n }\n }\n return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import { __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","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, __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 renderItemIcon = function (props) {\n var item = props.item, hasIcons = props.hasIcons, classNames = props.classNames;\n var iconProps = item.iconProps;\n if (!hasIcons) {\n return null;\n }\n if (item.onRenderIcon) {\n return item.onRenderIcon(props);\n }\n return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\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] = __assign({ \n // ensure disabled text looks different than enabled\n color: 'GrayText', opacity: 1 }, getHighContrastNoAdjustStyle()),\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 overflow: 'hidden',\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,\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,\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 To be removed in 7.0.\n * @internal\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * It should be cleaned up in 7.0.\n *\n * TODO: Audit perf. impact of and potentially remove memoizeFunction.\n * https://github.com/microsoft/fluentui/issues/5534\n */\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, __spreadArrays } 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 = __spreadArrays(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 { __spreadArrays } 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 = __spreadArrays(overflowKeySequences).pop();\n var newKeySequences = __spreadArrays(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, __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, usePrevious } from '@uifabric/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 React.useLayoutEffect(function () {\n var _a, _b;\n if (uniqueId.current &&\n keytipProps &&\n (((_a = prevOptions) === null || _a === void 0 ? void 0 : _a.keytipProps) !== options.keytipProps || ((_b = prevOptions) === null || _b === void 0 ? void 0 : _b.disabled) !== options.disabled)) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n React.useLayoutEffect(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 = __spreadArrays(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 { __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 return (React.createElement(\"div\", null,\n React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: nativeProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, 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), \"aria-describedby\": mergeAriaAttributeValues(ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), \n // eslint-disable-next-line deprecation/deprecation\n style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n };\n return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, 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 = ariaDescription ? this._ariaDescriptionId : undefined;\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: buttonNativeProperties['aria-describedby'], disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes, { \"aria-describedby\": mergeAriaAttributeValues(itemButtonProperties['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : 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 ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = function (props) {\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 },\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._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._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\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._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(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, __decorate, __extends, __rest, __spreadArrays } 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, warnDeprecations, Async, EventGroup, assign, classNamesFunction, css, getDocument, getFirstFocusable, getId, getLastFocusable, getRTL, getWindow, KeyCodes, shouldWrapFocus, isIOS, isMac, initializeComponentRef, memoizeFunction, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { withResponsiveMode, ResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\nexport function getSubmenuItems(item, options) {\n var _a;\n var target = (_a = options) === null || _a === void 0 ? void 0 : _a.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, __spreadArrays([styleProps, getItemStyles], styles));\n };\n});\nvar ContextualMenuBase = /** @class */ (function (_super) {\n __extends(ContextualMenuBase, _super);\n function ContextualMenuBase(props) {\n var _this = _super.call(this, props) || this;\n _this._mounted = false;\n _this.dismiss = function (ev, dismissAll) {\n var onDismiss = _this.props.onDismiss;\n if (onDismiss) {\n onDismiss(ev, dismissAll);\n }\n };\n _this._tryFocusPreviousActiveElement = function (options) {\n if (_this.props.onRestoreFocus) {\n _this.props.onRestoreFocus(options);\n }\n else {\n if (options && options.containsFocus && _this._previousActiveElement) {\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 if (_this._previousActiveElement.focus) {\n _this._previousActiveElement.focus();\n }\n }\n }\n };\n _this._onRenderMenuList = function (menuListProps, 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: _this._classNames.list, onKeyDown: _this._onKeyDown, onKeyUp: _this._onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n var menuItem = _this._renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons);\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 /**\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 _this._renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\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(_this.props.theme, isItemDisabled(item), _this.state.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: _this.props.theme,\n disabled: isItemDisabled(item),\n expanded: _this.state.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 = _this._classNames.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(_this._renderSeparator(index, itemClassNames));\n break;\n case ContextualMenuItemType.Header:\n renderedItems.push(_this._renderSeparator(index, itemClassNames));\n var headerItem = _this._renderHeaderMenuItem(item, itemClassNames, index, hasCheckmarks, hasIcons);\n renderedItems.push(_this._renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n break;\n case ContextualMenuItemType.Section:\n renderedItems.push(_this._renderSectionItem(item, itemClassNames, index, hasCheckmarks, hasIcons));\n break;\n default:\n var menuItem = _this._renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n renderedItems.push(_this._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 _this._defaultMenuItemRenderer = function (item) {\n var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n return _this._renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n _this._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 _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n // On Mac, pressing escape dismisses all levels of native context menus\n var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n return _this._keyHandler(ev, _this._shouldHandleKeyDown, dismissAllMenus);\n };\n _this._shouldHandleKeyDown = function (ev) {\n return (ev.which === KeyCodes.escape ||\n _this._shouldCloseSubMenu(ev) ||\n (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n };\n _this._onMenuFocusCapture = function (ev) {\n if (_this.props.delayUpdateFocusOnHover) {\n _this._shouldUpdateFocusOnMouseEvent = true;\n }\n };\n _this._onKeyUp = function (ev) {\n return _this._keyHandler(ev, _this._shouldHandleKeyUp, true /* 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 _this._shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = _this._lastKeyDownWasAltOrMeta && _this._isAltOrMeta(ev);\n _this._lastKeyDownWasAltOrMeta = false;\n return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n };\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 _this._keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n var handled = false;\n if (shouldHandleKey(ev)) {\n _this._focusingPreviousElement = true;\n _this.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 _this._shouldCloseSubMenu = function (ev) {\n var submenuCloseKey = getRTL(_this.props.theme) ? KeyCodes.right : KeyCodes.left;\n if (ev.which !== submenuCloseKey || !_this.props.isSubMenu) {\n return false;\n }\n return (_this._adjustedFocusZoneProps.direction === FocusZoneDirection.vertical ||\n (!!_this._adjustedFocusZoneProps.checkForNoWrap &&\n !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n };\n _this._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 = _this._onKeyDown(ev);\n if (handled || !_this._host) {\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 var isUp = ev.which === KeyCodes.up;\n var isDown = ev.which === KeyCodes.down;\n if (!hasModifier && (isUp || isDown)) {\n var elementToFocus = isUp\n ? getLastFocusable(_this._host, _this._host.lastChild, true)\n : getFirstFocusable(_this._host, _this._host.firstChild, true);\n if (elementToFocus) {\n elementToFocus.focus();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n _this._onScroll = function () {\n if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n _this._async.clearTimeout(_this._scrollIdleTimeoutId);\n _this._scrollIdleTimeoutId = undefined;\n }\n else {\n _this._isScrollIdle = false;\n }\n _this._scrollIdleTimeoutId = _this._async.setTimeout(function () {\n _this._isScrollIdle = true;\n }, NavigationIdleDelay);\n };\n _this._onItemMouseEnterBase = function (item, ev, target) {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n _this._updateFocusOnMouseEvent(item, ev, target);\n };\n _this._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 (_this._shouldUpdateFocusOnMouseEvent) {\n _this._gotMouseMove = true;\n }\n else {\n return;\n }\n if (!_this._isScrollIdle ||\n _this._enterTimerId !== undefined ||\n targetElement === _this._targetWindow.document.activeElement) {\n return;\n }\n _this._updateFocusOnMouseEvent(item, ev, target);\n };\n _this._onMouseItemLeave = function (item, ev) {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n if (_this._enterTimerId !== undefined) {\n _this._async.clearTimeout(_this._enterTimerId);\n _this._enterTimerId = undefined;\n }\n if (_this.state.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 (_this._host.setActive) {\n try {\n _this._host.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n _this._host.focus();\n }\n };\n _this._onItemMouseDown = function (item, ev) {\n if (item.onMouseDown) {\n item.onMouseDown(item, ev);\n }\n };\n _this._onItemClick = function (item, ev) {\n _this._onItemClickBase(item, ev, ev.currentTarget);\n };\n _this._onItemClickBase = function (item, ev, target) {\n var menuTarget = _this.props.target;\n var items = getSubmenuItems(item, { target: menuTarget });\n // Cancel a async menu item hover timeout action from being taken and instead\n // just trigger the click event instead.\n _this._cancelSubMenuTimer();\n if (!hasSubmenu(item) && (!items || !items.length)) {\n // This is an item without a menu. Click it.\n _this._executeItemClick(item, ev);\n }\n else {\n if (item.key !== _this.state.expandedMenuItemKey) {\n // This has a collapsed sub menu. Expand it.\n _this.setState({\n // When Edge + Narrator are used together (regardless of if the button is in a form or not), pressing\n // \"Enter\" fires this method and not _onMenuKeyDown. Checking ev.nativeEvent.detail differentiates\n // between a real click event and a keypress event (detail should be the number of mouse clicks).\n // ...Plot twist! For a real click event in IE 11, detail is always 0 (Edge sets it properly to 1).\n // So we also check the pointerType property, which both Edge and IE set to \"mouse\" for real clicks\n // and \"\" for pressing \"Enter\" with Narrator on.\n expandedByMouseClick: ev.nativeEvent.detail !== 0 || ev.nativeEvent.pointerType === 'mouse',\n });\n _this._onItemSubMenuExpand(item, target);\n }\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onAnchorClick = function (item, ev) {\n _this._executeItemClick(item, ev);\n ev.stopPropagation();\n };\n _this._executeItemClick = function (item, ev) {\n var menuTarget = _this.props.target;\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (item.preferMenuTargetAsEventTarget) {\n overrideTarget(ev, menuTarget);\n }\n var dismiss = false;\n if (item.onClick) {\n dismiss = !!item.onClick(ev, item);\n }\n else if (_this.props.onItemClick) {\n dismiss = !!_this.props.onItemClick(ev, item);\n }\n if (dismiss || !ev.defaultPrevented) {\n _this.dismiss(ev, true);\n // This should be removed whenever possible.\n // This ensures that the hidden dismissal action maintains the same behavior.\n // If the menu is being dismissed then the previously focused element should\n // get focused since the dismiss was triggered by a user click on an item\n // Rather than focus being lost.\n _this._focusingPreviousElement = true;\n }\n };\n _this._onItemKeyDown = function (item, ev) {\n var openKey = getRTL(_this.props.theme) ? KeyCodes.left : KeyCodes.right;\n if (!item.disabled &&\n (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n _this.setState({\n expandedByMouseClick: false,\n });\n _this._onItemSubMenuExpand(item, ev.currentTarget);\n ev.preventDefault();\n }\n };\n // Cancel a async menu item hover timeout action from being taken and instead\n // do new upcoming behavior\n _this._cancelSubMenuTimer = function () {\n if (_this._enterTimerId !== undefined) {\n _this._async.clearTimeout(_this._enterTimerId);\n _this._enterTimerId = undefined;\n }\n };\n _this._onItemSubMenuExpand = function (item, target) {\n if (_this.state.expandedMenuItemKey !== item.key) {\n if (_this.state.expandedMenuItemKey) {\n _this._onSubMenuDismiss();\n }\n // Focus the target to ensure when we close it, we're focusing on the correct element.\n target.focus();\n _this.setState({\n expandedMenuItemKey: item.key,\n submenuTarget: target,\n });\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 _mounted property is added to prevent\n * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n * code.\n */\n _this._onSubMenuDismiss = function (ev, dismissAll) {\n if (dismissAll) {\n _this.dismiss(ev, dismissAll);\n }\n else if (_this._mounted) {\n _this.setState({\n dismissedMenuItemKey: _this.state.expandedMenuItemKey,\n expandedMenuItemKey: undefined,\n submenuTarget: undefined,\n });\n }\n };\n _this._onPointerAndTouchEvent = function (ev) {\n _this._cancelSubMenuTimer();\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n getMenuClassNames: 'styles',\n });\n _this.state = {\n contextualMenuItems: undefined,\n subMenuId: getId('ContextualMenu'),\n };\n _this._id = props.id || getId('ContextualMenu');\n _this._focusingPreviousElement = false;\n _this._isScrollIdle = true;\n _this._shouldUpdateFocusOnMouseEvent = !_this.props.delayUpdateFocusOnHover;\n _this._gotMouseMove = false;\n return _this;\n }\n ContextualMenuBase.prototype.shouldComponentUpdate = function (newProps, newState) {\n if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {\n // Do not update when hidden.\n return false;\n }\n return !shallowCompare(this.props, newProps) || !shallowCompare(this.state, newState);\n };\n ContextualMenuBase.prototype.UNSAFE_componentWillUpdate = function (newProps) {\n if (newProps.target !== this.props.target) {\n var newTarget = newProps.target;\n this._setTargetWindowAndElement(newTarget);\n }\n if (this._isHidden(newProps) !== this._isHidden(this.props)) {\n if (this._isHidden(newProps)) {\n this._onMenuClosed();\n }\n else {\n this._onMenuOpened();\n this._previousActiveElement = this._targetWindow\n ? this._targetWindow.document.activeElement\n : undefined;\n }\n }\n if (newProps.delayUpdateFocusOnHover !== this.props.delayUpdateFocusOnHover) {\n // update shouldUpdateFocusOnMouseEvent to follow what was passed in\n this._shouldUpdateFocusOnMouseEvent = !newProps.delayUpdateFocusOnHover;\n // If shouldUpdateFocusOnMouseEvent is false, we need to reset gotMouseMove to false\n this._gotMouseMove = this._shouldUpdateFocusOnMouseEvent && this._gotMouseMove;\n }\n };\n // Invoked once, both on the client and server, immediately before the initial rendering occurs.\n ContextualMenuBase.prototype.UNSAFE_componentWillMount = function () {\n var target = this.props.target;\n this._setTargetWindowAndElement(target);\n if (!this.props.hidden) {\n this._previousActiveElement = this._targetWindow\n ? this._targetWindow.document.activeElement\n : undefined;\n }\n };\n // Invoked once, only on the client (not on the server), immediately after the initial rendering occurs.\n ContextualMenuBase.prototype.componentDidMount = function () {\n if (!this.props.hidden) {\n this._onMenuOpened();\n }\n this._mounted = true;\n };\n // Invoked immediately before a component is unmounted from the DOM.\n ContextualMenuBase.prototype.componentWillUnmount = function () {\n if (this.props.onMenuDismissed) {\n this.props.onMenuDismissed(this.props);\n }\n this._events.dispose();\n this._async.dispose();\n this._mounted = false;\n };\n ContextualMenuBase.prototype.render = function () {\n var _this = this;\n var isBeakVisible = this.props.isBeakVisible;\n var _a = this.props, items = _a.items, labelElementId = _a.labelElementId, id = _a.id, className = _a.className, beakWidth = _a.beakWidth, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, alignTargetEdge = _a.alignTargetEdge, gapSpace = _a.gapSpace, coverTarget = _a.coverTarget, ariaLabel = _a.ariaLabel, doNotLayer = _a.doNotLayer, target = _a.target, bounds = _a.bounds, useTargetWidth = _a.useTargetWidth, useTargetAsMinWidth = _a.useTargetAsMinWidth, directionalHintFixed = _a.directionalHintFixed, shouldFocusOnMount = _a.shouldFocusOnMount, shouldFocusOnContainer = _a.shouldFocusOnContainer, title = _a.title, styles = _a.styles, theme = _a.theme, calloutProps = _a.calloutProps, _b = _a.onRenderSubMenu, onRenderSubMenu = _b === void 0 ? this._onRenderSubMenu : _b, _c = _a.onRenderMenuList, onRenderMenuList = _c === void 0 ? this._onRenderMenuList : _c, focusZoneProps = _a.focusZoneProps, \n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames = _a.getMenuClassNames;\n this._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 this._adjustedFocusZoneProps = __assign(__assign({}, focusZoneProps), { direction: this._getFocusZoneDirection() });\n var hasCheckmarks = canAnyMenuItemsCheck(items);\n var submenuProps = this.state.expandedMenuItemKey && this.props.hidden !== true ? this._getSubmenuProps() : null;\n isBeakVisible = isBeakVisible === undefined ? this.props.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 = this._target;\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 = 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 += itemCount;\n }\n }\n var calloutStyles = this._classNames.subComponentStyles\n ? this._classNames.subComponentStyles.callout\n : undefined;\n return (React.createElement(Callout, __assign({ styles: calloutStyles, onRestoreFocus: this._tryFocusPreviousActiveElement }, calloutProps, { target: 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: this.props.onDismiss, onScroll: this._onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: this.props.hidden }),\n React.createElement(\"div\", { style: contextMenuStyle, ref: function (host) { return (_this._host = host); }, id: id, className: this._classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: this._onMenuKeyDown, onKeyUp: this._onKeyUp, onFocusCapture: this._onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n title && React.createElement(\"div\", { className: this._classNames.title },\n \" \",\n title,\n \" \"),\n items && items.length ? (React.createElement(FocusZone, __assign({ className: this._classNames.root, isCircularNavigation: true, handleTabKey: FocusZoneTabbableElements.all }, this._adjustedFocusZoneProps), onRenderMenuList({\n ariaLabel: ariaLabel,\n items: items,\n totalItemCount: totalItemCount,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n defaultMenuItemRenderer: this._defaultMenuItemRenderer,\n labelElementId: labelElementId,\n }, this._onRenderMenuList))) : null,\n submenuProps && onRenderSubMenu(submenuProps, this._onRenderSubMenu))));\n }\n else {\n return null;\n }\n };\n /**\n * Return whether the contextual menu is hidden.\n * Undefined value for hidden is equivalent to hidden being false.\n * @param props - Props for the component\n */\n ContextualMenuBase.prototype._isHidden = function (props) {\n return !!props.hidden;\n };\n ContextualMenuBase.prototype._onMenuOpened = function () {\n this._events.on(this._targetWindow, 'resize', this.dismiss);\n this._shouldUpdateFocusOnMouseEvent = !this.props.delayUpdateFocusOnHover;\n this._gotMouseMove = false;\n this.props.onMenuOpened && this.props.onMenuOpened(this.props);\n };\n ContextualMenuBase.prototype._onMenuClosed = function () {\n this._events.off(this._targetWindow, 'resize', this.dismiss);\n // This is kept for backwards compatability with hidden for right now.\n // This preserves the way that this behaved in the past\n // TODO find a better way to handle this by using the same conventions that\n // Popup uses to determine if focus is contained when dismissal occurs\n this._tryFocusPreviousActiveElement({\n containsFocus: this._focusingPreviousElement,\n documentContainsFocus: this._targetWindow.document.hasFocus(),\n originalElement: this._previousActiveElement,\n });\n this._focusingPreviousElement = false;\n if (this.props.onMenuDismissed) {\n this.props.onMenuDismissed(this.props);\n }\n this._shouldUpdateFocusOnMouseEvent = !this.props.delayUpdateFocusOnHover;\n // We need to dismiss any submenu related state properties,\n // so that when the menu is shown again, the submenu is collapsed\n this.setState({\n expandedByMouseClick: undefined,\n dismissedMenuItemKey: undefined,\n expandedMenuItemKey: undefined,\n submenuTarget: undefined,\n });\n };\n /**\n * Gets the focusZoneDirection by using the arrowDirection if specified,\n * the direction specificed in the focusZoneProps, or defaults to FocusZoneDirection.vertical\n */\n ContextualMenuBase.prototype._getFocusZoneDirection = function () {\n var focusZoneProps = this.props.focusZoneProps;\n return focusZoneProps && focusZoneProps.direction !== undefined\n ? focusZoneProps.direction\n : FocusZoneDirection.vertical;\n };\n ContextualMenuBase.prototype._onRenderSubMenu = function (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 ContextualMenuBase.prototype._renderSectionItem = function (sectionItem, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var _this = this;\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 ariaLabellledby = '';\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 = this._id + sectionProps.title.replace(/\\s/g, '');\n headerContextualMenuItem = {\n key: \"section-\" + sectionProps.title + \"-title\",\n itemType: ContextualMenuItemType.Header,\n text: sectionProps.title,\n id: id,\n };\n ariaLabellledby = id;\n }\n else {\n var id = sectionProps.title.id || this._id + sectionProps.title.key.replace(/\\s/g, '');\n headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id });\n ariaLabellledby = id;\n }\n if (headerContextualMenuItem) {\n groupProps = {\n role: 'group',\n 'aria-labelledby': ariaLabellledby,\n };\n headerItem = this._renderHeaderMenuItem(headerContextualMenuItem, 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: this._classNames.list, role: \"presentation\" },\n sectionProps.topDivider && this._renderSeparator(index, menuClassNames, true, true),\n headerItem &&\n this._renderListItem(headerItem, sectionItem.key || index, menuClassNames, sectionItem.title),\n sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n return _this._renderMenuItem(contextualMenuItem, itemsIndex, itemsIndex, sectionProps.items.length, hasCheckmarks, hasIcons);\n }),\n sectionProps.bottomDivider && this._renderSeparator(index, menuClassNames, false, true)))));\n }\n };\n ContextualMenuBase.prototype._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 ContextualMenuBase.prototype._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 ContextualMenuBase.prototype._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), this.dismiss);\n }\n if (item.href) {\n return this._renderAnchorMenuItem(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n }\n if (item.split && hasSubmenu(item)) {\n return this._renderSplitButton(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n }\n return this._renderButtonItem(item, classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n ContextualMenuBase.prototype._renderHeaderMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, hasCheckmarks, hasIcons) {\n var _a = this.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: this._classNames.header }, divHtmlProperties, { style: item.style }),\n React.createElement(ChildrenRenderer, __assign({ item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks ? this._onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n };\n ContextualMenuBase.prototype._renderAnchorMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n var contextualMenuItemAs = this.props.contextualMenuItemAs;\n var expandedMenuItemKey = this.state.expandedMenuItemKey;\n return (React.createElement(ContextualMenuAnchor, { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onAnchorClick, onItemKeyDown: this._onItemKeyDown, expandedMenuItemKey: expandedMenuItemKey, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss }));\n };\n ContextualMenuBase.prototype._renderButtonItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n var contextualMenuItemAs = this.props.contextualMenuItemAs;\n var expandedMenuItemKey = this.state.expandedMenuItemKey;\n return (React.createElement(ContextualMenuButton, { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onItemClick, onItemClickBase: this._onItemClickBase, onItemKeyDown: this._onItemKeyDown, expandedMenuItemKey: expandedMenuItemKey, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss }));\n };\n ContextualMenuBase.prototype._renderSplitButton = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n var contextualMenuItemAs = this.props.contextualMenuItemAs;\n var expandedMenuItemKey = this.state.expandedMenuItemKey;\n return (React.createElement(ContextualMenuSplitButton, { item: item, classNames: classNames, index: index, focusableElementIndex: focusableElementIndex, totalItemCount: totalItemCount, hasCheckmarks: hasCheckmarks, hasIcons: hasIcons, contextualMenuItemAs: contextualMenuItemAs, onItemMouseEnter: this._onItemMouseEnterBase, onItemMouseLeave: this._onMouseItemLeave, onItemMouseMove: this._onItemMouseMoveBase, onItemMouseDown: this._onItemMouseDown, executeItemClick: this._executeItemClick, onItemClick: this._onItemClick, onItemClickBase: this._onItemClickBase, onItemKeyDown: this._onItemKeyDown, openSubMenu: this._onItemSubMenuExpand, dismissSubMenu: this._onSubMenuDismiss, dismissMenu: this.dismiss, expandedMenuItemKey: expandedMenuItemKey, onTap: this._onPointerAndTouchEvent }));\n };\n /**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\n ContextualMenuBase.prototype._isAltOrMeta = function (ev) {\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n };\n ContextualMenuBase.prototype._shouldIgnoreMouseEvent = function () {\n return !this._isScrollIdle || !this._gotMouseMove;\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 ContextualMenuBase.prototype._updateFocusOnMouseEvent = function (item, ev, target) {\n var _this = this;\n var targetElement = target ? target : ev.currentTarget;\n var _a = this.props.subMenuHoverDelay, timeoutDuration = _a === void 0 ? NavigationIdleDelay : _a;\n if (item.key === this.state.expandedMenuItemKey) {\n return;\n }\n if (this._enterTimerId !== undefined) {\n this._async.clearTimeout(this._enterTimerId);\n this._enterTimerId = undefined;\n }\n // If the menu is not expanded we can update focus without any delay\n if (this.state.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 this._enterTimerId = this._async.setTimeout(function () {\n targetElement.focus();\n _this.setState({\n expandedByMouseClick: true,\n });\n _this._onItemSubMenuExpand(item, targetElement);\n _this._enterTimerId = undefined;\n }, timeoutDuration);\n }\n else {\n this._enterTimerId = this._async.setTimeout(function () {\n _this._onSubMenuDismiss(ev);\n targetElement.focus();\n _this._enterTimerId = undefined;\n }, timeoutDuration);\n }\n };\n ContextualMenuBase.prototype._getSubmenuProps = function () {\n var _a = this.state, submenuTarget = _a.submenuTarget, expandedMenuItemKey = _a.expandedMenuItemKey;\n var item = this._findItemByKey(expandedMenuItemKey);\n var submenuProps = null;\n var menuTarget = this.props.target;\n if (item) {\n submenuProps = {\n items: getSubmenuItems(item, { target: menuTarget }),\n target: submenuTarget,\n onDismiss: this._onSubMenuDismiss,\n isSubMenu: true,\n id: this.state.subMenuId,\n shouldFocusOnMount: true,\n shouldFocusOnContainer: this.state.expandedByMouseClick,\n directionalHint: getRTL(this.props.theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n className: this.props.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 ContextualMenuBase.prototype._findItemByKey = function (key) {\n var items = this.props.items;\n return this._findItemByKeyFromItems(key, items);\n };\n /**\n * Returns the item that mathes 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 */\n ContextualMenuBase.prototype._findItemByKeyFromItems = function (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 = this._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 };\n ContextualMenuBase.prototype._setTargetWindowAndElement = function (target) {\n var currentElement = this._host;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n this._target = currentDoc ? currentDoc.querySelector(target) : null;\n this._targetWindow = getWindow(currentElement);\n // Cast to any prevents error about stopPropagation always existing\n }\n else if (target.stopPropagation) {\n this._targetWindow = getWindow(target.target);\n this._target = target;\n }\n else if (\n // eslint-disable-next-line deprecation/deprecation\n (target.left !== undefined || target.x !== undefined) &&\n // eslint-disable-next-line deprecation/deprecation\n (target.top !== undefined || target.y !== undefined)) {\n this._targetWindow = getWindow(currentElement);\n this._target = target;\n }\n else if (target.current !== undefined) {\n this._target = target.current;\n this._targetWindow = getWindow(this._target);\n }\n else {\n var targetElement = target;\n this._targetWindow = getWindow(targetElement);\n this._target = target;\n }\n }\n else {\n this._targetWindow = getWindow(currentElement);\n }\n };\n // The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\n ContextualMenuBase.defaultProps = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n };\n ContextualMenuBase = __decorate([\n withResponsiveMode\n ], ContextualMenuBase);\n return ContextualMenuBase;\n}(React.Component));\nexport { ContextualMenuBase };\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;\n//# sourceMappingURL=ContextualMenu.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\nimport { getGlobalClassNames } 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 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 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 var isUp = ev.which === KeyCodes.up;\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 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 onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n if (!ev.defaultPrevented) {\n // When Edge + Narrator are used together (regardless of if the button is in a form or not), pressing\n // \"Enter\" fires this method and not _onMenuKeyDown. Checking ev.nativeEvent.detail differentiates\n // between a real click event and a keypress event (detail should be the number of mouse clicks).\n // ...Plot twist! For a real click event in IE 11, detail is always 0 (Edge sets it properly to 1).\n // So we also check the pointerType property, which both Edge and IE set to \"mouse\" for real clicks\n // and \"\" for pressing \"Enter\" with Narrator on.\n var shouldFocusOnContainer = ev.nativeEvent.detail !== 0 || ev.nativeEvent.pointerType === 'mouse';\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: true,\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',\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 ariaLabel is given, use that as the label and we're done.\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 // set the labelledby element. Otherwise, the button is labeled implicitly by the descendent\n // text on the button (if it exists). Never set both aria-label and aria-labelledby.\n var ariaLabelledBy = undefined;\n if (!resolvedAriaLabel) {\n if (nativeProps['aria-labelledby']) {\n ariaLabelledBy = nativeProps['aria-labelledby'];\n }\n else if (ariaDescribedBy) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\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 assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-owns': !menuHidden ? this._labelId + '-menu' : 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(\"span\", { style: { display: 'inline-block' } },\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 return ev.which === this.props.menuTriggerKeyCode;\n }\n else if (this.props.menuProps) {\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 { __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","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nvar getClassNames = classNamesFunction();\nvar KEY_PREFIX = 'fabricImage';\nvar ImageBase = /** @class */ (function (_super) {\n __extends(ImageBase, _super);\n function ImageBase(props) {\n var _this = _super.call(this, props) || this;\n // Make an initial assumption about the image layout until we can\n // check the rendered element. The value here only takes effect when\n // shouldStartVisible is true.\n _this._coverStyle = ImageCoverStyle.portrait;\n _this._imageElement = React.createRef();\n _this._frameElement = React.createRef();\n _this._onImageLoaded = function (ev) {\n var _a = _this.props, src = _a.src, onLoad = _a.onLoad;\n if (onLoad) {\n onLoad(ev);\n }\n _this._computeCoverStyle(_this.props);\n if (src) {\n _this.setState({\n loadState: ImageLoadState.loaded,\n });\n }\n };\n _this._onImageError = function (ev) {\n if (_this.props.onError) {\n _this.props.onError(ev);\n }\n _this.setState({\n loadState: ImageLoadState.error,\n });\n };\n _this.state = {\n loadState: ImageLoadState.notLoaded,\n };\n return _this;\n }\n ImageBase.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n if (nextProps.src !== this.props.src) {\n this.setState({\n loadState: ImageLoadState.notLoaded,\n });\n }\n else if (this.state.loadState === ImageLoadState.loaded) {\n this._computeCoverStyle(nextProps);\n }\n };\n ImageBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._checkImageLoaded();\n if (this.props.onLoadingStateChange && prevState.loadState !== this.state.loadState) {\n this.props.onLoadingStateChange(this.state.loadState);\n }\n };\n ImageBase.prototype.render = function () {\n var imageProps = getNativeProps(this.props, imgProperties, [\n 'width',\n 'height',\n ]);\n var _a = this.props, src = _a.src, alt = _a.alt, width = _a.width, height = _a.height, shouldFadeIn = _a.shouldFadeIn, shouldStartVisible = _a.shouldStartVisible, className = _a.className, imageFit = _a.imageFit, role = _a.role, maximizeFrame = _a.maximizeFrame, styles = _a.styles, theme = _a.theme;\n var loadState = this.state.loadState;\n var coverStyle = this.props.coverStyle !== undefined ? this.props.coverStyle : this._coverStyle;\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 ||\n (loadState === ImageLoadState.notLoaded && this.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: this._frameElement },\n React.createElement(\"img\", __assign({}, imageProps, { onLoad: this._onImageLoaded, onError: this._onImageError, key: KEY_PREFIX + this.props.src || '', className: classNames.image, ref: this._imageElement, src: src, alt: alt, role: role }))));\n };\n ImageBase.prototype._checkImageLoaded = function () {\n var src = this.props.src;\n var loadState = this.state.loadState;\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 = this._imageElement.current\n ? (src && this._imageElement.current.naturalWidth > 0 && this._imageElement.current.naturalHeight > 0) ||\n (this._imageElement.current.complete && ImageBase._svgRegex.test(src))\n : false;\n if (isLoaded) {\n this._computeCoverStyle(this.props);\n this.setState({\n loadState: ImageLoadState.loaded,\n });\n }\n }\n };\n ImageBase.prototype._computeCoverStyle = function (props) {\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 ((imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n this.props.coverStyle === undefined &&\n this._imageElement.current &&\n this._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 = this._frameElement.current.clientWidth / this._frameElement.current.clientHeight;\n }\n // Examine the source image to determine its original ratio.\n var naturalRatio = this._imageElement.current.naturalWidth / this._imageElement.current.naturalHeight;\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n this._coverStyle = ImageCoverStyle.landscape;\n }\n else {\n this._coverStyle = ImageCoverStyle.portrait;\n }\n }\n };\n ImageBase.defaultProps = {\n shouldFadeIn: true,\n };\n ImageBase._svgRegex = /\\.svg$/i;\n return ImageBase;\n}(React.Component));\nexport { ImageBase };\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%)',\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 ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n 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);\n//# sourceMappingURL=Image.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n /** Only show tooltip if parent DOM element is overflowing */\n TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n /**\n * Only show tooltip if tooltip host's content is overflowing.\n * Note that this does not check the children for overflow, only the TooltipHost root.\n */\n TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n /** 300 ms delay before showng the tooltip */\n TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n /** 500 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n __extends(TooltipBase, _super);\n function TooltipBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onRenderContent = function (props) {\n return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n };\n return _this;\n }\n TooltipBase.prototype.render = function () {\n var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className || (calloutProps && calloutProps.className),\n beakWidth: calloutProps && calloutProps.beakWidth,\n gapSpace: calloutProps && calloutProps.gapSpace,\n maxWidth: maxWidth,\n });\n return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n React.createElement(\"div\", { className: this._classNames.content, id: id, role: \"tooltip\", onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n };\n // Specify default props values\n TooltipBase.defaultProps = {\n directionalHint: DirectionalHint.topCenter,\n maxWidth: '364px',\n calloutProps: {\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n },\n };\n return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n // The math here is done to account for the 45 degree rotation of the beak\n // and sub-pixel rounding that differs across browsers, which is more noticeable when\n // the device pixel ratio is larger\n var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) + 1 / window.devicePixelRatio;\n return {\n root: [\n 'ms-Tooltip',\n theme.fonts.medium,\n AnimationClassNames.fadeIn200,\n {\n background: semanticColors.menuBackground,\n boxShadow: effects.elevation8,\n padding: '8px',\n maxWidth: maxWidth,\n selectors: {\n ':after': {\n content: \"''\",\n position: 'absolute',\n bottom: tooltipGapSpace,\n left: tooltipGapSpace,\n right: tooltipGapSpace,\n top: tooltipGapSpace,\n zIndex: 0,\n },\n },\n },\n className,\n ],\n content: [\n 'ms-Tooltip-content',\n fonts.small,\n {\n position: 'relative',\n zIndex: 1,\n color: semanticColors.menuItemText,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n overflow: 'hidden',\n },\n ],\n subText: [\n 'ms-Tooltip-subtext',\n {\n // Using inherit here to avoid unintentional global overrides of the

tag.\n fontSize: 'inherit',\n fontWeight: 'inherit',\n color: 'inherit',\n margin: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode, } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n __extends(TooltipHostBase, _super);\n // Constructor\n function TooltipHostBase(props) {\n var _this = _super.call(this, props) || this;\n // The wrapping div that gets the hover events\n _this._tooltipHost = React.createRef();\n _this._defaultTooltipId = getId('tooltip');\n _this.show = function () {\n _this._toggleTooltip(true);\n };\n _this.dismiss = function () {\n _this._hideTooltip();\n };\n _this._getTargetElement = function () {\n if (!_this._tooltipHost.current) {\n return undefined;\n }\n var overflowMode = _this.props.overflowMode;\n // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n // to the parent element, otherwise it might look off.\n if (overflowMode !== undefined) {\n switch (overflowMode) {\n case TooltipOverflowMode.Parent:\n return _this._tooltipHost.current.parentElement;\n case TooltipOverflowMode.Self:\n return _this._tooltipHost.current;\n }\n }\n return _this._tooltipHost.current;\n };\n // Show Tooltip\n _this._onTooltipMouseEnter = function (ev) {\n var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n if (overflowMode !== undefined) {\n var overflowElement = _this._getTargetElement();\n if (overflowElement && !hasOverflow(overflowElement)) {\n return;\n }\n }\n if (ev.target && portalContainsElement(ev.target, _this._getTargetElement())) {\n // Do not show tooltip when target is inside a portal relative to TooltipHost.\n return;\n }\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (delay !== TooltipDelay.zero) {\n var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n _this._openTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(true);\n }, delayTime);\n }\n else {\n _this._toggleTooltip(true);\n }\n };\n // Hide Tooltip\n _this._onTooltipMouseLeave = function (ev) {\n var closeDelay = _this.props.closeDelay;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (closeDelay) {\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(false);\n }, closeDelay);\n }\n else {\n _this._toggleTooltip(false);\n }\n if (TooltipHostBase._currentVisibleTooltip === _this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n };\n _this._onTooltipKeyDown = function (ev) {\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n _this._hideTooltip();\n ev.stopPropagation();\n }\n };\n _this._clearDismissTimer = function () {\n _this._async.clearTimeout(_this._dismissTimerId);\n };\n _this._clearOpenTimer = function () {\n _this._async.clearTimeout(_this._openTimerId);\n };\n // Hide Tooltip\n _this._hideTooltip = function () {\n _this._clearOpenTimer();\n _this._clearDismissTimer();\n _this._toggleTooltip(false);\n };\n _this._toggleTooltip = function (isTooltipVisible) {\n if (_this.state.isTooltipVisible !== isTooltipVisible) {\n _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n }\n };\n _this._getDelayTime = function (delay) {\n switch (delay) {\n case TooltipDelay.medium:\n return 300;\n case TooltipDelay.long:\n return 500;\n default:\n return 0;\n }\n };\n initializeComponentRef(_this);\n _this.state = {\n isAriaPlaceholderRendered: false,\n isTooltipVisible: false,\n };\n _this._async = new Async(_this);\n return _this;\n }\n // Render\n TooltipHostBase.prototype.render = function () {\n var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, _b = _a.setAriaDescribedBy, setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var isTooltipVisible = this.state.isTooltipVisible;\n var tooltipId = id || this._defaultTooltipId;\n var isContentPresent = !!(content ||\n (tooltipProps && tooltipProps.onRenderContent && tooltipProps.onRenderContent()));\n var showTooltip = isTooltipVisible && isContentPresent;\n var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && isContentPresent ? tooltipId : undefined;\n return (React.createElement(\"div\", __assign({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipMouseEnter }, { onBlurCapture: this._hideTooltip }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, \"aria-describedby\": ariaDescribedBy }),\n children,\n showTooltip && (React.createElement(Tooltip, __assign({ id: tooltipId + \"--tooltip\", content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n onDismiss: this._hideTooltip,\n onMouseEnter: this._onTooltipMouseEnter,\n onMouseLeave: this._onTooltipMouseLeave,\n }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id']), tooltipProps))),\n React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, content)));\n };\n TooltipHostBase.prototype.componentWillUnmount = function () {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n this._async.dispose();\n };\n TooltipHostBase.defaultProps = {\n delay: TooltipDelay.medium,\n };\n return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-TooltipHost',\n ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'inline',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","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 * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1-lts\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","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 { __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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _FormControl = require('@material-ui/core/FormControl');\n\nvar _FormControl2 = _interopRequireDefault(_FormControl);\n\nvar _FormHelperText = require('@material-ui/core/FormHelperText');\n\nvar _FormHelperText2 = _interopRequireDefault(_FormHelperText);\n\nvar _InputLabel = require('@material-ui/core/InputLabel');\n\nvar _InputLabel2 = _interopRequireDefault(_InputLabel);\n\nvar _InputAdornment = require('@material-ui/core/InputAdornment');\n\nvar _InputAdornment2 = _interopRequireDefault(_InputAdornment);\n\nvar _Input = require('@material-ui/core/Input');\n\nvar _Input2 = _interopRequireDefault(_Input);\n\nvar _FilledInput = require('@material-ui/core/FilledInput');\n\nvar _FilledInput2 = _interopRequireDefault(_FilledInput);\n\nvar _OutlinedInput = require('@material-ui/core/OutlinedInput');\n\nvar _OutlinedInput2 = _interopRequireDefault(_OutlinedInput);\n\nvar _LinearProgress = require('@material-ui/core/LinearProgress');\n\nvar _LinearProgress2 = _interopRequireDefault(_LinearProgress);\n\nvar _IconButton = require('@material-ui/core/IconButton');\n\nvar _IconButton2 = _interopRequireDefault(_IconButton);\n\nvar _ArrowDropDown = require('@material-ui/icons/ArrowDropDown');\n\nvar _ArrowDropDown2 = _interopRequireDefault(_ArrowDropDown);\n\nvar _ArrowDropUp = require('@material-ui/icons/ArrowDropUp');\n\nvar _ArrowDropUp2 = _interopRequireDefault(_ArrowDropUp);\n\nvar _Clear = require('@material-ui/icons/Clear');\n\nvar _Clear2 = _interopRequireDefault(_Clear);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar variantComponent = {\n standard: _Input2.default,\n filled: _FilledInput2.default,\n outlined: _OutlinedInput2.default\n};\n\nvar Input = function (_Component) {\n _inherits(Input, _Component);\n\n function Input(props) {\n _classCallCheck(this, Input);\n\n var _this = _possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).call(this, props));\n\n _this.handleClearSelection = function (e) {\n var _this$props = _this.props,\n downshiftProps = _this$props.downshiftProps,\n focusOnClear = _this$props.focusOnClear;\n\n downshiftProps.clearSelection();\n\n if (focusOnClear) {\n _this.input.focus();\n }\n };\n\n _this.handleToggleMenu = function (e) {\n var _this$props$downshift = _this.props.downshiftProps,\n isOpen = _this$props$downshift.isOpen,\n openMenu = _this$props$downshift.openMenu,\n closeMenu = _this$props$downshift.closeMenu;\n\n\n if (!isOpen) {\n _this.input.focus();\n openMenu();\n } else {\n closeMenu();\n }\n };\n\n _this.labelRef = _react2.default.createRef();\n return _this;\n }\n\n _createClass(Input, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.variant === 'outlined') {\n this.labelNode = _reactDom2.default.findDOMNode(this.labelRef.current);\n this.forceUpdate();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n _inputRef = _props.inputRef,\n getInputProps = _props.getInputProps,\n loading = _props.loading,\n downshiftProps = _props.downshiftProps,\n variant = _props.variant;\n\n var _ref = getInputProps ? getInputProps(_extends({}, downshiftProps, {\n inputRef: this.input,\n handleClearSelection: this.handleClearSelection,\n handleToggleMenu: this.handleToggleMenu\n })) : {},\n label = _ref.label,\n labelProps = _ref.labelProps,\n disabled = _ref.disabled,\n required = _ref.required,\n error = _ref.error,\n helperText = _ref.helperText,\n inputProps = _objectWithoutProperties(_ref, ['label', 'labelProps', 'disabled', 'required', 'error', 'helperText']);\n\n var shrink = downshiftProps.isOpen || downshiftProps.inputValue || inputProps.startAdornment || labelProps && labelProps.shrink ? true : undefined;\n var InputMore = {};\n if (variant === 'outlined') {\n if (typeof shrink !== 'undefined') {\n InputMore.notched = shrink;\n }\n InputMore.labelWidth = this.labelNode && this.labelNode.offsetWidth || 0;\n }\n var InputComponent = variantComponent[variant];\n\n return _react2.default.createElement(\n _FormControl2.default,\n { disabled: disabled, required: required, error: error, fullWidth: true },\n label && _react2.default.createElement(\n _InputLabel2.default,\n _extends({\n ref: this.labelRef,\n variant: variant,\n shrink: shrink\n }, downshiftProps.getLabelProps(), labelProps),\n label\n ),\n _react2.default.createElement(InputComponent, _extends({\n inputRef: function inputRef(input) {\n _this2.input = input;\n _inputRef && _inputRef(input);\n },\n endAdornment: !disabled && _react2.default.createElement(\n _InputAdornment2.default,\n { position: 'end' },\n !!downshiftProps.selectedItem && _react2.default.createElement(\n _IconButton2.default,\n { onClick: this.handleClearSelection, 'aria-label': 'Clear selection' },\n _react2.default.createElement(_Clear2.default, null)\n ),\n _react2.default.createElement(\n _IconButton2.default,\n { onClick: this.handleToggleMenu, 'aria-label': 'Toggle menu open' },\n downshiftProps.isOpen ? _react2.default.createElement(_ArrowDropUp2.default, null) : _react2.default.createElement(_ArrowDropDown2.default, null)\n )\n ),\n onFocus: downshiftProps.openMenu\n }, InputMore, downshiftProps.getInputProps(inputProps))),\n loading && _react2.default.createElement(_LinearProgress2.default, {\n style: {\n position: 'relative',\n bottom: 2,\n height: 2,\n marginBottom: -2\n }\n }),\n helperText && _react2.default.createElement(\n _FormHelperText2.default,\n null,\n helperText\n )\n );\n }\n }]);\n\n return Input;\n}(_react.Component);\n\nexports.default = Input;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactVirtualized = require('react-virtualized');\n\nvar _classnames3 = require('classnames');\n\nvar _classnames4 = _interopRequireDefault(_classnames3);\n\nvar _Paper = require('@material-ui/core/Paper');\n\nvar _Paper2 = _interopRequireDefault(_Paper);\n\nvar _Popper = require('@material-ui/core/Popper');\n\nvar _Popper2 = _interopRequireDefault(_Popper);\n\nvar _styles = require('@material-ui/core/styles');\n\nvar _zIndex = require('@material-ui/core/styles/zIndex');\n\nvar _zIndex2 = _interopRequireDefault(_zIndex);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar styles = function styles(theme) {\n return {\n keyboardFocused: {\n backgroundColor: theme.palette.divider\n }\n };\n};\n\nfunction getRowCount(items, includeFooter) {\n return (items ? items.length : 0) + (includeFooter ? 1 : 0);\n}\n\nfunction getMenuHeight(rowHeight, items, menuItemCount, showEmpty, includeFooter) {\n var rowCount = getRowCount(items, includeFooter);\n if (rowCount) {\n var visibleCount = Math.min(rowCount, menuItemCount); // Maximum items before scrolling\n var height = 0;\n for (var i = 0; i < visibleCount; i++) {\n height += typeof rowHeight === 'function' ? rowHeight({ index: i }) : rowHeight;\n }\n return height;\n } else if (showEmpty) {\n // Return the height of a single item\n return typeof rowHeight === 'function' ? rowHeight({ index: 0 }) : rowHeight;\n }\n return 0;\n}\n\nvar MuiVirtualList = function (_Component) {\n _inherits(MuiVirtualList, _Component);\n\n function MuiVirtualList() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, MuiVirtualList);\n\n for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MuiVirtualList.__proto__ || Object.getPrototypeOf(MuiVirtualList)).call.apply(_ref, [this].concat(args))), _this), _this.cache = new _reactVirtualized.CellMeasurerCache({\n fixedWidth: true,\n defaultHeight: 48,\n keyMapper: _this.props.getListItemKey\n }), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(MuiVirtualList, [{\n key: 'UNSAFE_componentWillReceiveProps',\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n if (this.props.getListItemKey !== nextProps.getListItemKey) {\n this.cache._keyMapper = nextProps.getListItemKey;\n }\n\n if (this.props.width !== nextProps.width) {\n // Need to recalculate all heights since new widths\n this.cache.clearAll();\n this.list.recomputeRowHeights();\n }\n\n if (this.props.items !== nextProps.items) {\n if (!this.props.getListItemKey) {\n // Only need to recalculate heights if no getListItemKey is defined as CellMeasureCache.defaultKeyMapper only uses indexes for keys (and new items at the same index might have different heights)\n this.cache.clearAll();\n }\n\n this.list.recomputeRowHeights();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n items = _props.items,\n width = _props.width,\n menuItemCount = _props.menuItemCount,\n menuHeight = _props.menuHeight,\n getListItem = _props.getListItem,\n showEmpty = _props.showEmpty,\n includeFooter = _props.includeFooter,\n getVirtualListProps = _props.getVirtualListProps,\n getListItemKey = _props.getListItemKey,\n _onRowsRendered = _props.onRowsRendered,\n registerChild = _props.registerChild,\n downshiftProps = _props.downshiftProps,\n classes = _props.classes;\n\n\n var virtualListProps = getVirtualListProps && getVirtualListProps({ downshiftProps: downshiftProps });\n var rowHeight = virtualListProps && virtualListProps.rowHeight ? virtualListProps.rowHeight : this.cache.rowHeight;\n var useCellMeasurer = !(virtualListProps && virtualListProps.rowHeight);\n var height = menuHeight || getMenuHeight(rowHeight, items, menuItemCount, showEmpty, includeFooter);\n\n return _react2.default.createElement(_reactVirtualized.List, _extends({\n width: width\n }, downshiftProps.highlightedIndex != null && { scrollToIndex: downshiftProps.highlightedIndex }, {\n height: height,\n rowCount: getRowCount(items, includeFooter),\n rowHeight: rowHeight,\n rowRenderer: function rowRenderer(_ref2) {\n var index = _ref2.index,\n style = _ref2.style,\n parent = _ref2.parent,\n key = _ref2.key;\n\n var item = items ? items[index] : null;\n var isHighlighted = downshiftProps.highlightedIndex === index;\n var className = (0, _classnames4.default)(_defineProperty({}, classes.keyboardFocused, isHighlighted));\n // Convenience helper to simplify typical usage\n var getItemProps = function getItemProps(props) {\n return downshiftProps.getItemProps(_extends({\n item: item,\n index: index,\n className: className\n }, props));\n };\n var listItem = getListItem({\n getItemProps: getItemProps,\n item: item,\n index: index,\n downshiftProps: downshiftProps,\n style: style\n });\n\n var _key = getListItemKey ? getListItemKey(index) : key;\n\n if (useCellMeasurer) {\n return _react2.default.createElement(\n _reactVirtualized.CellMeasurer,\n {\n cache: _this2.cache,\n columnIndex: 0,\n rowIndex: index,\n parent: parent,\n key: _key,\n width: width\n },\n _react2.default.createElement(\n 'div',\n { style: style },\n listItem\n )\n );\n }\n return _react2.default.createElement(\n 'div',\n { style: style, key: key },\n listItem\n );\n },\n noRowsRenderer: function noRowsRenderer() {\n // TODO: Support non-default (48) row height. Either figure out how to use CellMeasurer (initial attempt failed) or allow passing an explicit height. This might be fixed now that the cache is cleared when `items` are changed\n var index = 0;\n var item = null;\n var isHighlighted = downshiftProps.highlightedIndex === index;\n var className = (0, _classnames4.default)(_defineProperty({}, classes.keyboardFocused, isHighlighted));\n // Convenience helper to simplify typical usage\n var getItemProps = function getItemProps(props) {\n return downshiftProps.getItemProps(_extends({\n item: item,\n index: index,\n className: className\n }, props));\n };\n return getListItem({\n getItemProps: getItemProps,\n item: item,\n index: index,\n downshiftProps: downshiftProps\n });\n },\n onRowsRendered: function onRowsRendered(args) {\n if (useCellMeasurer) {\n // Force update to recalculate menuHeight with updated cache values. See issue #45\n _this2.forceUpdate();\n }\n _onRowsRendered && _onRowsRendered(args);\n }\n }, useCellMeasurer && { deferredMeasurementCache: this.cache }, {\n ref: function ref(el) {\n _this2.list = el;\n if (registerChild) {\n registerChild(el);\n }\n }\n }, virtualListProps));\n }\n }]);\n\n return MuiVirtualList;\n}(_react.Component);\n\nfunction Menu(_ref3) {\n var getInfiniteLoaderProps = _ref3.getInfiniteLoaderProps,\n inputRef = _ref3.inputRef,\n props = _objectWithoutProperties(_ref3, ['getInfiniteLoaderProps', 'inputRef']);\n\n return props.downshiftProps.isOpen ? _react2.default.createElement(\n _reactVirtualized.AutoSizer,\n null,\n function (_ref4) {\n var width = _ref4.width;\n return _react2.default.createElement(\n _Popper2.default,\n {\n open: true,\n anchorEl: inputRef,\n placement: 'bottom-start',\n style: { zIndex: _zIndex2.default.modal },\n modifiers: {\n preventOverflow: { enabled: false },\n hide: { enabled: false }\n }\n },\n _react2.default.createElement(\n 'div',\n props.downshiftProps.getMenuProps({}, { suppressRefError: true }),\n _react2.default.createElement(\n _Paper2.default,\n { style: { width: width } },\n getInfiniteLoaderProps ? _react2.default.createElement(\n _reactVirtualized.InfiniteLoader,\n getInfiniteLoaderProps({ downshiftProps: props.downshiftProps }),\n function (_ref5) {\n var onRowsRendered = _ref5.onRowsRendered,\n registerChild = _ref5.registerChild;\n return _react2.default.createElement(MuiVirtualList, _extends({}, props, {\n width: width,\n onRowsRendered: onRowsRendered,\n registerChild: registerChild\n }));\n }\n ) : _react2.default.createElement(MuiVirtualList, _extends({}, props, { width: width }))\n )\n )\n );\n }\n ) : null;\n}\n\nexports.default = (0, _styles.withStyles)(styles)(Menu);","/**\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, use `default`.\n * @deprecated Use `default`.\n */\n IconType[IconType[\"Default\"] = 100000] = \"Default\";\n /**\n * Deprecated, use `image`.\n * @deprecated Use `image`.\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': this.props['aria-labelledby'] || imageProps['aria-labelledby'] ? false : 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 { 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;\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 },\n rootHovered: {\n color: theme.palette.themePrimary,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\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 },\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 { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.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, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, on, getWindow, elementContains, } from '../../Utilities';\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._disposables = [];\n _this._onKeyDown = function (ev) {\n switch (ev.which) {\n case KeyCodes.escape:\n if (_this.props.onDismiss) {\n _this.props.onDismiss(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n }\n };\n _this._onFocus = function () {\n _this._containsFocus = true;\n };\n _this._onBlur = 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 occured and focus didn't change\n */\n if (_this._root.current &&\n ev.relatedTarget &&\n !elementContains(_this._root.current, ev.relatedTarget)) {\n _this._containsFocus = false;\n }\n };\n _this._async = new Async(_this);\n _this.state = { needsVerticalScrollBar: false };\n return _this;\n }\n Popup.prototype.UNSAFE_componentWillMount = function () {\n this._originalFocusedElement = getDocument().activeElement;\n };\n Popup.prototype.componentDidMount = function () {\n if (this._root.current) {\n this._disposables.push(on(this._root.current, 'focus', this._onFocus, true), on(this._root.current, 'blur', this._onBlur, true));\n var currentWindow = getWindow(this._root.current);\n if (currentWindow) {\n this._disposables.push(on(currentWindow, 'keydown', this._onKeyDown));\n }\n if (doesElementContainFocus(this._root.current)) {\n this._containsFocus = true;\n }\n }\n this._updateScrollBarAsync();\n };\n Popup.prototype.componentDidUpdate = function () {\n this._updateScrollBarAsync();\n this._async.dispose();\n };\n Popup.prototype.componentWillUnmount = function () {\n var _a;\n this._disposables.forEach(function (dispose) { return dispose(); });\n // eslint-disable-next-line deprecation/deprecation\n if (this.props.shouldRestoreFocus) {\n var _b = this.props.onRestoreFocus, onRestoreFocus = _b === void 0 ? defaultFocusRestorer : _b;\n onRestoreFocus({\n originalElement: this._originalFocusedElement,\n containsFocus: this._containsFocus,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n }\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n delete this._originalFocusedElement;\n };\n Popup.prototype.render = function () {\n var _a = this.props, role = _a.role, className = _a.className, ariaLabel = _a.ariaLabel, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, style = _a.style;\n return (React.createElement(\"div\", __assign({ ref: this._root }, getNativeProps(this.props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: this._onKeyDown, style: __assign({ overflowY: this.state.needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), this.props.children));\n };\n Popup.prototype._updateScrollBarAsync = function () {\n var _this = this;\n this._async.requestAnimationFrame(function () {\n _this._getScrollBar();\n });\n };\n Popup.prototype._getScrollBar = function () {\n // If overflowY is overriden, don't waste time calculating whether the scrollbar is necessary.\n if (this.props.style && this.props.style.overflowY) {\n return;\n }\n var needsVerticalScrollBar = false;\n if (this._root && this._root.current && this._root.current.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 = this._root.current.clientHeight;\n var firstChildHeight = this._root.current.firstElementChild.clientHeight;\n if (rootHeight > 0 && firstChildHeight > rootHeight) {\n needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n }\n }\n if (this.state.needsVerticalScrollBar !== needsVerticalScrollBar) {\n this.setState({\n needsVerticalScrollBar: needsVerticalScrollBar,\n });\n }\n };\n Popup.defaultProps = {\n shouldRestoreFocus: true,\n };\n return Popup;\n}(React.Component));\nexport { Popup };\nfunction defaultFocusRestorer(options) {\n var originalElement = options.originalElement, containsFocus = options.containsFocus;\n if (originalElement && containsFocus && originalElement !== window) {\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 if (originalElement.focus) {\n originalElement.focus();\n }\n }\n}\n//# sourceMappingURL=Popup.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { modalize } from '@uifabric/utilities';\nimport { elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, getDocument, focusAsync, initializeComponentRef, on, } from '../../Utilities';\nvar FocusTrapZone = /** @class */ (function (_super) {\n __extends(FocusTrapZone, _super);\n function FocusTrapZone(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._firstBumper = React.createRef();\n _this._lastBumper = React.createRef();\n _this._hasFocus = false;\n _this._onRootFocus = function (ev) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n _this._hasFocus = true;\n };\n _this._onRootBlur = function (ev) {\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the ComboBox\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = _this._getDocument().activeElement;\n }\n if (!elementContains(_this._root.current, relatedTarget)) {\n _this._hasFocus = false;\n }\n };\n _this._onFirstBumperFocus = function () {\n _this._onBumperFocus(true);\n };\n _this._onLastBumperFocus = function () {\n _this._onBumperFocus(false);\n };\n _this._onBumperFocus = function (isFirstBumper) {\n if (_this.props.disabled) {\n return;\n }\n var currentBumper = (isFirstBumper === _this._hasFocus\n ? _this._lastBumper.current\n : _this._firstBumper.current);\n if (_this._root.current) {\n var nextFocusable = isFirstBumper === _this._hasFocus\n ? getLastTabbable(_this._root.current, currentBumper, true, false)\n : getFirstTabbable(_this._root.current, currentBumper, true, false);\n if (nextFocusable) {\n if (_this._isBumper(nextFocusable)) {\n // This can happen when FTZ contains no tabbable elements.\n // focus will take care of finding a focusable element in FTZ.\n _this.focus();\n }\n else {\n nextFocusable.focus();\n }\n }\n }\n };\n _this._onFocusCapture = function (ev) {\n if (_this.props.onFocusCapture) {\n _this.props.onFocusCapture(ev);\n }\n if (ev.target !== ev.currentTarget && !_this._isBumper(ev.target)) {\n // every time focus changes within the trap zone, remember the focused element so that\n // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n _this._previouslyFocusedElementInTrapZone = ev.target;\n }\n };\n _this._forceFocusInTrap = function (ev) {\n if (_this.props.disabled) {\n return;\n }\n if (FocusTrapZone._focusStack.length && _this === FocusTrapZone._focusStack[FocusTrapZone._focusStack.length - 1]) {\n var focusedElement = _this._getDocument().activeElement;\n if (!elementContains(_this._root.current, focusedElement)) {\n var doc_1 = _this._getDocument();\n if (doc_1 && doc_1.activeElement === doc_1.body) {\n setTimeout(function () {\n if (doc_1 && doc_1.activeElement === doc_1.body) {\n _this.focus();\n _this._hasFocus = true;\n }\n }, 0);\n }\n else {\n _this.focus();\n _this._hasFocus = true; // set focus here since we stop event propagation\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n _this._forceClickInTrap = function (ev) {\n if (_this.props.disabled) {\n return;\n }\n if (FocusTrapZone._focusStack.length && _this === FocusTrapZone._focusStack[FocusTrapZone._focusStack.length - 1]) {\n var clickedElement = ev.target;\n if (clickedElement && !elementContains(_this._root.current, clickedElement)) {\n _this.focus();\n _this._hasFocus = true; // set focus here since we stop event propagation\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n FocusTrapZone.prototype.componentDidMount = function () {\n this._bringFocusIntoZone();\n this._updateEventHandlers(this.props);\n if (!this.props.disabled && this._root.current && this.props.enableAriaHiddenSiblings) {\n this._unmodalize = modalize(this._root.current);\n }\n };\n FocusTrapZone.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {\n var elementToFocusOnDismiss = nextProps.elementToFocusOnDismiss;\n if (elementToFocusOnDismiss && this._previouslyFocusedElementOutsideTrapZone !== elementToFocusOnDismiss) {\n this._previouslyFocusedElementOutsideTrapZone = elementToFocusOnDismiss;\n }\n this._updateEventHandlers(nextProps);\n };\n FocusTrapZone.prototype.componentDidUpdate = function (prevProps) {\n var prevForceFocusInsideTrap = prevProps.forceFocusInsideTrap !== undefined ? prevProps.forceFocusInsideTrap : true;\n var newForceFocusInsideTrap = this.props.forceFocusInsideTrap !== undefined ? this.props.forceFocusInsideTrap : true;\n var prevDisabled = prevProps.disabled !== undefined ? prevProps.disabled : false;\n var newDisabled = this.props.disabled !== undefined ? this.props.disabled : false;\n if ((!prevForceFocusInsideTrap && newForceFocusInsideTrap) || (prevDisabled && !newDisabled)) {\n // Transition from forceFocusInsideTrap / FTZ disabled to enabled.\n // Emulate what happens when a FocusTrapZone gets mounted.\n this._bringFocusIntoZone();\n if (!this._unmodalize && this._root.current && this.props.enableAriaHiddenSiblings) {\n this._unmodalize = modalize(this._root.current);\n }\n }\n else if ((prevForceFocusInsideTrap && !newForceFocusInsideTrap) || (!prevDisabled && newDisabled)) {\n // Transition from forceFocusInsideTrap / FTZ enabled to disabled.\n // Emulate what happens when a FocusTrapZone gets unmounted.\n this._returnFocusToInitiator();\n if (this._unmodalize) {\n this._unmodalize();\n }\n }\n };\n FocusTrapZone.prototype.componentWillUnmount = function () {\n // don't handle return focus unless forceFocusInsideTrap is true or focus is still within FocusTrapZone\n if (!this.props.disabled ||\n this.props.forceFocusInsideTrap ||\n !elementContains(this._root.current, this._getDocument().activeElement)) {\n this._returnFocusToInitiator();\n }\n // Dispose of event handlers so their closures can be garbage-collected\n if (this._disposeClickHandler) {\n this._disposeClickHandler();\n this._disposeClickHandler = undefined;\n }\n if (this._disposeFocusHandler) {\n this._disposeFocusHandler();\n this._disposeFocusHandler = undefined;\n }\n if (this._unmodalize) {\n this._unmodalize();\n }\n // Dispose of element references so the DOM Nodes can be garbage-collected\n delete this._previouslyFocusedElementInTrapZone;\n delete this._previouslyFocusedElementOutsideTrapZone;\n };\n FocusTrapZone.prototype.render = function () {\n var _a = this.props, className = _a.className, _b = _a.disabled, disabled = _b === void 0 ? false : _b, ariaLabelledBy = _a.ariaLabelledBy;\n var divProps = getNativeProps(this.props, divProperties);\n var bumperProps = {\n 'aria-hidden': true,\n style: {\n pointerEvents: 'none',\n position: 'fixed',\n },\n tabIndex: disabled ? -1 : 0,\n 'data-is-visible': true,\n };\n return (React.createElement(\"div\", __assign({}, divProps, { className: className, ref: this._root, \"aria-labelledby\": ariaLabelledBy, onFocusCapture: this._onFocusCapture, onFocus: this._onRootFocus, onBlur: this._onRootBlur }),\n React.createElement(\"div\", __assign({}, bumperProps, { ref: this._firstBumper, onFocus: this._onFirstBumperFocus })),\n this.props.children,\n React.createElement(\"div\", __assign({}, bumperProps, { ref: this._lastBumper, onFocus: this._onLastBumperFocus }))));\n };\n FocusTrapZone.prototype.focus = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, focusPreviouslyFocusedInnerElement = _a.focusPreviouslyFocusedInnerElement, firstFocusableSelector = _a.firstFocusableSelector, firstFocusableTarget = _a.firstFocusableTarget;\n if (focusPreviouslyFocusedInnerElement &&\n this._previouslyFocusedElementInTrapZone &&\n elementContains(this._root.current, this._previouslyFocusedElementInTrapZone)) {\n // focus on the last item that had focus in the zone before we left the zone\n this._focusAsync(this._previouslyFocusedElementInTrapZone);\n return;\n }\n var focusSelector = typeof firstFocusableSelector === 'string'\n ? firstFocusableSelector\n : firstFocusableSelector && firstFocusableSelector();\n var _firstFocusableChild = null;\n if (this._root.current) {\n if (typeof firstFocusableTarget === 'string') {\n _firstFocusableChild = this._root.current.querySelector(firstFocusableTarget);\n }\n else if (firstFocusableTarget) {\n _firstFocusableChild = firstFocusableTarget(this._root.current);\n }\n else if (focusSelector) {\n _firstFocusableChild = this._root.current.querySelector('.' + focusSelector);\n }\n // Fall back to first element if query selector did not match any elements.\n if (!_firstFocusableChild) {\n _firstFocusableChild = getNextElement(this._root.current, this._root.current.firstChild, false, false, false, true);\n }\n }\n if (_firstFocusableChild) {\n this._focusAsync(_firstFocusableChild);\n }\n };\n FocusTrapZone.prototype._focusAsync = function (element) {\n if (!this._isBumper(element)) {\n focusAsync(element);\n }\n };\n FocusTrapZone.prototype._bringFocusIntoZone = function () {\n var _a = this.props, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.disableFirstFocus, disableFirstFocus = _c === void 0 ? false : _c;\n if (disabled) {\n return;\n }\n FocusTrapZone._focusStack.push(this);\n this._previouslyFocusedElementOutsideTrapZone = elementToFocusOnDismiss\n ? elementToFocusOnDismiss\n : this._getDocument().activeElement;\n if (!disableFirstFocus && !elementContains(this._root.current, this._previouslyFocusedElementOutsideTrapZone)) {\n this.focus();\n }\n };\n FocusTrapZone.prototype._returnFocusToInitiator = function () {\n var _this = this;\n var ignoreExternalFocusing = this.props.ignoreExternalFocusing;\n FocusTrapZone._focusStack = FocusTrapZone._focusStack.filter(function (value) {\n return _this !== value;\n });\n var doc = this._getDocument();\n var activeElement = doc.activeElement;\n if (!ignoreExternalFocusing &&\n this._previouslyFocusedElementOutsideTrapZone &&\n typeof this._previouslyFocusedElementOutsideTrapZone.focus === 'function' &&\n (elementContains(this._root.current, activeElement) || activeElement === doc.body)) {\n this._focusAsync(this._previouslyFocusedElementOutsideTrapZone);\n }\n };\n FocusTrapZone.prototype._updateEventHandlers = function (newProps) {\n var _a = newProps.isClickableOutsideFocusTrap, isClickableOutsideFocusTrap = _a === void 0 ? false : _a, _b = newProps.forceFocusInsideTrap, forceFocusInsideTrap = _b === void 0 ? true : _b;\n if (forceFocusInsideTrap && !this._disposeFocusHandler) {\n this._disposeFocusHandler = on(window, 'focus', this._forceFocusInTrap, true);\n }\n else if (!forceFocusInsideTrap && this._disposeFocusHandler) {\n this._disposeFocusHandler();\n this._disposeFocusHandler = undefined;\n }\n if (!isClickableOutsideFocusTrap && !this._disposeClickHandler) {\n this._disposeClickHandler = on(window, 'click', this._forceClickInTrap, true);\n }\n else if (isClickableOutsideFocusTrap && this._disposeClickHandler) {\n this._disposeClickHandler();\n this._disposeClickHandler = undefined;\n }\n };\n FocusTrapZone.prototype._isBumper = function (element) {\n return element === this._firstBumper.current || element === this._lastBumper.current;\n };\n FocusTrapZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusTrapZone._focusStack = [];\n return FocusTrapZone;\n}(React.Component));\nexport { FocusTrapZone };\n//# sourceMappingURL=FocusTrapZone.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar _defaultHostSelector;\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n _layersByHostId[hostId].push(callback);\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n var layerHost = layerHosts_1[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n var layers = _layersByHostId[hostId];\n if (layers) {\n var idx = layers.indexOf(callback);\n if (idx >= 0) {\n layers.splice(idx, 1);\n if (layers.length === 0) {\n delete _layersByHostId[hostId];\n }\n }\n }\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n var layerHost = layerHosts_2[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n var layers = _layerHostsById[hostId];\n return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host.\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n var layerHosts = _layerHostsById[hostId];\n return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n // Insert this at the start of an array to avoid race conditions between mount and unmount.\n // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n // get the new one even if the old one is around briefly.\n layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n var idx = layerHosts.indexOf(layerHost);\n if (idx >= 0) {\n layerHosts.splice(idx, 1);\n }\n if (layerHosts.length === 0) {\n delete _layerHostsById[hostId];\n }\n }\n}\n/**\n * 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 falsey 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, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizer, getNativeProps, divProperties, classNamesFunction, getDocument, memoizeFunction, getRTL, FocusRects, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (theme, 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};\nvar FabricBase = /** @class */ (function (_super) {\n __extends(FabricBase, _super);\n function FabricBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._rootElement = React.createRef();\n _this._removeClassNameFromBody = undefined;\n return _this;\n }\n FabricBase.prototype.render = function () {\n var _a = this.props, _b = _a.as, Root = _b === void 0 ? 'div' : _b, theme = _a.theme, dir = _a.dir;\n var classNames = this._getClassNames();\n var divProps = getNativeProps(this.props, divProperties, ['dir']);\n var _c = getDir(theme, dir), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n var renderedContent = React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: classNames.root, ref: this._rootElement }));\n if (needsTheme) {\n renderedContent = (React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n }\n return (React.createElement(React.Fragment, null,\n renderedContent,\n React.createElement(FocusRects, { rootRef: this._rootElement })));\n };\n FabricBase.prototype.componentDidMount = function () {\n this._addClassNameToBody();\n };\n FabricBase.prototype.componentWillUnmount = function () {\n if (this._removeClassNameFromBody) {\n this._removeClassNameFromBody();\n }\n };\n FabricBase.prototype._getClassNames = function () {\n var _a = this.props, className = _a.className, theme = _a.theme, applyTheme = _a.applyTheme, styles = _a.styles;\n var classNames = getClassNames(styles, {\n theme: theme,\n applyTheme: applyTheme,\n className: className,\n });\n return classNames;\n };\n FabricBase.prototype._addClassNameToBody = function () {\n if (this.props.applyThemeToBody) {\n var classNames_1 = this._getClassNames();\n var currentDoc_1 = getDocument(this._rootElement.current);\n if (currentDoc_1) {\n currentDoc_1.body.classList.add(classNames_1.bodyThemed);\n this._removeClassNameFromBody = function () {\n currentDoc_1.body.classList.remove(classNames_1.bodyThemed);\n };\n }\n }\n };\n return FabricBase;\n}(React.Component));\nexport { FabricBase };\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';\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, customizable, getDocument, setPortalAttribute, setVirtualParent, warnDeprecations, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost } from './Layer.notification';\nvar getClassNames = classNamesFunction();\nvar LayerBase = /** @class */ (function (_super) {\n __extends(LayerBase, _super);\n function LayerBase(props) {\n var _this = _super.call(this, props) || this;\n _this._rootRef = React.createRef();\n _this._createLayerElement = function () {\n var _a, _b;\n var hostId = _this.props.hostId;\n var doc = getDocument(_this._rootRef.current);\n var host = _this._getHost();\n if (!host) {\n return;\n }\n // If one was already existing, remove.\n _this._removeLayerElement();\n // eslint-disable-next-line deprecation/deprecation\n var layerElement = (_b = (_a = host.ownerDocument, (_a !== null && _a !== void 0 ? _a : doc))) === null || _b === void 0 ? void 0 : _b.createElement('div');\n if (layerElement) {\n var classNames = _this._getClassNames();\n layerElement.className = classNames.root;\n setPortalAttribute(layerElement);\n setVirtualParent(layerElement, _this._rootRef.current);\n _this.props.insertFirst ? host.insertBefore(layerElement, host.firstChild) : host.appendChild(layerElement);\n _this.setState({\n hostId: hostId,\n layerElement: layerElement,\n }, function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onLayerDidMount = _a.onLayerDidMount, onLayerMounted = _a.onLayerMounted;\n if (onLayerMounted) {\n onLayerMounted();\n }\n if (onLayerDidMount) {\n onLayerDidMount();\n }\n });\n }\n };\n _this.state = {};\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Layer', props, {\n onLayerMounted: 'onLayerDidMount',\n });\n }\n return _this;\n }\n LayerBase.prototype.componentDidMount = function () {\n var hostId = this.props.hostId;\n this._createLayerElement();\n if (hostId) {\n registerLayer(hostId, this._createLayerElement);\n }\n };\n LayerBase.prototype.render = function () {\n var layerElement = this.state.layerElement;\n var classNames = this._getClassNames();\n var eventBubblingEnabled = this.props.eventBubblingEnabled;\n return (React.createElement(\"span\", { className: \"ms-layer\", ref: this._rootRef }, layerElement &&\n ReactDOM.createPortal(React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && _getFilteredEvents()), { className: classNames.content }), this.props.children), layerElement)));\n };\n LayerBase.prototype.componentDidUpdate = function () {\n if (this.props.hostId !== this.state.hostId) {\n this._createLayerElement();\n }\n };\n LayerBase.prototype.componentWillUnmount = function () {\n var hostId = this.props.hostId;\n this._removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, this._createLayerElement);\n }\n };\n LayerBase.prototype._removeLayerElement = function () {\n var onLayerWillUnmount = this.props.onLayerWillUnmount;\n var layerElement = this.state.layerElement;\n if (layerElement) {\n setVirtualParent(layerElement, null);\n }\n if (onLayerWillUnmount) {\n onLayerWillUnmount();\n }\n if (layerElement && layerElement.parentNode) {\n var parentNode = layerElement.parentNode;\n if (parentNode) {\n parentNode.removeChild(layerElement);\n }\n }\n };\n LayerBase.prototype._getClassNames = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isNotHost: !this.props.hostId,\n });\n return classNames;\n };\n LayerBase.prototype._getHost = function () {\n var _a, _b, _c, _d, _e, _f;\n var hostId = this.props.hostId;\n var doc = getDocument(this._rootRef.current);\n if (hostId) {\n var layerHost = getLayerHost(hostId);\n if (layerHost) {\n return _a = layerHost.rootRef.current, (_a !== null && _a !== void 0 ? _a : null);\n }\n return _c = (_b = doc) === null || _b === void 0 ? void 0 : _b.getElementById(hostId), (_c !== null && _c !== void 0 ? _c : null);\n }\n else {\n var defaultHostSelector = getDefaultTarget();\n return _f = (defaultHostSelector ? (_d = doc) === null || _d === void 0 ? void 0 : _d.querySelector(defaultHostSelector) : (_e = doc) === null || _e === void 0 ? void 0 : _e.body), (_f !== null && _f !== void 0 ? _f : null);\n }\n };\n LayerBase.defaultProps = {\n onLayerDidMount: function () { return undefined; },\n onLayerWillUnmount: function () { return undefined; },\n };\n LayerBase = __decorate([\n customizable('Layer', ['theme', 'hostId'])\n ], LayerBase);\n return LayerBase;\n}(React.Component));\nexport { LayerBase };\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};\nvar _filteredEventProps;\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}\n//# sourceMappingURL=Layer.base.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","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 reveserved 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 */\nfunction _moveEdge(rect, edge, newValue) {\n var difference = _getEdgeValue(rect, edge) - newValue;\n rect = _setEdgeValue(rect, edge, newValue);\n rect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n return rect;\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 * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the original position 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 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 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 return {\n elementRectangle: rect,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\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(element, bounding);\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);\n }\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding);\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 */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding) {\n for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n var direction = outOfBoundsEdges_1[_i];\n elementEstimate.elementRectangle = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\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;\n var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(elementToPosition, target, targetEdge, gap)\n : _alignOppositeEdges(elementToPosition, 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 * Finalizes the element positon 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 callou shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge) {\n var returnValue = {};\n var hostRect = _getRectangleFromElement(hostElement);\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n var elementEdgeString = RectangleEdge[elementEdge];\n var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n if (!doNotFinalizeReturnEdge) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n returnValue[elementEdgeString] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\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 * Get's 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(elementToPosition, 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 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 };\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);\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","var _a;\nimport { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Async, css, divProperties, elementContains, focusFirstChild, getDocument, getNativeProps, getWindow, on, shallowCompare, } from '../../Utilities';\nimport { positionCallout, getMaxHeight, RectangleEdge, positionCard, getBoundsFromTargetWindow, } from '../../utilities/positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\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 getClassNames = classNamesFunction({\n disableCaching: true,\n});\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 = { opacity: 0, filter: 'opacity(0)', pointerEvents: 'none' };\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 CalloutContentBase = /** @class */ (function (_super) {\n __extends(CalloutContentBase, _super);\n function CalloutContentBase(props) {\n var _this = _super.call(this, props) || this;\n _this._hostElement = React.createRef();\n _this._calloutElement = React.createRef();\n _this._hasListeners = false;\n _this._disposables = [];\n _this.dismiss = function (ev) {\n var onDismiss = _this.props.onDismiss;\n if (onDismiss) {\n onDismiss(ev);\n }\n };\n _this._dismissOnScroll = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnScroll = _a.preventDismissOnScroll;\n if (_this.state.positions &&\n ((preventDismissOnEvent && !preventDismissOnEvent(ev)) || (!preventDismissOnEvent && !preventDismissOnScroll))) {\n _this._dismissOnClickOrScroll(ev);\n }\n };\n _this._dismissOnResize = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnResize = _a.preventDismissOnResize;\n if ((preventDismissOnEvent && !preventDismissOnEvent(ev)) || (!preventDismissOnEvent && !preventDismissOnResize)) {\n _this.dismiss(ev);\n }\n };\n _this._dismissOnLostFocus = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnLostFocus = _a.preventDismissOnLostFocus;\n if ((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) {\n _this._dismissOnClickOrScroll(ev);\n }\n };\n _this._setInitialFocus = function () {\n if (_this.props.setInitialFocus &&\n !_this._didSetInitialFocus &&\n _this.state.positions &&\n _this._calloutElement.current) {\n _this._didSetInitialFocus = true;\n _this._async.requestAnimationFrame(function () { return focusFirstChild(_this._calloutElement.current); }, _this._calloutElement.current);\n }\n };\n _this._onComponentDidMount = function () {\n _this._addListeners();\n if (_this.props.onLayerMounted) {\n _this.props.onLayerMounted();\n }\n _this._updateAsyncPosition();\n _this._setHeightOffsetEveryFrame();\n };\n _this._dismissOnTargetWindowBlur = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, preventDismissOnEvent = _a.preventDismissOnEvent, preventDismissOnLostFocus = _a.preventDismissOnLostFocus, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus;\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !_this._targetWindow.document.hasFocus() &&\n ev.relatedTarget === null) {\n _this.dismiss(ev);\n }\n };\n _this._mouseDownOnPopup = function () {\n _this._isMouseDownOnPopup = true;\n };\n _this._mouseUpOnPopup = function () {\n _this._isMouseDownOnPopup = false;\n };\n _this._async = new Async(_this);\n _this._didSetInitialFocus = false;\n _this.state = {\n positions: undefined,\n slideDirectionalClassName: undefined,\n // @TODO it looks like this is not even being used anymore.\n calloutElementRect: undefined,\n heightOffset: 0,\n };\n _this._positionAttempts = 0;\n return _this;\n }\n CalloutContentBase.prototype.componentDidUpdate = function () {\n if (!this.props.hidden) {\n this._setInitialFocus();\n if (!this._hasListeners) {\n this._addListeners();\n }\n this._updateAsyncPosition();\n }\n else {\n if (this._hasListeners) {\n this._removeListeners();\n }\n }\n };\n CalloutContentBase.prototype.shouldComponentUpdate = function (newProps, newState) {\n if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {\n // Do not update when hidden.\n return false;\n }\n return !shallowCompare(this.props, newProps) || !shallowCompare(this.state, newState);\n };\n CalloutContentBase.prototype.UNSAFE_componentWillMount = function () {\n this._setTargetWindowAndElement(this._getTarget());\n };\n CalloutContentBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._disposables.forEach(function (dispose) { return dispose(); });\n };\n CalloutContentBase.prototype.UNSAFE_componentWillUpdate = function (newProps) {\n // If the target element changed, find the new one. If we are tracking target with class name, always find element\n // because we do not know if fabric has rendered a new element and disposed the old element.\n var newTarget = this._getTarget(newProps);\n var oldTarget = this._getTarget();\n if ((newTarget !== oldTarget || typeof newTarget === 'string' || newTarget instanceof String) &&\n !this._blockResetHeight) {\n this._maxHeight = undefined;\n this._setTargetWindowAndElement(newTarget);\n }\n if (newProps.gapSpace !== this.props.gapSpace || this.props.beakWidth !== newProps.beakWidth) {\n this._maxHeight = undefined;\n }\n if (newProps.finalHeight !== this.props.finalHeight) {\n this._setHeightOffsetEveryFrame();\n }\n // Ensure positioning is recalculated when we are about to show a persisted menu.\n if (this._didPositionPropsChange(newProps, this.props)) {\n this._maxHeight = undefined;\n // Target might have been updated while hidden.\n this._setTargetWindowAndElement(newTarget);\n this.setState({\n positions: undefined,\n });\n this._didSetInitialFocus = false;\n this._bounds = undefined;\n }\n this._blockResetHeight = false;\n };\n CalloutContentBase.prototype.componentDidMount = function () {\n if (!this.props.hidden) {\n this._onComponentDidMount();\n }\n };\n CalloutContentBase.prototype.render = function () {\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!this._targetWindow) {\n return null;\n }\n var target = this.props.target;\n var _a = this.props, styles = _a.styles, style = _a.style, ariaLabel = _a.ariaLabel, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className, isBeakVisible = _a.isBeakVisible, children = _a.children, beakWidth = _a.beakWidth, calloutWidth = _a.calloutWidth, calloutMaxWidth = _a.calloutMaxWidth, calloutMinWidth = _a.calloutMinWidth, finalHeight = _a.finalHeight, _b = _a.hideOverflow, hideOverflow = _b === void 0 ? !!finalHeight : _b, backgroundColor = _a.backgroundColor, calloutMaxHeight = _a.calloutMaxHeight, onScroll = _a.onScroll, \n // eslint-disable-next-line deprecation/deprecation\n _c = _a.shouldRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = _c === void 0 ? true : _c, popupProps = _a.popupProps;\n target = this._getTarget();\n var positions = this.state.positions;\n var getContentMaxHeight = this._getMaxHeight()\n ? this._getMaxHeight() + this.state.heightOffset\n : undefined;\n var contentMaxHeight = calloutMaxHeight && getContentMaxHeight && calloutMaxHeight < getContentMaxHeight\n ? calloutMaxHeight\n : getContentMaxHeight;\n var overflowYHidden = hideOverflow;\n var beakVisible = isBeakVisible && !!target;\n this._classNames = getClassNames(styles, {\n theme: this.props.theme,\n className: className,\n overflowYHidden: overflowYHidden,\n calloutWidth: calloutWidth,\n positions: positions,\n beakWidth: beakWidth,\n backgroundColor: backgroundColor,\n calloutMinWidth: calloutMinWidth,\n calloutMaxWidth: calloutMaxWidth,\n });\n var overflowStyle = __assign(__assign(__assign({}, style), { maxHeight: contentMaxHeight }), (overflowYHidden && { overflowY: 'hidden' }));\n var visibilityStyle = this.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 var content = (React.createElement(\"div\", { ref: this._hostElement, className: this._classNames.container, style: visibilityStyle },\n React.createElement(\"div\", __assign({}, getNativeProps(this.props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(this._classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? positions.elementPosition : 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: this._calloutElement }),\n beakVisible && React.createElement(\"div\", { className: this._classNames.beak, style: this._getBeakPosition() }),\n beakVisible && React.createElement(\"div\", { className: this._classNames.beakCurtain }),\n React.createElement(Popup, __assign({}, getNativeProps(this.props, ARIA_ROLE_ATTRIBUTES), { ariaLabel: ariaLabel, onRestoreFocus: this.props.onRestoreFocus, ariaDescribedBy: ariaDescribedBy, ariaLabelledBy: ariaLabelledBy, className: this._classNames.calloutMain, onDismiss: this.dismiss, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle, onMouseDown: this._mouseDownOnPopup, onMouseUp: this._mouseUpOnPopup }, popupProps), children))));\n return content;\n };\n CalloutContentBase.prototype._dismissOnClickOrScroll = function (ev) {\n var target = ev.target;\n var isEventTargetOutsideCallout = this._hostElement.current && !elementContains(this._hostElement.current, target);\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && this._isMouseDownOnPopup) {\n this._isMouseDownOnPopup = false;\n return;\n }\n if ((!this._target && isEventTargetOutsideCallout) ||\n (ev.target !== this._targetWindow &&\n isEventTargetOutsideCallout &&\n (this._target.stopPropagation ||\n !this._target ||\n this.props.dismissOnTargetClick ||\n (target !== this._target && !elementContains(this._target, target))))) {\n this.dismiss(ev);\n }\n };\n CalloutContentBase.prototype._addListeners = function () {\n var _this = this;\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 this._async.setTimeout(function () {\n _this._disposables.push(on(_this._targetWindow, 'scroll', _this._dismissOnScroll, true), on(_this._targetWindow, 'resize', _this._dismissOnResize, true), on(_this._targetWindow.document.documentElement, 'focus', _this._dismissOnLostFocus, true), on(_this._targetWindow.document.documentElement, 'click', _this._dismissOnLostFocus, true), on(_this._targetWindow, 'blur', _this._dismissOnTargetWindowBlur, true));\n _this._hasListeners = true;\n }, 0);\n };\n CalloutContentBase.prototype._removeListeners = function () {\n this._disposables.forEach(function (dispose) { return dispose(); });\n this._disposables = [];\n this._hasListeners = false;\n };\n CalloutContentBase.prototype._updateAsyncPosition = function () {\n var _this = this;\n this._async.requestAnimationFrame(function () { return _this._updatePosition(); }, this._calloutElement.current);\n };\n CalloutContentBase.prototype._getBeakPosition = function () {\n var positions = this.state.positions;\n var beakPostionStyle = __assign({}, (positions && positions.beakPosition ? positions.beakPosition.elementPosition : null));\n if (!beakPostionStyle.top && !beakPostionStyle.bottom && !beakPostionStyle.left && !beakPostionStyle.right) {\n beakPostionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPostionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n return beakPostionStyle;\n };\n CalloutContentBase.prototype._updatePosition = function () {\n // Try to update the target, page might have changed\n this._setTargetWindowAndElement(this._getTarget());\n var positions = this.state.positions;\n var hostElement = this._hostElement.current;\n var calloutElement = this._calloutElement.current;\n // If we expect a target element to position against, we need to wait until `this._target` is resolved. Otherwise\n // we can try to position.\n var expectsTarget = !!this.props.target;\n if (hostElement && calloutElement && (!expectsTarget || this._target)) {\n var currentProps = __assign({}, this.props);\n currentProps.bounds = this._getBounds();\n currentProps.target = this._target;\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 = this.props.finalHeight\n ? positionCard(currentProps, hostElement, calloutElement, positions)\n : positionCallout(currentProps, hostElement, calloutElement, positions);\n // Set the new position only when the positions are not exists or one of the new callout positions are different.\n // The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions) ||\n (positions && newPositions && !this._arePositionsEqual(positions, newPositions) && this._positionAttempts < 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 this._positionAttempts++;\n this.setState({\n positions: newPositions,\n });\n }\n else if (this._positionAttempts > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n this._positionAttempts = 0;\n if (this.props.onPositioned) {\n this.props.onPositioned(this.state.positions);\n }\n }\n }\n };\n CalloutContentBase.prototype._getBounds = function () {\n if (!this._bounds) {\n var bounds = this.props.bounds;\n var currentBounds = typeof bounds === 'function' ? bounds(this.props.target, this._targetWindow) : bounds;\n if (!currentBounds) {\n currentBounds = getBoundsFromTargetWindow(this._target, this._targetWindow);\n currentBounds = {\n top: currentBounds.top + this.props.minPagePadding,\n left: currentBounds.left + this.props.minPagePadding,\n right: currentBounds.right - this.props.minPagePadding,\n bottom: currentBounds.bottom - this.props.minPagePadding,\n width: currentBounds.width - this.props.minPagePadding * 2,\n height: currentBounds.height - this.props.minPagePadding * 2,\n };\n }\n this._bounds = currentBounds;\n }\n return this._bounds;\n };\n // Max height should remain as synchronous as possible, which is why it is not done using set state.\n // It needs to be synchronous since it will impact the ultimate position of the callout.\n CalloutContentBase.prototype._getMaxHeight = function () {\n var _this = this;\n if (!this._maxHeight) {\n if (this.props.directionalHintFixed && this._target) {\n var beakWidth = this.props.isBeakVisible ? this.props.beakWidth : 0;\n var gapSpace = this.props.gapSpace ? this.props.gapSpace : 0;\n // Since the callout cannot measure it's border size it must be taken into account here. Otherwise it will\n // overlap with the target.\n var totalGap_1 = gapSpace + beakWidth;\n this._async.requestAnimationFrame(function () {\n if (_this._target) {\n _this._maxHeight = getMaxHeight(_this._target, _this.props.directionalHint, totalGap_1, _this._getBounds(), _this.props.coverTarget);\n _this._blockResetHeight = true;\n _this.forceUpdate();\n }\n }, this._target);\n }\n else {\n this._maxHeight = this._getBounds().height;\n }\n }\n return this._maxHeight;\n };\n CalloutContentBase.prototype._arePositionsEqual = function (positions, newPosition) {\n return (this._comparePositions(positions.elementPosition, newPosition.elementPosition) &&\n this._comparePositions(positions.beakPosition.elementPosition, newPosition.beakPosition.elementPosition));\n };\n CalloutContentBase.prototype._comparePositions = function (oldPositions, newPositions) {\n for (var key in newPositions) {\n if (newPositions.hasOwnProperty(key)) {\n var oldPositionEdge = oldPositions[key];\n var newPositionEdge = newPositions[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 };\n CalloutContentBase.prototype._setTargetWindowAndElement = function (target) {\n var currentElement = this._calloutElement.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n this._target = currentDoc ? currentDoc.querySelector(target) : null;\n this._targetWindow = getWindow(currentElement);\n // Cast to any prevents error about stopPropagation always existing\n }\n else if (target.stopPropagation) {\n this._targetWindow = getWindow(target.target);\n this._target = target;\n // Same reason here\n }\n else if (target.getBoundingClientRect) {\n var targetElement = target;\n this._targetWindow = getWindow(targetElement);\n this._target = targetElement;\n }\n else if (target.current !== undefined) {\n this._target = target.current;\n this._targetWindow = getWindow(this._target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n this._targetWindow = getWindow(currentElement);\n this._target = target;\n }\n }\n else {\n this._targetWindow = getWindow(currentElement);\n }\n };\n CalloutContentBase.prototype._setHeightOffsetEveryFrame = function () {\n var _this = this;\n if (this._calloutElement.current && this.props.finalHeight) {\n this._setHeightOffsetTimer = this._async.requestAnimationFrame(function () {\n var calloutMainElem = _this._calloutElement.current && _this._calloutElement.current.lastChild;\n if (!calloutMainElem) {\n return;\n }\n var cardScrollHeight = calloutMainElem.scrollHeight;\n var cardCurrHeight = calloutMainElem.offsetHeight;\n var scrollDiff = cardScrollHeight - cardCurrHeight;\n _this.setState({\n heightOffset: _this.state.heightOffset + scrollDiff,\n });\n if (calloutMainElem.offsetHeight < _this.props.finalHeight) {\n _this._setHeightOffsetEveryFrame();\n }\n else {\n _this._async.cancelAnimationFrame(_this._setHeightOffsetTimer, _this._calloutElement.current);\n }\n }, this._calloutElement.current);\n }\n };\n // Whether or not the current positions should be reset\n CalloutContentBase.prototype._didPositionPropsChange = function (newProps, oldProps) {\n return ((!newProps.hidden && newProps.hidden !== oldProps.hidden) ||\n newProps.directionalHint !== oldProps.directionalHint ||\n newProps.target !== oldProps.target);\n };\n CalloutContentBase.prototype._getTarget = function (props) {\n if (props === void 0) { props = this.props; }\n var target = props.target;\n return target;\n };\n CalloutContentBase.defaultProps = {\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 };\n return CalloutContentBase;\n}(React.Component));\nexport { CalloutContentBase };\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames } 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;\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 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 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, { scope: 'CalloutContent' });\n//# sourceMappingURL=CalloutContent.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nvar Callout = /** @class */ (function (_super) {\n __extends(Callout, _super);\n function Callout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Callout.prototype.render = function () {\n var _a = this.props, layerProps = _a.layerProps, rest = __rest(_a, [\"layerProps\"]);\n var content = React.createElement(CalloutContent, __assign({}, rest));\n return this.props.doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n };\n return Callout;\n}(React.Component));\nexport { Callout };\n//# sourceMappingURL=Callout.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Layer } from '../../Layer';\nimport { Overlay } from '../../Overlay';\nimport { Popup } from '../../Popup';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, divProperties, elementContains, getId, getNativeProps, getRTL, css, warnDeprecations, Async, EventGroup, initializeComponentRef, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { PanelType } from './Panel.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Panel';\nvar PanelVisibilityState;\n(function (PanelVisibilityState) {\n PanelVisibilityState[PanelVisibilityState[\"closed\"] = 0] = \"closed\";\n PanelVisibilityState[PanelVisibilityState[\"animatingOpen\"] = 1] = \"animatingOpen\";\n PanelVisibilityState[PanelVisibilityState[\"open\"] = 2] = \"open\";\n PanelVisibilityState[PanelVisibilityState[\"animatingClosed\"] = 3] = \"animatingClosed\";\n})(PanelVisibilityState || (PanelVisibilityState = {}));\nvar PanelBase = /** @class */ (function (_super) {\n __extends(PanelBase, _super);\n function PanelBase(props) {\n var _this = _super.call(this, props) || this;\n _this._panel = React.createRef();\n _this._animationCallback = null;\n _this._hasCustomNavigation = !!(_this.props.onRenderNavigation || _this.props.onRenderNavigationContent);\n _this.dismiss = function (ev) {\n if (_this.props.onDismiss && _this.isActive) {\n _this.props.onDismiss(ev);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n _this.close();\n }\n };\n // Allow the user to scroll within the panel but not on the body\n _this._allowScrollOnPanel = function (elt) {\n if (elt) {\n if (_this._allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, _this._events);\n }\n else {\n allowScrollOnElement(elt, _this._events);\n }\n }\n else {\n _this._events.off(_this._scrollableContent);\n }\n _this._scrollableContent = elt;\n };\n _this._onRenderNavigation = function (props) {\n if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {\n return null;\n }\n var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;\n return (React.createElement(\"div\", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent)));\n };\n _this._onRenderNavigationContent = function (props) {\n var _a;\n var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton, _b = props.onRenderHeader, onRenderHeader = _b === void 0 ? _this._onRenderHeader : _b;\n if (hasCloseButton) {\n var iconButtonStyles = (_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.closeButton();\n return (React.createElement(React.Fragment, null,\n !_this._hasCustomNavigation && onRenderHeader(_this.props, _this._onRenderHeader, _this._headerTextId),\n React.createElement(IconButton, { styles: iconButtonStyles, \n // eslint-disable-next-line deprecation/deprecation\n className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, \"data-is-visible\": true, iconProps: { iconName: 'Cancel' } })));\n }\n return null;\n };\n _this._onRenderHeader = function (props, defaultRender, headerTextId) {\n var headerText = props.headerText, _a = props.headerTextProps, headerTextProps = _a === void 0 ? {} : _a;\n if (headerText) {\n return (React.createElement(\"div\", { className: _this._classNames.header },\n React.createElement(\"div\", __assign({ id: headerTextId, role: \"heading\", \"aria-level\": 1 }, headerTextProps, { className: css(_this._classNames.headerText, headerTextProps.className) }), headerText)));\n }\n return null;\n };\n _this._onRenderBody = function (props) {\n return React.createElement(\"div\", { className: _this._classNames.content }, props.children);\n };\n _this._onRenderFooter = function (props) {\n var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;\n if (onRenderFooterContent) {\n return (React.createElement(\"div\", { className: _this._classNames.footer },\n React.createElement(\"div\", { className: _this._classNames.footerInner }, onRenderFooterContent())));\n }\n return null;\n };\n _this._animateTo = function (newVisibilityState) {\n if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpen) {\n _this.props.onOpen();\n }\n _this._animationCallback = _this._async.setTimeout(function () {\n _this.setState({ visibility: newVisibilityState });\n _this._onTransitionComplete();\n }, 200);\n };\n _this._clearExistingAnimationTimer = function () {\n if (_this._animationCallback !== null) {\n _this._async.clearTimeout(_this._animationCallback);\n }\n };\n _this._onPanelClick = function (ev) {\n _this.dismiss(ev);\n };\n _this._onTransitionComplete = function () {\n _this._updateFooterPosition();\n if (_this.state.visibility === PanelVisibilityState.open && _this.props.onOpened) {\n _this.props.onOpened();\n }\n if (_this.state.visibility === PanelVisibilityState.closed && _this.props.onDismissed) {\n _this.props.onDismissed();\n }\n };\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n ignoreExternalFocusing: 'focusTrapZoneProps',\n forceFocusInsideTrap: 'focusTrapZoneProps',\n firstFocusableSelector: 'focusTrapZoneProps',\n });\n _this.state = {\n isFooterSticky: false,\n // intentionally ignore props so animation takes place during componentDidMount\n visibility: PanelVisibilityState.closed,\n id: getId('Panel'),\n };\n return _this;\n }\n PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {\n if (nextProps.isOpen === undefined) {\n return null; // no state update\n }\n if (nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.closed ||\n prevState.visibility === PanelVisibilityState.animatingClosed)) {\n return { visibility: PanelVisibilityState.animatingOpen };\n }\n if (!nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.open ||\n prevState.visibility === PanelVisibilityState.animatingOpen)) {\n return { visibility: PanelVisibilityState.animatingClosed };\n }\n return null;\n };\n PanelBase.prototype.componentDidMount = function () {\n this._events.on(window, 'resize', this._updateFooterPosition);\n if (this._shouldListenForOuterClick(this.props)) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n if (this.props.isOpen) {\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n }\n };\n PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {\n var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);\n var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);\n if (this.state.visibility !== previousState.visibility) {\n this._clearExistingAnimationTimer();\n if (this.state.visibility === PanelVisibilityState.animatingOpen) {\n this._animateTo(PanelVisibilityState.open);\n }\n else if (this.state.visibility === PanelVisibilityState.animatingClosed) {\n this._animateTo(PanelVisibilityState.closed);\n }\n }\n if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {\n this._events.off(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n };\n PanelBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n PanelBase.prototype.render = function () {\n var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, \n /* eslint-disable deprecation/deprecation */\n firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, \n /* eslint-enable deprecation/deprecation */\n isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, popupProps = _a.popupProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;\n var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;\n var isLeft = type === PanelType.smallFixedNear || type === PanelType.customNear ? true : false;\n var isRTL = getRTL(theme);\n var isOnRightSide = isRTL ? isLeft : !isLeft;\n var customWidthStyles = type === PanelType.custom || type === PanelType.customNear ? { width: customWidth } : {};\n var nativeProps = getNativeProps(this.props, divProperties);\n var isOpen = this.isActive;\n var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;\n this._headerTextId = headerText && id + '-headerText';\n if (!isOpen && !isAnimating && !isHiddenOnDismiss) {\n return null;\n }\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,\n hasCloseButton: hasCloseButton,\n headerClassName: headerClassName,\n isAnimating: isAnimating,\n isFooterSticky: isFooterSticky,\n isFooterAtBottom: isFooterAtBottom,\n isOnRightSide: isOnRightSide,\n isOpen: isOpen,\n isHiddenOnDismiss: isHiddenOnDismiss,\n type: type,\n hasCustomNavigation: this._hasCustomNavigation,\n });\n var _k = this, _classNames = _k._classNames, _allowTouchBodyScroll = _k._allowTouchBodyScroll;\n var overlay;\n if (isBlocking && isOpen) {\n overlay = (React.createElement(Overlay, __assign({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined, allowTouchBodyScroll: _allowTouchBodyScroll }, overlayProps)));\n }\n return (React.createElement(Layer, __assign({}, layerProps),\n React.createElement(Popup, __assign({ role: \"dialog\", \"aria-modal\": \"true\", ariaLabelledBy: this._headerTextId ? this._headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel }, popupProps),\n React.createElement(\"div\", __assign({ \"aria-hidden\": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),\n overlay,\n React.createElement(FocusTrapZone, __assign({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),\n React.createElement(\"div\", { className: _classNames.commands, \"data-is-visible\": true }, onRenderNavigation(this.props, this._onRenderNavigation)),\n React.createElement(\"div\", { className: _classNames.contentInner },\n (this._hasCustomNavigation || !hasCloseButton) &&\n onRenderHeader(this.props, this._onRenderHeader, this._headerTextId),\n React.createElement(\"div\", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, \"data-is-scrollable\": true }, onRenderBody(this.props, this._onRenderBody)),\n onRenderFooter(this.props, this._onRenderFooter)))))));\n };\n PanelBase.prototype.open = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n };\n PanelBase.prototype.close = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (!this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingClosed });\n };\n Object.defineProperty(PanelBase.prototype, \"isActive\", {\n /** isActive is true when panel is open or opening. */\n get: function () {\n return (this.state.visibility === PanelVisibilityState.open ||\n this.state.visibility === PanelVisibilityState.animatingOpen);\n },\n enumerable: true,\n configurable: true\n });\n PanelBase.prototype._shouldListenForOuterClick = function (props) {\n return !!props.isBlocking && !!props.isOpen;\n };\n PanelBase.prototype._updateFooterPosition = function () {\n var scrollableContent = this._scrollableContent;\n if (scrollableContent) {\n var height = scrollableContent.clientHeight;\n var innerHeight_1 = scrollableContent.scrollHeight;\n this.setState({\n isFooterSticky: height < innerHeight_1 ? true : false,\n });\n }\n };\n PanelBase.prototype._dismissOnOuterClick = function (ev) {\n var panel = this._panel.current;\n if (this.isActive && panel && !ev.defaultPrevented) {\n if (!elementContains(panel, ev.target)) {\n if (this.props.onOuterClick) {\n this.props.onOuterClick(ev);\n }\n else {\n this.dismiss(ev);\n }\n }\n }\n };\n PanelBase.defaultProps = {\n isHiddenOnDismiss: false,\n isOpen: undefined,\n isBlocking: true,\n hasCloseButton: true,\n type: PanelType.smallFixedFar,\n };\n return PanelBase;\n}(React.Component));\nexport { PanelBase };\n//# sourceMappingURL=Panel.base.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n __extends(OverlayBase, _super);\n function OverlayBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n OverlayBase.prototype.componentDidMount = function () {\n !this._allowTouchBodyScroll && disableBodyScroll();\n };\n OverlayBase.prototype.componentWillUnmount = function () {\n !this._allowTouchBodyScroll && enableBodyScroll();\n };\n OverlayBase.prototype.render = function () {\n var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n var divProps = getNativeProps(this.props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isDark: isDark,\n });\n return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n };\n return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Overlay',\n rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n backgroundColor: palette.whiteTranslucent40,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n position: 'absolute',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n opacity: 0,\n },\n _a),\n },\n isNone && {\n visibility: 'hidden',\n },\n isDark && [\n classNames.rootDark,\n {\n backgroundColor: palette.blackTranslucent40,\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","var _a, _b, _c, _d, _e;\nimport { __assign } from \"tslib\";\nimport { PanelType } from './Panel.types';\nimport { AnimationClassNames, AnimationVariables, getGlobalClassNames, HighContrastSelector, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinUhfMobile, IconFontSizes, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Panel',\n main: 'ms-Panel-main',\n commands: 'ms-Panel-commands',\n contentInner: 'ms-Panel-contentInner',\n scrollableContent: 'ms-Panel-scrollableContent',\n navigation: 'ms-Panel-navigation',\n closeButton: 'ms-Panel-closeButton ms-PanelAction-close',\n header: 'ms-Panel-header',\n headerText: 'ms-Panel-headerText',\n content: 'ms-Panel-content',\n footer: 'ms-Panel-footer',\n footerInner: 'ms-Panel-footerInner',\n isOpen: 'is-open',\n hasCloseButton: 'ms-Panel--hasCloseButton',\n smallFluid: 'ms-Panel--smFluid',\n smallFixedNear: 'ms-Panel--smLeft',\n smallFixedFar: 'ms-Panel--sm',\n medium: 'ms-Panel--md',\n large: 'ms-Panel--lg',\n largeFixed: 'ms-Panel--fixed',\n extraLarge: 'ms-Panel--xl',\n custom: 'ms-Panel--custom',\n customNear: 'ms-Panel--customLeft',\n};\nvar panelWidth = {\n full: '100%',\n auto: 'auto',\n xs: 272,\n sm: 340,\n md1: 592,\n md2: 644,\n lg: 940,\n};\nvar panelMargin = {\n auto: 'auto',\n none: 0,\n md: 48,\n lg: 428,\n xl: 176,\n};\n// Following consts are used below in `getPanelBreakpoints()` function to provide\n// necessary fallbacks for different types of Panel in different breakpoints.\nvar smallPanelSelectors = (_a = {},\n _a[\"@media (min-width: \" + ScreenWidthMinMedium + \"px)\"] = {\n width: panelWidth.sm,\n },\n _a);\nvar mediumPanelSelectors = (_b = {},\n _b[\"@media (min-width: \" + ScreenWidthMinLarge + \"px)\"] = {\n width: panelWidth.md1,\n },\n _b[\"@media (min-width: \" + ScreenWidthMinXLarge + \"px)\"] = {\n width: panelWidth.md2,\n },\n _b);\nvar largePanelSelectors = (_c = {},\n _c[\"@media (min-width: \" + ScreenWidthMinUhfMobile + \"px)\"] = {\n left: panelMargin.md,\n width: panelWidth.auto,\n },\n _c[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.lg,\n },\n _c);\nvar largeFixedPanelSelectors = (_d = {},\n _d[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.auto,\n width: panelWidth.lg,\n },\n _d);\nvar extraLargePanelSelectors = (_e = {},\n _e[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.xl,\n },\n _e);\n// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.\n// This is done in the effort to follow design redlines.\nvar getPanelBreakpoints = function (type) {\n var selectors;\n // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`\n // are not checked in here because they render the same in all the breakpoints\n // and have the checks done separately in the `getStyles` function below.\n switch (type) {\n case PanelType.smallFixedFar:\n selectors = __assign({}, smallPanelSelectors);\n break;\n case PanelType.medium:\n selectors = __assign(__assign({}, smallPanelSelectors), mediumPanelSelectors);\n break;\n case PanelType.large:\n selectors = __assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors);\n break;\n case PanelType.largeFixed:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), largeFixedPanelSelectors);\n break;\n case PanelType.extraLarge:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), extraLargePanelSelectors);\n break;\n default:\n break;\n }\n return selectors;\n};\nvar commandBarHeight = '44px';\nvar sharedPaddingStyles = {\n paddingLeft: '24px',\n paddingRight: '24px',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, hasCustomNavigation = props.hasCustomNavigation, theme = props.theme, _b = props.type, type = _b === void 0 ? PanelType.smallFixedFar : _b;\n var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isCustomPanel = type === PanelType.custom || type === PanelType.customNear;\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isOpen && classNames.isOpen,\n hasCloseButton && classNames.hasCloseButton,\n {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n isCustomPanel && isOnRightSide && classNames.custom,\n isCustomPanel && !isOnRightSide && classNames.customNear,\n className,\n ],\n overlay: [\n {\n pointerEvents: 'auto',\n cursor: 'pointer',\n },\n isOpen && isAnimating && AnimationClassNames.fadeIn100,\n !isOpen && isAnimating && AnimationClassNames.fadeOut100,\n ],\n hiddenPanel: [\n !isOpen &&\n !isAnimating &&\n isHiddenOnDismiss && {\n visibility: 'hidden',\n },\n ],\n main: [\n classNames.main,\n {\n backgroundColor: semanticColors.bodyBackground,\n boxShadow: effects.elevation64,\n pointerEvents: 'auto',\n position: 'absolute',\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch',\n bottom: 0,\n top: 0,\n // left, right, width are overridden depending on the type of the Panel and the screen breakpoint.\n left: panelMargin.auto,\n right: panelMargin.none,\n width: panelWidth.full,\n selectors: __assign((_a = {}, _a[HighContrastSelector] = {\n borderLeft: \"3px solid \" + semanticColors.variantBorder,\n borderRight: \"3px solid \" + semanticColors.variantBorder,\n }, _a), getPanelBreakpoints(type)),\n },\n type === PanelType.smallFluid && {\n left: panelMargin.none,\n },\n type === PanelType.smallFixedNear && {\n left: panelMargin.none,\n right: panelMargin.auto,\n width: panelWidth.xs,\n },\n type === PanelType.customNear && {\n right: 'auto',\n left: 0,\n },\n isCustomPanel && {\n maxWidth: '100vw',\n },\n isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideRightIn40,\n isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideLeftIn40,\n !isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideLeftOut40,\n !isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideRightOut40,\n focusTrapZoneClassName,\n ],\n commands: [\n classNames.commands,\n {\n marginTop: 18,\n },\n hasCustomNavigation && {\n marginTop: 'inherit',\n },\n ],\n navigation: [\n classNames.navigation,\n {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n hasCustomNavigation && {\n height: commandBarHeight,\n },\n ],\n contentInner: [\n classNames.contentInner,\n {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n overflowY: 'hidden',\n },\n ],\n header: [\n classNames.header,\n sharedPaddingStyles,\n {\n alignSelf: 'flex-start',\n },\n hasCloseButton &&\n !hasCustomNavigation && {\n flexGrow: 1,\n },\n hasCustomNavigation && {\n // Ensure that title doesn't shrink if screen is too small\n flexShrink: 0,\n },\n ],\n headerText: [\n classNames.headerText,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n lineHeight: '27px',\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n wordBreak: 'break-word',\n hyphens: 'auto',\n },\n headerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n },\n isFooterAtBottom && {\n flexGrow: 1,\n },\n ],\n content: [\n classNames.content,\n sharedPaddingStyles,\n {\n paddingBottom: 20,\n },\n ],\n footer: [\n classNames.footer,\n {\n // Ensure that footer doesn't shrink if screen is too small\n flexShrink: 0,\n borderTop: '1px solid transparent',\n transition: \"opacity \" + AnimationVariables.durationValue3 + \" \" + AnimationVariables.easeFunction2,\n },\n isFooterSticky && {\n background: semanticColors.bodyBackground,\n borderTopColor: semanticColors.variantBorder,\n },\n ],\n footerInner: [\n classNames.footerInner,\n sharedPaddingStyles,\n {\n paddingBottom: 16,\n paddingTop: 16,\n },\n ],\n subComponentStyles: {\n closeButton: {\n root: [\n classNames.closeButton,\n {\n marginRight: 14,\n color: theme.palette.neutralSecondary,\n fontSize: IconFontSizes.large,\n },\n hasCustomNavigation && {\n marginRight: 0,\n height: 'auto',\n width: '44px',\n },\n ],\n rootHovered: {\n color: theme.palette.neutralPrimary,\n },\n },\n },\n };\n};\n//# sourceMappingURL=Panel.styles.js.map","import { styled } from '../../Utilities';\nimport { PanelBase } from './Panel.base';\nimport { getStyles } from './Panel.styles';\n/**\n * Panel description\n */\nexport var Panel = styled(PanelBase, getStyles, undefined, {\n scope: 'Panel',\n});\n//# sourceMappingURL=Panel.js.map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetIdCounter = exports.stateChangeTypes = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _downshift = require('downshift');\n\nvar _downshift2 = _interopRequireDefault(_downshift);\n\nvar _ListItem = require('@material-ui/core/ListItem');\n\nvar _ListItem2 = _interopRequireDefault(_ListItem);\n\nvar _ListItemText = require('@material-ui/core/ListItemText');\n\nvar _ListItemText2 = _interopRequireDefault(_ListItemText);\n\nvar _ListItemIcon = require('@material-ui/core/ListItemIcon');\n\nvar _ListItemIcon2 = _interopRequireDefault(_ListItemIcon);\n\nvar _ListItemAvatar = require('@material-ui/core/ListItemAvatar');\n\nvar _ListItemAvatar2 = _interopRequireDefault(_ListItemAvatar);\n\nvar _Input = require('./Input');\n\nvar _Input2 = _interopRequireDefault(_Input);\n\nvar _Menu = require('./Menu');\n\nvar _Menu2 = _interopRequireDefault(_Menu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MuiDownshift = function (_Component) {\n _inherits(MuiDownshift, _Component);\n\n function MuiDownshift() {\n _classCallCheck(this, MuiDownshift);\n\n return _possibleConstructorReturn(this, (MuiDownshift.__proto__ || Object.getPrototypeOf(MuiDownshift)).apply(this, arguments));\n }\n\n _createClass(MuiDownshift, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n items = _props.items,\n itemToString = _props.itemToString,\n getRootProps = _props.getRootProps,\n getInputProps = _props.getInputProps,\n focusOnClear = _props.focusOnClear,\n loading = _props.loading,\n variant = _props.variant,\n getListItem = _props.getListItem,\n getListItemKey = _props.getListItemKey,\n showEmpty = _props.showEmpty,\n includeFooter = _props.includeFooter,\n getInfiniteLoaderProps = _props.getInfiniteLoaderProps,\n getVirtualListProps = _props.getVirtualListProps,\n menuHeight = _props.menuHeight,\n menuItemCount = _props.menuItemCount,\n props = _objectWithoutProperties(_props, ['items', 'itemToString', 'getRootProps', 'getInputProps', 'focusOnClear', 'loading', 'variant', 'getListItem', 'getListItemKey', 'showEmpty', 'includeFooter', 'getInfiniteLoaderProps', 'getVirtualListProps', 'menuHeight', 'menuItemCount']);\n\n return _react2.default.createElement(\n _downshift2.default,\n _extends({\n itemCount: (items ? items.length : 0) + (includeFooter ? 1 : 0) // Needed for windowing\n , itemToString: itemToString\n }, props),\n function (downshiftProps) {\n return _react2.default.createElement(\n 'div',\n getRootProps && getRootProps(),\n _react2.default.createElement(_Input2.default, {\n getInputProps: getInputProps,\n focusOnClear: focusOnClear,\n loading: loading,\n downshiftProps: downshiftProps,\n inputRef: function inputRef(node) {\n _this2.inputRef = node;\n if (_this2.props.inputRef && typeof _this2.props.inputRef === 'function') {\n _this2.props.inputRef(node);\n }\n },\n variant: variant\n }),\n _react2.default.createElement(_Menu2.default, {\n items: items,\n getListItem: getListItem,\n getListItemKey: getListItemKey,\n showEmpty: showEmpty,\n includeFooter: includeFooter,\n getInfiniteLoaderProps: getInfiniteLoaderProps,\n getVirtualListProps: getVirtualListProps,\n menuItemCount: menuItemCount,\n menuHeight: menuHeight,\n downshiftProps: downshiftProps,\n inputRef: _this2.inputRef\n })\n );\n }\n );\n }\n }]);\n\n return MuiDownshift;\n}(_react.Component);\n\nMuiDownshift.defaultProps = {\n itemToString: function itemToString(item) {\n return item ? item.label : '';\n },\n getListItem: function getListItem(_ref) {\n var getItemProps = _ref.getItemProps,\n item = _ref.item,\n index = _ref.index;\n\n return item ? _react2.default.createElement(\n _ListItem2.default,\n _extends({ button: true }, getItemProps()),\n item.icon && _react2.default.createElement(\n _ListItemIcon2.default,\n null,\n item.icon\n ),\n item.avatar && _react2.default.createElement(\n _ListItemAvatar2.default,\n null,\n item.avatar\n ),\n _react2.default.createElement(_ListItemText2.default, { primary: item.primary || item.label, secondary: item.secondary })\n ) : index === 0 ? _react2.default.createElement(\n _ListItem2.default,\n { button: true, disabled: true },\n _react2.default.createElement(_ListItemText2.default, { primary: _react2.default.createElement(\n 'span',\n { style: { fontStyle: 'italic' } },\n 'No items found'\n ) })\n ) : null; // TODO: should we handle this or require user to implement `getListItem` at this point (`includeFooter` or an array of null/undefined)?\n },\n\n menuItemCount: 5,\n inputRef: undefined,\n variant: 'standard'\n};\n\nMuiDownshift.propTypes = {\n items: _propTypes2.default.array,\n itemToString: _propTypes2.default.func,\n selectedItem: _propTypes2.default.object,\n getRootProps: _propTypes2.default.func,\n\n // Input\n getInputProps: _propTypes2.default.func,\n focusOnClear: _propTypes2.default.bool,\n loading: _propTypes2.default.bool,\n inputRef: _propTypes2.default.func,\n variant: _propTypes2.default.oneOf(['standard', 'filled', 'outlined']),\n\n // Menu\n getListItem: _propTypes2.default.func,\n getListItemKey: _propTypes2.default.func,\n showEmpty: _propTypes2.default.bool,\n includeFooter: _propTypes2.default.bool,\n getInfiniteLoaderProps: _propTypes2.default.func,\n getVirtualListProps: _propTypes2.default.func,\n menuHeight: _propTypes2.default.number,\n menuItemCount: _propTypes2.default.number\n};\n\nvar stateChangeTypes = exports.stateChangeTypes = _downshift2.default.stateChangeTypes;\nvar resetIdCounter = exports.resetIdCounter = _downshift2.default.resetIdCounter;\nexports.default = MuiDownshift;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n"],"sourceRoot":""}