{"version":3,"sources":["../node_modules/react/index.js","../node_modules/tslib/tslib.es6.js","../../src/keyframes.ts","../../src/styles/AnimationStyles.ts","../../src/classNames/AnimationClassNames.ts","../../src/styles/fonts.ts","../../src/utilities/buildClassMap.ts","../../src/styles/CommonStyles.ts","../../src/styles/zIndexes.ts","../../src/styles/getFocusStyle.ts","../../src/styles/hiddenContentStyle.ts","../../src/styles/getGlobalClassNames.ts","../../src/merge.ts","../../src/fontFace.ts","../../src/language.ts","../../src/styles/DefaultFontStyles.ts","../../src/localStorage.ts","../../src/styles/DefaultPalette.ts","../../src/styles/DefaultSpacing.ts","../../src/styles/DefaultEffects.ts","../../src/styles/theme.ts","../../src/styles/GeneralStyles.ts","../../src/utilities/icons.ts","../../src/version.ts","../../src/index.ts","../../src/components/Image/Image.types.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../../src/dom/getWindow.ts","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../node_modules/micromark/dist/character/markdown-line-ending.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/micromark/dist/tokenize/factory-space.js","../node_modules/semver/classes/semver.js","../../src/KeyCodes.ts","../../src/Stylesheet.ts","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../../src/dom/getDocument.ts","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/semver/functions/compare.js","../node_modules/semver/classes/range.js","../../src/customizations/Customizations.ts","../../src/components/Icon/Icon.styles.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/micromark/dist/character/markdown-space.js","../../src/getVendorSettings.ts","../../src/transforms/kebabRules.ts","../../src/transforms/prefixRules.ts","../../src/transforms/provideUnits.ts","../../src/transforms/rtlifyRules.ts","../../src/styleToClassName.ts","../node_modules/micromark/dist/util/chunked-splice.js","../node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../node_modules/micromark/dist/util/regex-check.js","../../src/StyleOptionsState.ts","../../src/customizations/CustomizerContext.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/semver/index.js","../node_modules/micromark/dist/util/shallow.js","../node_modules/semver/internal/re.js","../node_modules/semver/functions/parse.js","../node_modules/react-dom/index.js","../node_modules/micromark/dist/constant/assign.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/micromark/dist/constant/from-char-code.js","../node_modules/micromark/dist/tokenize/partial-blank-line.js","../node_modules/micromark/dist/util/prefix-size.js","../node_modules/micromark/dist/character/ascii-alphanumeric.js","../node_modules/unist-util-visit/index.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/debug.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/functions/gt.js","../node_modules/semver/classes/comparator.js","../node_modules/semver/functions/satisfies.js","../../src/warn/warn.ts","../../src/dom/setSSR.ts","../../src/concatStyleSets.ts","../../src/extractStyleParts.ts","../../src/object.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/copy-text-to-clipboard/index.js","../../src/components/Image/Image.base.tsx","../../src/components/Image/Image.styles.ts","../../src/components/Image/Image.tsx","../../src/setVersion.ts","../../src/appendFunction.ts","../../src/extendComponent.ts","../../src/setFocusVisibility.ts","../node_modules/react-is/index.js","../node_modules/xtend/immutable.js","../node_modules/micromark/dist/util/normalize-identifier.js","../node_modules/micromark/dist/util/miniflat.js","../node_modules/micromark/dist/util/chunked-push.js","../node_modules/micromark/dist/util/resolve-all.js","../node_modules/micromark/dist/character/ascii-alpha.js","../node_modules/micromark/dist/tokenize/label-end.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/functions/eq.js","../node_modules/semver/functions/compare-build.js","../node_modules/semver/functions/lt.js","../node_modules/semver/functions/gte.js","../node_modules/semver/functions/lte.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/semver/ranges/outside.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/path-to-regexp/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/global.js","../node_modules/is-buffer/index.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/micromark/dist/constant/has-own-property.js","../node_modules/micromark/dist/util/size-chunks.js","../node_modules/micromark/dist/util/subtokenize.js","../node_modules/micromark/dist/initialize/text.js","../node_modules/micromark/dist/character/ascii-control.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/micromark/dist/character/ascii-digit.js","../node_modules/micromark/dist/tokenize/factory-destination.js","../node_modules/micromark/dist/tokenize/factory-label.js","../node_modules/micromark/dist/tokenize/factory-whitespace.js","../node_modules/micromark/dist/tokenize/factory-title.js","../node_modules/micromark/dist/tokenize/thematic-break.js","../node_modules/semver/functions/neq.js","../node_modules/semver/functions/cmp.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../../src/GlobalSettings.ts","../../src/EventGroup.ts","../../src/components/Icon/FontIcon.tsx","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/timeago.js/dist/timeago.min.js","../../src/fabric-icons.ts","../../src/fabric-icons-0.ts","../../src/fabric-icons-1.ts","../../src/fabric-icons-2.ts","../../src/fabric-icons-3.ts","../../src/fabric-icons-4.ts","../../src/fabric-icons-5.ts","../../src/fabric-icons-6.ts","../../src/fabric-icons-7.ts","../../src/fabric-icons-8.ts","../../src/fabric-icons-9.ts","../../src/fabric-icons-10.ts","../../src/fabric-icons-11.ts","../../src/fabric-icons-12.ts","../../src/fabric-icons-13.ts","../../src/fabric-icons-14.ts","../../src/fabric-icons-15.ts","../../src/fabric-icons-16.ts","../../src/fabric-icons-17.ts","../../src/iconAliases.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../src/rtl.ts","../../src/sessionStorage.ts","../../src/memoize.ts","../../src/properties.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/unified/index.js","../node_modules/bail/index.js","../node_modules/extend/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/trough/wrap.js","../node_modules/vfile/index.js","../node_modules/vfile/lib/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/core.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/remark-parse/index.js","../node_modules/mdast-util-from-markdown/index.js","../node_modules/mdast-util-from-markdown/dist/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark/dist/util/safe-from-int.js","../node_modules/micromark/dist/parse.js","../node_modules/micromark/dist/initialize/content.js","../node_modules/micromark/dist/initialize/document.js","../node_modules/micromark/dist/initialize/flow.js","../node_modules/micromark/dist/tokenize/content.js","../node_modules/micromark/dist/constant/splice.js","../node_modules/micromark/dist/util/combine-extensions.js","../node_modules/micromark/dist/util/create-tokenizer.js","../node_modules/micromark/dist/util/serialize-chunks.js","../node_modules/micromark/dist/util/slice-chunks.js","../node_modules/micromark/dist/constructs.js","../node_modules/micromark/dist/tokenize/attention.js","../node_modules/micromark/dist/util/classify-character.js","../node_modules/micromark/dist/character/unicode-punctuation.js","../node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../node_modules/micromark/dist/character/unicode-whitespace.js","../node_modules/micromark/dist/util/move-point.js","../node_modules/micromark/dist/tokenize/autolink.js","../node_modules/micromark/dist/character/ascii-atext.js","../node_modules/micromark/dist/tokenize/block-quote.js","../node_modules/micromark/dist/tokenize/character-escape.js","../node_modules/micromark/dist/character/ascii-punctuation.js","../node_modules/micromark/dist/tokenize/character-reference.js","../node_modules/micromark/dist/character/ascii-hex-digit.js","../node_modules/micromark/dist/tokenize/code-fenced.js","../node_modules/micromark/dist/tokenize/code-indented.js","../node_modules/micromark/dist/tokenize/code-text.js","../node_modules/micromark/dist/tokenize/definition.js","../node_modules/micromark/dist/tokenize/hard-break-escape.js","../node_modules/micromark/dist/tokenize/heading-atx.js","../node_modules/micromark/dist/tokenize/html-flow.js","../node_modules/micromark/dist/constant/html-block-names.js","../node_modules/micromark/dist/constant/html-raw-names.js","../node_modules/micromark/dist/tokenize/html-text.js","../node_modules/micromark/dist/tokenize/label-start-image.js","../node_modules/micromark/dist/tokenize/label-start-link.js","../node_modules/micromark/dist/tokenize/line-ending.js","../node_modules/micromark/dist/tokenize/list.js","../node_modules/micromark/dist/tokenize/setext-underline.js","../node_modules/micromark/dist/preprocess.js","../node_modules/micromark/dist/postprocess.js","../node_modules/react-markdown/node_modules/prop-types/index.js","../node_modules/react-markdown/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-markdown/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/mdast-add-list-metadata/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/react-markdown/lib/plugins/naive-html.js","../node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-is/convert.js","../node_modules/unist-util-visit/node_modules/unist-util-visit-parents/color.browser.js","../node_modules/react-markdown/lib/plugins/disallow-node.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/wrap-table-rows.js","../node_modules/react-markdown/lib/get-definitions.js","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/renderers.js","../node_modules/react-markdown/lib/symbols.js","../node_modules/process/browser.js","../node_modules/semver/functions/valid.js","../node_modules/semver/functions/clean.js","../node_modules/semver/functions/inc.js","../node_modules/semver/functions/diff.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/minor.js","../node_modules/semver/functions/patch.js","../node_modules/semver/functions/prerelease.js","../node_modules/semver/functions/rcompare.js","../node_modules/semver/functions/compare-loose.js","../node_modules/semver/functions/sort.js","../node_modules/semver/functions/rsort.js","../node_modules/semver/functions/coerce.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/lru-cache/index.js","../node_modules/yallist/yallist.js","../node_modules/yallist/iterator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/semver/ranges/to-comparators.js","../node_modules/semver/ranges/max-satisfying.js","../node_modules/semver/ranges/min-satisfying.js","../node_modules/semver/ranges/min-version.js","../node_modules/semver/ranges/valid.js","../node_modules/semver/ranges/gtr.js","../node_modules/semver/ranges/ltr.js","../node_modules/semver/ranges/intersects.js","../node_modules/semver/ranges/simplify.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/semver/ranges/subset.js","../../src/concatStyleSetsWithProps.ts","../../src/mergeStyleSets.ts","../../src/css.ts","../../src/styled.tsx","../../src/classNamesFunction.ts","../../src/utilities/selectableOption/SelectableOption.types.ts","../../src/mergeStyles.ts","../../src/initializeComponentRef.ts","../../src/getId.ts","../../src/array.ts","../../src/aria.ts","../../src/dom/getParent.ts","../../src/dom/getVirtualParent.ts","../../src/dom/isVirtualElement.ts","../../src/dom/findElementRecursive.ts","../../src/dom/elementContains.ts","../../src/focus.ts","../../src/dom/elementContainsAttribute.ts","../../src/osDetector.ts","../../src/mobileDetector.ts","../../src/utilities/positioning/positioning.types.ts","../../src/common/DirectionalHint.ts","../../src/Async.ts","../../src/dom/on.ts","../../src/Rectangle.ts","../../src/scroll.ts","../../src/utilities/positioning/positioning.ts","../../src/components/Popup/Popup.tsx","../../src/components/Callout/CalloutContent.base.tsx","../../src/components/Callout/CalloutContent.styles.ts","../../src/components/Callout/CalloutContent.tsx","../../src/customizations/mergeSettings.ts","../../src/customizations/Customizer.tsx","../../src/customizations/mergeCustomizations.ts","../../src/components/Fabric/Fabric.styles.ts","../../src/components/Fabric/Fabric.base.tsx","../../src/components/Fabric/Fabric.tsx","../../src/hoistStatics.ts","../../src/customizations/customizable.tsx","../../src/components/Layer/Layer.notification.ts","../../src/components/Layer/Layer.base.tsx","../../src/dom/setPortalAttribute.ts","../../src/dom/setVirtualParent.ts","../../src/components/Layer/Layer.styles.ts","../../src/components/Layer/Layer.tsx","../../src/components/Callout/Callout.tsx","../../src/dom/portalContainsElement.ts","../../src/BaseComponent.ts","../../src/components/ContextualMenu/ContextualMenu.types.ts","../../src/components/Icon/ImageIcon.tsx","../../src/components/FocusZone/FocusZone.types.ts","../../src/dom/raiseClick.ts","../../src/components/FocusZone/FocusZone.tsx","../../src/utilities/contextualMenu/contextualMenuUtility.ts","../../src/hoist.ts","../../src/utilities/decorators/BaseDecorator.ts","../../src/utilities/decorators/withResponsiveMode.tsx","../../src/components/ContextualMenu/ContextualMenuItem.base.tsx","../../src/components/Divider/VerticalDivider.classNames.ts","../../src/components/ContextualMenu/ContextualMenu.cnstyles.ts","../../src/components/ContextualMenu/ContextualMenu.classNames.ts","../../src/components/ContextualMenu/ContextualMenuItem.ts","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.tsx","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.tsx","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.tsx","../../src/components/Divider/VerticalDivider.base.tsx","../../src/components/Divider/VerticalDivider.tsx","../../src/components/Divider/VerticalDivider.styles.ts","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.tsx","../../src/components/ContextualMenu/ContextualMenu.base.tsx","../../src/components/ContextualMenu/ContextualMenu.tsx","../../src/components/ContextualMenu/ContextualMenu.styles.ts","../../src/components/Panel/Panel.types.ts","../../src/components/Button/BaseButton.classNames.ts","../../src/components/Button/SplitButton/SplitButton.classNames.ts","../../src/components/Button/BaseButton.tsx","../../src/components/Button/BaseButton.styles.ts","../../src/components/Button/ActionButton/ActionButton.styles.ts","../../src/components/Button/CommandButton/CommandButton.tsx","../../src/components/Button/ActionButton/ActionButton.tsx","../../src/components/Dropdown/utilities/DropdownSizePosCache.ts","../../src/components/Label/Label.base.tsx","../../src/components/Label/Label.tsx","../../src/components/Label/Label.styles.ts","../../src/components/Button/SplitButton/SplitButton.styles.ts","../../src/components/Button/IconButton/IconButton.styles.ts","../../src/components/Button/IconButton/IconButton.tsx","../../src/components/Overlay/Overlay.base.tsx","../../src/components/Overlay/Overlay.styles.ts","../../src/components/Overlay/Overlay.tsx","../../src/components/FocusTrapZone/FocusTrapZone.tsx","../../src/components/Panel/Panel.base.tsx","../../src/components/Panel/Panel.styles.ts","../../src/components/Panel/Panel.ts","../../src/utilities/selectableOption/SelectableOption.ts","../../src/components/Dropdown/Dropdown.base.tsx","../../src/safeRequestAnimationFrame.ts","../../src/components/Dropdown/Dropdown.styles.ts","../../src/components/Dropdown/Dropdown.ts","../../src/utilities/keytips/KeytipConstants.ts","../../src/utilities/keytips/KeytipManager.ts","../../src/utilities/keytips/KeytipUtils.ts","../../src/components/KeytipData/KeytipData.tsx","../../src/components/Icon/Icon.types.ts","../../src/components/Icon/Icon.base.tsx","../../src/components/Icon/Icon.tsx","../../src/components/Checkbox/Checkbox.base.tsx","../../src/components/Checkbox/Checkbox.styles.ts","../../src/components/Checkbox/Checkbox.tsx","../../src/components/Link/Link.base.tsx","../../src/components/Link/Link.styles.ts","../../src/components/Link/Link.tsx","../../src/keyboard.ts","../../src/useFocusRects.ts"],"names":["module","exports","require","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__spreadArrays","il","k","a","j","jl","keyframes","timeline","stylesheet","Stylesheet","getInstance","name","getClassName","rulesArray","prop","push","rules","join","insertRule","cacheClassName","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","from","opacity","to","FADE_OUT","visibility","SLIDE_RIGHT_IN10","_createSlideInX","SLIDE_RIGHT_IN20","SLIDE_RIGHT_IN40","SLIDE_RIGHT_IN400","SLIDE_LEFT_IN10","SLIDE_LEFT_IN20","SLIDE_LEFT_IN40","SLIDE_LEFT_IN400","SLIDE_UP_IN10","_createSlideInY","SLIDE_UP_IN20","SLIDE_DOWN_IN10","SLIDE_DOWN_IN20","SLIDE_RIGHT_OUT10","_createSlideOutX","SLIDE_RIGHT_OUT20","SLIDE_RIGHT_OUT40","SLIDE_RIGHT_OUT400","SLIDE_LEFT_OUT10","SLIDE_LEFT_OUT20","SLIDE_LEFT_OUT40","SLIDE_LEFT_OUT400","SLIDE_UP_OUT10","_createSlideOutY","SLIDE_UP_OUT20","SLIDE_DOWN_OUT10","SLIDE_DOWN_OUT20","SCALE_UP100","transform","SCALE_DOWN98","SCALE_DOWN100","SCALE_UP103","ROTATE90","ROTATE_N90","AnimationVariables","easeFunction1","easeFunction2","durationValue1","durationValue2","durationValue3","durationValue4","_createAnimation","animationName","animationDuration","animationTimingFunction","animationFillMode","fromX","fromY","toX","toY","LocalizedFontNames","LocalizedFontFamilies","AnimationClassNames","styles","classes","styleName","get","undefined","mergeStyles","toString","enumerable","configurable","buildClassMap","slideRightIn10","slideRightIn20","slideRightIn40","slideRightIn400","slideLeftIn10","slideLeftIn20","slideLeftIn40","slideLeftIn400","slideUpIn10","slideUpIn20","slideDownIn10","slideDownIn20","slideRightOut10","slideRightOut20","slideRightOut40","slideRightOut400","slideLeftOut10","slideLeftOut20","slideLeftOut40","slideLeftOut400","slideUpOut10","slideUpOut20","slideDownOut10","slideDownOut20","scaleUpIn100","scaleDownIn100","scaleUpOut103","scaleDownOut98","fadeIn100","fadeIn200","fadeIn400","fadeIn500","fadeOut100","fadeOut200","fadeOut400","fadeOut500","rotate90deg","rotateN90deg","Arabic","Cyrillic","EastEuropean","Greek","Hebrew","Thai","Vietnamese","WestEuropean","Selawik","Armenian","Georgian","ChineseSimplified","ChineseTraditional","Hindi","Japanese","Korean","FontSizes","FontWeights","IconFontSizes","defaultFontFamily","LanguageToFontMap","ar","bg","cs","el","et","he","hi","hr","hu","ja","kk","ko","lt","lv","pl","ru","sk","th","tr","uk","vi","hy","ka","_createFont","size","weight","fontFamily","MozOsxFontSmoothing","WebkitFontSmoothing","fontSize","fontWeight","mini","xSmall","small","smallPlus","medium","mediumPlus","icon","large","xLarge","xLargePlus","xxLarge","xxLargePlus","superLarge","mega","light","semilight","regular","semibold","bold","HighContrastSelector","HighContrastSelectorWhite","HighContrastSelectorBlack","ScreenWidthMinMedium","ScreenWidthMinLarge","ScreenWidthMinXLarge","ScreenWidthMinXXLarge","ScreenWidthMaxMedium","ScreenWidthMinUhfMobile","getScreenSelector","min","max","getEdgeChromiumNoHighContrastAdjustSelector","forcedColorAdjust","ZIndexes","getFocusStyle","theme","insetOrOptions","position","highContrastStyle","borderColor","outlineColor","isFocusedOnly","_getFocusStyleInternal","inset","options","width","outline","selectors","border","content","left","top","bottom","right","zIndex","FocusStyle","focusClear","Nav","ScrollablePane","Coachmark","Layer","KeytipLayer","hiddenContentStyle","height","margin","padding","overflow","_getGlobalClassNames","memoize","classNames","disableGlobalClassNames","styleSheet","keys","reduce","acc","className","getGlobalClassNames","merge","args","arg","_merge","source","circularReferences","value","isCircularReference","pop","fontFace","font","_language","DefaultFontStyles","localeCode","fontFamilyWithFallback","language","lang","_getLocalizedFontFamily","tiny","createFontStyles","doc","getDocument","savedLanguage","result","win","getWindow","localStorage","getItem","documentElement","getAttribute","getLanguage","_registerFontFace","url","localFontName","src","localFontSrc","fontStyle","fontDisplay","_registerFontFaceSet","baseUrl","cdnFolder","cdnFontName","urlBase","fontUrl","registerDefaultFontFaces","FabricConfig","fontBaseUrl","_getFontBaseUrl","DefaultPalette","themeDarker","themeDark","themeDarkAlt","themePrimary","themeSecondary","themeTertiary","themeLight","themeLighter","themeLighterAlt","black","blackTranslucent40","neutralDark","neutralPrimary","neutralPrimaryAlt","neutralSecondary","neutralSecondaryAlt","neutralTertiary","neutralTertiaryAlt","neutralQuaternary","neutralQuaternaryAlt","neutralLight","neutralLighter","neutralLighterAlt","accent","white","whiteTranslucent40","yellowDark","yellow","yellowLight","orange","orangeLight","orangeLighter","redDark","red","magentaDark","magenta","magentaLight","purpleDark","purple","purpleLight","blueDark","blueMid","blue","blueLight","tealDark","teal","tealLight","greenDark","green","greenLight","DefaultSpacing","s2","s1","m","l1","l2","DefaultEffects","elevation4","elevation8","elevation16","elevation64","roundedCorner2","_theme","createTheme","palette","semanticColors","_makeSemanticColorsFromPalette","fonts","isInverted","initializeThemeInCustomizations","Customizations","getSettings","applySettings","depComments","newPalette","newSemanticColors","defaultFontStyles","defaultFontStyle","rtl","spacing","effects","dep","listTextColor","listText","menuItemBackgroundChecked","warningHighlight","warningText","messageText","successText","_fixDeprecatedSlots","bodyBackground","bodyBackgroundHovered","bodyBackgroundChecked","bodyStandoutBackground","bodyFrameBackground","bodyFrameDivider","bodyText","bodyTextChecked","bodySubtext","bodyDivider","disabledBodyText","disabledBodySubtext","disabledBorder","focusBorder","variantBorder","variantBorderHovered","defaultStateBackground","actionLink","actionLinkHovered","link","linkHovered","buttonBackground","buttonBackgroundChecked","buttonBackgroundHovered","buttonBackgroundCheckedHovered","buttonBackgroundPressed","buttonBackgroundDisabled","buttonBorder","buttonText","buttonTextHovered","buttonTextChecked","buttonTextCheckedHovered","buttonTextPressed","buttonTextDisabled","buttonBorderDisabled","primaryButtonBackground","primaryButtonBackgroundHovered","primaryButtonBackgroundPressed","primaryButtonBackgroundDisabled","primaryButtonBorder","primaryButtonText","primaryButtonTextHovered","primaryButtonTextPressed","primaryButtonTextDisabled","accentButtonBackground","accentButtonText","inputBorder","inputBorderHovered","inputBackground","inputBackgroundChecked","inputBackgroundCheckedHovered","inputPlaceholderBackgroundChecked","inputForegroundChecked","inputIcon","inputIconHovered","inputIconDisabled","inputFocusBorderAlt","smallInputBorder","inputText","inputTextHovered","inputPlaceholderText","disabledBackground","disabledText","disabledSubtext","listBackground","listItemBackgroundHovered","listItemBackgroundChecked","listItemBackgroundCheckedHovered","listHeaderBackgroundHovered","listHeaderBackgroundPressed","menuBackground","menuDivider","menuIcon","menuHeader","menuItemBackgroundHovered","menuItemBackgroundPressed","menuItemText","menuItemTextHovered","errorText","messageLink","messageLinkHovered","infoIcon","errorIcon","blockingIcon","warningIcon","severeWarningIcon","successIcon","infoBackground","errorBackground","blockingBackground","warningBackground","severeWarningBackground","successBackground","normalize","boxShadow","boxSizing","_iconSettings","GlobalSettings","getValue","__options","disableWarnings","warnOnMissingIcons","__remapped","onReset","subset","normalizeIconName","registerIcons","iconSubset","isRegistered","icons","iconName","code","normalizedIconName","_warnDuplicateIcon","registerIconAlias","mappedToName","getIcon","style","warn","_missingIcons","_missingIconsTimer","setTimeout","slice","ImageFit","ImageCoverStyle","ImageLoadState","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","writable","_createClass","protoProps","staticProps","_getPrototypeOf","o","getPrototypeOf","_isNativeReflectConstruct","construct","sham","Proxy","Date","_typeof","obj","Symbol","iterator","_possibleConstructorReturn","self","ReferenceError","_createSuper","Derived","Super","NewTarget","_setPrototypeOf","_inherits","subClass","superClass","_window","window","rootElement","ownerDocument","defaultView","historyContext","context","createContext","createNamedContext","Router","location","computeRootMatch","path","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","history","state","match","staticContext","HistoryContext","children","React","Component","cache","cacheCount","matchPath","exact","strict","sensitive","concat","matched","cacheKey","pathCache","regexp","pathToRegexp","compilePath","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","withRouter","displayName","C","wrappedComponentRef","remainingProps","ref","hoistStatics","_extends","markdownSpace","ok","type","limit","Infinity","enter","prefix","consume","exit","debug","MAX_LENGTH","MAX_SAFE_INTEGER","re","parseOptions","compareIdentifiers","SemVer","version","loose","includePrerelease","trim","LOOSE","FULL","raw","major","minor","patch","prerelease","split","map","id","test","num","build","format","other","compareMain","comparePre","release","identifier","inc","isNaN","Error","KeyCodes","backspace","tab","shift","ctrl","alt","pauseBreak","capslock","escape","space","pageUp","pageDown","home","up","down","insert","del","zero","one","two","three","four","five","six","seven","eight","nine","f","g","h","l","q","u","v","w","x","y","z","leftWindow","rightWindow","select","zero_numpad","one_numpad","two_numpad","three_numpad","four_numpad","five_numpad","six_numpad","seven_numpad","eight_numpad","nine_numpad","multiply","add","subtract","decimalPoint","divide","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","numlock","scrollLock","semicolon","equalSign","comma","dash","period","forwardSlash","graveAccent","openBracket","backSlash","closeBracket","singleQuote","_stylesheet","InjectionMode","REUSE_STYLE_NODE","navigator","userAgent","_global","config","_rules","_preservedRules","_rulesToInsert","_counter","_keyToClassName","_onResetCallbacks","_classNameToArgs","_config","injectionMode","defaultPrefix","namespace","cspSettings","classNameCache","_lastStyleElement","document","fabricConfig","setConfig","callback","classNameFromKey","getClassNameCache","argsFromClassName","entry","insertedRulesFromClassName","rule","preserve","element","_getStyleElement","sheet","cssRules","appendChild","createTextNode","onInsertRule","getRules","includePreservedRules","reset","forEach","resetKeys","_styleElement","_createStyleElement","requestAnimationFrame","head","styleElement","createElement","setAttribute","nonce","insertBefore","nextElementSibling","placeholderStyleTag","_findPlaceholderStyleTag","childNodes","querySelector","_inheritsLoose","condition","message","BrowserRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","createLocation","forwardRefShim","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","event","ex","isModifiedEvent","forwardedRef","Link","replace","href","method","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","isActive","locationProp","styleProp","toLocation","escapedPath","classnames","joinClassnames","isAbsolute","charAt","spliceOne","list","index","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","part","unshift","substr","valueOf","valueEqual","isArray","every","item","aValue","bValue","stripLeadingSlash","toLowerCase","hasBasename","stripTrailingSlash","search","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","fn","listener","filter","notifyListeners","_len","_key","canUseDOM","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","nextIndex","nextEntries","splice","canGo","compare","Range","range","Comparator","set","parseRange","first","isNullSet","isAny","comps","memoOpts","memoKey","cached","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","COMPARATORLOOSE","COMPARATOR","rangeList","comp","parseComparator","replaceGTE0","rangeMap","Map","has","delete","some","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","intersects","er","testSet","comparators","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","_","M","pr","ret","replaceCaret","CARETLOOSE","CARET","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","semver","ANY","allowed","NO_CUSTOMIZATIONS","settings","scopedSettings","inCustomizerContext","_allSettings","_events","_raiseChange","applyScopedSettings","scopeName","properties","localSettings","localScopedSettings","globalScopedSettings","property","applyBatchedUpdates","suppressUpdate","_suppressUpdates","observe","onChange","unobserve","cb","root","display","placeholder","image","MS_ICON","getStyles","iconClassName","isPlaceholder","isImage","imageContainer","_defineProperty","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_vendorSettings","kebabRules","rulePairs","autoPrefixNames","prefixRules","vendorSettings","nav","isWebkit","isMoz","isOpera","isMs","getVendorSettings","NON_PIXEL_NUMBER_PROPS","provideUnits","unit","LEFT","RIGHT","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","String","parts","flipQuad","partIndex","numberVal","parseInt","negateNum","getDisplayName","rootStyle","globalSelectorRegExp","expandCommaSeparatedGlobals","selectorWithGlobals","replacementInfo","findGlobal","exec","reverse","selector","matchIndex","matchEndIndex","replacement","expandSelector","newSelector","currentSelector","extractRules","__order","currentRules","expandedRules","separatedSelector","expandQuads","getKeyForRules","serialized","hasProps","rulesForSelector","propName","repeatString","count","serializeRuleEntries","ruleEntries","allEntries","styleToRegistration","registration","rulesToInsert","applyRegistration","specificityMultiplier","processedRule","styleToClassName","start","remove","items","parameters","chunkStart","fromCharCode","regex","setRTL","isRTL","_rtl","getRTL","getStyleOptions","CustomizerContext","customizations","_objectWithoutPropertiesLoose","excluded","sourceKeys","internalRe","tokens","SEMVER_SPEC_VERSION","rcompareIdentifiers","parse","valid","clean","diff","rcompare","compareLoose","compareBuild","sort","rsort","gt","eq","neq","gte","lte","cmp","coerce","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","MAX_SAFE_COMPONENT_LENGTH","R","createToken","isGlobal","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","LONECARET","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","err","console","error","_arrayLikeToArray","arr","len","arr2","markdownLineEnding","factorySpace","partialBlankLine","tokenize","nok","partial","sizeChunks","events","tail","sliceStream","asciiAlphanumeric","regexCheck","visit","visitParents","CONTINUE","SKIP","EXIT","tree","visitor","node","parents","parent","Number","NODE_DEBUG","opts","operator","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","_isSSR","concatStyleSets","styleSets","subComponentStyles","mergedSet","workingSubcomponentStyles","currentSet","currentComponentStyles","subCompProp","mergedValue","currentValue","mergedSubStyles","styleProps","styleFunctionOrObject","extractStyleParts","objects","_processArgs","argsList","translatedArgs","shallowCompare","filteredAssign","isAllowed","sourceObject","_unsupportedIterableToArray","minLen","copyTextToClipboard","input","body","previouslyFocusedElement","activeElement","contain","selection","getSelection","originalRange","rangeCount","getRangeAt","append","selectionStart","selectionEnd","isSuccess","execCommand","removeAllRanges","addRange","focus","default","getClassNames","classNamesFunction","_coverStyle","portrait","_imageElement","_frameElement","_onImageLoaded","ev","onLoad","_computeCoverStyle","loadState","loaded","_onImageError","onError","notLoaded","UNSAFE_componentWillReceiveProps","nextProps","componentDidUpdate","prevProps","prevState","_checkImageLoaded","onLoadingStateChange","imageProps","shouldFadeIn","shouldStartVisible","imageFit","role","maximizeFrame","coverStyle","isLoaded","isLandscape","landscape","isCenter","center","isCenterContain","centerContain","isCenterCover","centerCover","isContain","isCover","cover","isNone","none","isError","isNotImageFit","current","naturalWidth","naturalHeight","complete","ImageBase","_svgRegex","desiredRatio","clientWidth","clientHeight","naturalRatio","defaultProps","GlobalClassNames","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","Image","styled","ImageFitStyles","supportsObjectFit","msMaxTouchPoints","fallbackObjectFitStyles","objectFit","maxWidth","maxHeight","scope","packagesCache","_win","setVersion","packageName","packageVersion","packages","__packages__","appendFunction","functions","extendComponent","methods","IsFocusVisibleClassName","setFocusVisibility","enabled","classList","toUpperCase","chunkedSplice","constructs","resolve","called","resolveAll","asciiAlpha","chunkedPush","normalizeIdentifier","shallow","markdownLineEndingOrSpace","factoryDestination","factoryLabel","factoryWhitespace","factoryTitle","labelEnd","labelStart","defined","_balanced","_inactive","balanced","parser","sliceSerialize","now","afterLabelEnd","attempt","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","resolveTo","group","label","text","token","open","close","media","offset","insideSpan","null","_used","destinationAfter","between","afterLabel","numeric","anum","bnum","versionA","versionB","arrayLikeToArray","unsupportedIterableToArray","F","done","_e","it","normalCompletion","didErr","step","next","_e2","hilo","gtfn","ltefn","ltfn","ecomp","high","low","comparator","commonjsGlobal","globalThis","global","createEventEmitter","handlers","on","handler","off","newValue","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","_proto","getChildContext","componentWillReceiveProps","oldValue","childContextTypes","PropTypes","isRequired","Consumer","_Component2","_this2","onUpdate","observedBits","_proto2","contextTypes","isarray","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","res","defaultDelimiter","delimiter","escaped","capture","modifier","asterisk","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","matches","flags","data","encode","pretty","encodeURIComponent","segment","JSON","stringify","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","_createForOfIteratorHelper","propIsEnumerable","toObject","val","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","Function","isBuffer","own","point","line","column","pos","chunks","subcontent","eventIndex","stream","previous","entered","adjust","startPosition","startPositions","tokenizer","_tokenizer","contentType","childEvents","jumps","gaps","defineSkip","isInFirstContentOfListItem","_gfmTasklistFirstContentOfListItem","write","lineIndex","otherIndex","otherEvent","subevents","more","_container","_movePreviousLineEndings","initializeFactory","string","resolver","createResolver","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunk","bufferIndex","tabs","_index","_bufferIndex","characters","char","entity","innerHTML","textContent","asciiDigit","asciiControl","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","markerType","labelEscape","seen","marker","atFirstTitleBreak","atTitleBreak","title","titleEscape","thematicBreak","sequence","op","globalSettings","_getGlobalSettings","setValue","callbacks","changeDescription","addChangeListener","__id__","_getCallbacks","removeChangeListener","globalObj","_id","EventGroup","_uniqueId","_parent","_eventRecords","raise","eventName","eventArgs","bubbleEvent","retVal","_isElement","createEvent","initEvent","dispatchEvent","evObj","fireEvent","__events__","eventRecords","eventRecordList","listIndex","record","objectCallback","isObserved","isDeclared","declaredEvents","__declaredEvents","stopPropagation","cancelBubble","HTMLElement","dispose","_isDisposed","onAll","useCapture","eventRecord","processElementEvent","preventDefault","elementCallback","attachEvent","targetArrayLookup","targetArray","detachEvent","declare","getIconContent","FontIcon","iconContent","nativeProps","containerProps","ariaLabel","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","xtend","unified","addListMetadata","naiveHtml","disallowNode","astToReact","wrapTableRows","getDefinitions","uriTransformer","defaultRenderers","allTypes","ReactMarkdown","allowedTypes","disallowedTypes","renderers","processor","use","plugins","runSync","renderProps","definitions","transforms","removalMethod","unwrapDisallowed","ofType","allowNode","ifNotMatch","renderHtml","allowDangerousHtml","escapeHtml","skipHtml","hasHtmlParser","astPlugins","identity","HtmlParser","determineAstToReactTransforms","transformLinkUri","sourcePos","bool","rawSourcePos","func","arrayOf","oneOf","oneOfType","linkTarget","transformImageUri","array","types","timeago","abs","attr","nowDate","defaultLocale","en","zh_CN","doRender","ceil","setLocale","register","cancel","clearTimeout","initializeIcons","speak","GlobalNavButton","ChevronDown","ChevronUp","Edit","Add","Cancel","More","Settings","Mail","Filter","Search","Share","BlockedSite","FavoriteStar","FavoriteStarFill","CheckMark","Delete","ChevronLeft","ChevronRight","Calendar","Megaphone","Undo","Flag","Page","Pinned","View","Clear","Download","Upload","Folder","Sort","AlignRight","AlignLeft","Tag","AddFriend","Info","SortLines","List","CircleRing","Heart","HeartFill","Tiles","Embed","Glimmer","Ascending","Descending","SortUp","SortDown","SyncToPC","LargeGrid","SkypeCheck","SkypeClock","SkypeMinus","ClearFilter","Flow","StatusCircleCheckmark","MoreVertical","initialize","_toConsumableArray","iter","_isRTL","savedRTL","sessionStorage","persistSetting","setItem","_initializedStylesheetResets","_resetCounter","_emptyObject","empty","_dictionary","_weakMap","WeakMap","resetMemoizations","memoizeFunction","maxCacheSize","ignoreNullOrUndefinedResult","rootNode","cacheSize","localResetCounter","currentNode","_createNode","_normalizeArg","htmlElementProperties","anchorProperties","buttonProperties","imgProperties","divProperties","getNativeProps","allowedPropNames","excludedPropNames","for","A","B","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","L","__self","__source","$$typeof","_owner","O","P","Q","keyPrefix","S","V","T","U","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","bind","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","da","ea","fa","ha","ia","la","ma","na","oa","currentTarget","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttributeNS","Ya","Za","$a","ab","bb","db","eb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","stopTracking","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","selected","defaultSelected","disabled","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","firstChild","removeChild","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","bc","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","child","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","container","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","setProperty","nd","menuitem","area","br","col","embed","img","keygen","meta","param","track","wbr","od","pd","is","qd","rd","sd","td","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","extend","ge","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","detail","se","ve","locale","which","te","ctrlKey","altKey","metaKey","ue","we","color","date","datetime","email","month","number","password","tel","time","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","ef","ff","gf","hf","jf","anchorNode","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","queue","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","ti","ui","wi","xi","yi","zi","Ai","stack","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","then","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","createRange","setStart","setEnd","scrollLeft","scrollTop","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","floor","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","shim","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","shape","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","bail","buffer","plain","trough","vfile","attachers","transformers","frozen","freezeIndex","assertUnfrozen","freeze","addPlugin","addList","addPreset","plugin","find","Parser","file","assertParser","newable","Compiler","assertCompiler","assertNode","run","assertDone","processSync","destination","transformer","Promise","executor","reject","pipeline","ctx","contents","asyncName","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","getProperty","copy","copyIsArray","clone","deep","wrap","fns","middleware","invoked","VMessage","VFile","reason","origin","fatal","messages","info","fail","VMessagePrototype","proto","parseOrigin","ruleId","proc","cwd","assertPart","sep","assertNonEmpty","assertPath","encoding","dirname","extname","stem","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","ext","firstNonSlashEnd","seenNonSlash","extIndex","unmatchedSlash","startDot","startPart","preDotState","joined","fromMarkdown","extensions","mdastExtensions","extension","configure","canContainEols","autolink","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","heading","blockQuote","characterEscape","characterReference","codeFenced","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","codeText","codeTextData","codeFlowValue","definition","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlow","html","htmlFlowData","htmlText","htmlTextData","listItem","spread","_spread","listItemValue","getData","setData","listOrdered","listUnordered","paragraph","reference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","depth","onexitdata","characterEscapeValue","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","safeFromInt","decode","resume","codeFencedFence","onexithardbreak","referenceType","fragment","labelText","lineEnding","resource","setextHeadingLineSequence","setextHeadingText","listStart","tokenStack","listStack","prepareList","stringifyPosition","tailIndex","tailEvent","firstBlankLineIndex","atMarker","containerBalance","listSpread","and","siblings","ordered","compiler","postprocess","preprocessor","all","miniflat","flow","combineExtensions","createTokenizer","initializer","contentStart","contentInitial","lineStart","inspectResult","childFlow","childToken","continued","inspectConstruct","subcontinued","inspectStart","containerState","continuation","inspectContinue","inspectLess","currentConstruct","concrete","flowContinue","inspectDone","interrupt","interruptible","containerConstruct","inspectFlowEnd","_closeFlow","lazyFlowConstruct","check","inspectLazy","flowEnd","documentContinue","documentContinued","flowStart","containerContinue","exitContainers","continueFlow","documentAfterPeek","disable","initial","flowInitial","afterConstruct","prefixSize","subtokenize","contentEnd","continuationConstruct","contentContinue","prefixed","hook","existing","before","serializeChunks","sliceChunks","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","addResult","onsuccessfulcheck","main","chunkIndex","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","atTab","startIndex","startBufferIndex","endIndex","endBufferIndex","text$1","attention","headingAtx","labelStartImage","labelStartLink","setextUnderline","42","43","48","49","50","51","52","53","54","55","56","57","62","91","60","61","95","96","126","92","93","classifyCharacter","movePoint","after","_open","_close","openingSequence","closingSequence","nextEvents","unicodePunctuation","unicodeWhitespace","asciiAtext","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","asciiPunctuation","decodeEntity","asciiHexDigit","_interopDefaultLegacy","decodeEntity__default","closingFenceConstruct","sizeOpen","closingSequenceEnd","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","indentedContentConstruct","afterPrefix","gap","tailExitIndex","headEnterIndex","labelAfter","titleConstruct","fenceOpenInside","headingBreak","htmlBlockNames","htmlRawNames","kind","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","continuationRawEndTag","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","declaration","commentStart","commentStartDash","comment","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","initialSize","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","atCarriageReturn","endPosition","lastIndex","emptyFunctionWithReset","resetWarningCache","visitWithParents","ast","listNode","selfClosingRe","simpleTagRe","currentParent","selfClosing","getSelfClosing","opening","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","indent","virtual","convert","factory","subresult","grandparents","toResult","Boolean","typeFactory","tests","checks","anyFactory","allFactory","allow","includes","ReactIs","renderer","nodeProps","getNodeProps","resolveChildren","childNode","isSimpleRenderer","sourcePosition","includeNodeIndex","parentChildCount","assignDefined","nodeKey","level","listItemLoose","listLoose","unwrapParagraphs","getListItemChildren","inline","columnAlignment","align","isHeader","isBlock","parsedChildren","mergeNodeChildren","attrs","table","protocols","uri","colon","protocol","supportsStringRender","SimpleRenderer","getCoreProps","break","blockquote","linkReference","imageReference","tableHead","tableBody","tableRow","tableCell","textAlign","coreProps","checkbox","readOnly","inlineCode","dangerous","virtualHtml","parsedHtml","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","chdir","dir","umask","version1","version2","v1","v2","hasPre","defaultResult","parsed","COERCERTL","arrayWithoutHoles","iterableToArray","nonIterableSpread","Yallist","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","LRUCache","stale","maxAge","noDisposeOnSet","updateAgeOnGet","thisp","walker","prev","forEachStep","hit","isStale","Entry","expiresAt","mL","allowStale","mA","lC","doUse","unshiftNode","removeNode","inserted","Node","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","deleteCount","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","maxSV","rangeObj","minSV","minver","setMin","compver","r1","r2","ranges","simplified","original","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_arr","_n","_d","_s","_i","simpleSubset","sub","dom","gtltComp","eqSet","higherGT","lowerLT","higher","lower","hasDomLT","hasDomGT","sawNonNull","OUTER","simpleSub","simpleDom","isSub","concatStyleSetsWithProps","allStyles","mergeStyleSets","mergeCssSets","classNameSet","concatenatedStyleSet","registrations","styleSetArea","css","DefaultFields","baseStyles","getProps","customizable","pure","_inCustomizerContext","_renderContent","additionalProps","_updateStyles","customizedStyles","_styles","_onSettingsChanged","__cachedInputs__","concatenatedStyles","__noStyleOverride__","_memoizedClassNames","RetVal","styleCalcCount","getClassNamesCount","currentMemoizedClassNames","useStaticStyles","disableCaching","_traverseMap","enableClassNameCacheFullWarning","trace","clear","_traverseEdge","_normalizeValue","inputs","SelectableOptionMenuItemType","mergeCss","styleArgs","initializeComponentRef","_onMount","_onUpdate","_onUnmount","_setComponentRef","componentRef","getId","resetIds","counter","findIndex","addElementAtIndex","itemToAdd","mergeAriaAttributeValues","mergedAttribute","ariaAttributes","getParent","allowVirtualParents","_virtual","getVirtualParent","findElementRecursive","matchFunction","elementContains","isContained","nextParent","getFirstFocusable","currentElement","includeElementsInFocusZones","getNextElement","getLastFocusable","getPreviousElement","checkNode","suppressParentTraversal","traverseChildren","allowFocusRoot","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","lastElementChild","isElementTabbable","childMatchSiblingMatch","previousElementSibling","childMatchParent","parentElement","childMatchParentMatch","siblingMatch","suppressChildTraversal","firstElementChild","visibilityAttribute","offsetHeight","offsetParent","isVisible","checkTabIndex","tabIndex","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","shouldWrapFocus","noWrapDataAttribute","attribute","elementMatch","testElement","elementContainsAttribute","targetToFocusOnNextRepaint","focusAsync","isMacResult","isMac","RectangleEdge","Position","isIOS","DirectionalHint","_timeoutIds","_immediateIds","_intervalIds","_animationFrameIds","_onErrorHandler","_noop","clearImmediate","clearInterval","duration","timeoutId","setImmediate","targetElement","immediateId","_logError","setInterval","intervalId","throttle","wait","lastResult","lastArgs","waitMS","leading","trailing","lastExecuteTime","userCall","getTime","waitLength","debounce","noOpFunction","flush","maxWait","lastCallTime","markExecuted","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","resultFunction","animationFrameId","animationFrameCallback","_scrollbarWidth","equals","rect","parseFloat","toFixed","_bodyScrollDisabledCount","DisabledScrollClassName","_disableIosBodyScroll","getScrollbarWidth","scrollDiv","offsetWidth","findScrollableParent","startingElement","computedStyles","getComputedStyle","overflowY","getPropertyValue","_createPositionData","targetEdge","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","difference","_alignEdges","_isEdgeInBounds","bounds","_adjustFitWithinBounds","bounding","positionData","directionalHintFixed","coverTarget","alignTargetEdge","elementEstimate","elementRectangle","directions","currentEstimate","currentEdge","currentAlignment","_estimatePosition","_flipToFit","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_alignOutOfBoundsEdges","outOfBoundsEdges","direction","_centerEdgeToPoint","elementToPosition","estimatedElementPosition","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","_calculateActualBeakWidthInPixels","beakWidth","sqrt","_getPositionData","directionalHint","directionalHintForRTL","previousPositions","positionInformation","getClosestEdge","targetCenter","boundingCenter","_positionElementWithinBounds","_finalizeBeakPosition","elementPosition","positionedBeak","actualElement","closestEdge","_positionBeak","targetRectangle","beakTargetPoint","elementBounds","beakPosition","_getRectangleFromElement","clientRect","getBoundingClientRect","_getRectangleFromIRect","_getMaxHeightFromTargetRectangle","gapSpace","_positionElementRelative","targetRect","_getTargetRect","_getAlignmentData","positionedElement","_finalizePositionData","hostElement","doNotFinalizeReturnEdge","elementEdgeString","_finalizeElementPosition","_positionCallout","callout","isBeakVisible","positionProps","innerWidth","innerHeight","finalizedBeakPosition","positionCard","_positionCard","_root","_disposables","_onKeyDown","onDismiss","_onFocus","_containsFocus","_onBlur","_async","needsVerticalScrollBar","_originalFocusedElement","currentWindow","currentActiveElement","doesElementContainFocus","_updateScrollBarAsync","shouldRestoreFocus","onRestoreFocus","originalElement","containsFocus","ariaLabelledBy","ariaDescribedBy","onKeyDown","_getScrollBar","rootHeight","firstChildHeight","defaultFocusRestorer","ANIMATIONS","BEAK_ORIGIN_POSITION","OFF_SCREEN_STYLE","ARIA_ROLE_ATTRIBUTES","_hostElement","_calloutElement","_hasListeners","dismiss","_dismissOnScroll","preventDismissOnScroll","positions","_dismissOnClickOrScroll","_dismissOnResize","preventDismissOnResize","_dismissOnLostFocus","preventDismissOnLostFocus","_setInitialFocus","setInitialFocus","_didSetInitialFocus","focusFirstChild","_onComponentDidMount","_addListeners","onLayerMounted","_updateAsyncPosition","_setHeightOffsetEveryFrame","_mouseDownOnPopup","_isMouseDownOnPopup","_mouseUpOnPopup","slideDirectionalClassName","calloutElementRect","heightOffset","_positionAttempts","_removeListeners","newProps","newState","shouldUpdateWhenHidden","_setTargetWindowAndElement","_getTarget","newTarget","_blockResetHeight","_maxHeight","finalHeight","_didPositionPropsChange","_bounds","_targetWindow","calloutWidth","calloutMaxWidth","hideOverflow","backgroundColor","calloutMaxHeight","onScroll","getContentMaxHeight","_getMaxHeight","contentMaxHeight","overflowYHidden","beakVisible","_classNames","overflowStyle","visibilityStyle","beak","_getBeakPosition","beakCurtain","calloutMain","onMouseDown","onMouseUp","isEventTargetOutsideCallout","_target","beakPostionStyle","_updatePosition","calloutElement","expectsTarget","currentProps","_getBounds","newPositions","positionCallout","_arePositionsEqual","onPositioned","currentBounds","targetWindow","segments","getWindowSegments","_getBoundsFromTargetWindow","minPagePadding","mouseTarget","elementTarget","pointTarget","boundingRectangle","getMaxHeight","newPosition","_comparePositions","oldPositions","oldPositionEdge","newPositionEdge","currentDoc","_setHeightOffsetTimer","calloutMainElem","scrollDiff","scrollHeight","oldProps","getBeakStyle","CalloutContent","borderRadius","borderWidth","borderStyle","overflowX","mergeSettings","oldSettings","newSettings","_isSettingsFunction","_settingsMergeWith","mergeScopedSettings","scopedSettingsFromProps","oldScopedSettings","newScopedSettings","_scopedSettingsMergeWith","_onCustomizationChange","contextTransform","parentContext","newContext","mergeCustomizations","inheritFont","bodyThemed","applyTheme","getFabricTheme","_rootElement","_removeClassNameFromBody","as","_getClassNames","divProps","contextDir","pageDir","componentDir","rootDir","needsTheme","renderedContent","Root","rootRef","_addClassNameToBody","applyThemeToBody","Fabric","dest","concatStyles","ComposedComponent","resultClass","_styleCache","_onSettingChanged","componentProps","mergedStyles","merged","_defaultHostSelector","_layersByHostId","_filteredEventProps","_rootRef","_createLayerElement","hostId","host","_getHost","_removeLayerElement","layerElement","virtualChild","virtualParent","oldParent","setVirtualParent","insertFirst","onLayerDidMount","registerLayer","eventBubblingEnabled","_getFilteredEvents","idx","unregisterLayer","onLayerWillUnmount","isNotHost","getElementById","defaultHostSelector","LayerBase","_onFilterEvent","Event","BUBBLING_PHASE","rootNoHost","layerProps","doNotLayer","portalContainsElement","methodNames","_makeSafe","_makeAllSafe","BaseComponent","_updateComponentRef","__disposables","disposable","__className","results","__async","__events","_resolveRef","refName","__resolves","_warnDeprecations","deprecationMap","_warnMutuallyExclusive","mutuallyExclusiveMap","_warnConditionallyRequiredProps","requiredProps","conditionalPropName","_skipComponentRefResolution","classMethod","prototypeMethod","nullRender","ContextualMenuItemType","FocusZoneDirection","FocusZoneTabbableElements","raiseClick","createNewEvent","focusZoneStyles","_allInstances","_outerZones","ALLOWED_INPUT_TYPES","_portalContainsElement","newActiveElement","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","onFocus","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","_isImmediateDescendantOfZone","maybeElementToFocus","_activeElement","initialElementFocused","_setFocusAlignment","_updateTabIndexes","_setParkedFocus","_onKeyDownCapture","zone","_onMouseDown","_setActiveElement","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","_getDocument","_isInnerZone","innerZone","_getFirstInnerZone","focusElement","_tryInvokeClickForFocusable","vertical","_preventDefaultWhenHandled","_moveFocusLeft","_moveFocusRight","horizontal","_moveFocusUp","_moveFocusDown","_moveFocusPaging","allowTabKey","handleTabKey","_isElementInput","focusChanged","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","_isContentEditableElement","_shouldInputLoseFocus","_getHorizontalDistanceFromCenter","isForward","activeRect","leftAlignment","_focusAlignment","targetRectTop","activeRectBottom","targetRectBottom","activeRectTop","getOuterZones","_windowElement","defaultActiveElement","shouldFocusOnMount","_lastIndexPath","preventFocusRestoration","elementToFocus","nextChild","getFocusableByIndexPath","_defaultFocusElement","rootProps","_evaluateFocusBeforeRender","onMouseDownCapture","forceIntoFirstElement","ownerZoneElement","_getOwnerZone","ownerZone","focusLast","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","focusedElement","getElementIndexPath","isParked","_isParked","_parkedTabIndex","forceAlignment","previousActiveElement","preventDefaultWhenHandled","shouldRaiseClicks","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","bidirectional","elementDistance","isCircularNavigation","targetTop","distance","shouldWrap","scrollableParent","targetBottom","pagesize","isHorizontal","isVertical","childIndex","isRangeSelected","inputValue","isReadonly","shouldInputLoseFocusOnArrowKey","checkForNoWrap","getIsChecked","canCheck","isChecked","hasSubmenu","subMenuProps","isItemDisabled","getMenuItemAriaRole","REACT_LIFECYCLE_EXCLUSIONS","ResponsiveMode","_updateComposedComponentRef","composedComponentInstance","_composedComponentInstance","_hoisted","exclusions","hoisted","hoistMethods","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","withResponsiveMode","_onResize","responsiveMode","getResponsiveMode","unknown","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissMenu","dismissAll","linkContentMenu","linkContent","onCheckmarkClick","isItemChecked","Icon","checkmarkIcon","hasIcons","iconProps","onRenderIcon","secondaryText","submenuIconProps","subMenuIcon","wrapper","alignItems","divider","MediumScreenSelector","getItemHighContrastStyles","MsHighContrastAdjust","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","cursor","rootDisabled","pointerEvents","rootHovered","rootFocused","rootChecked","rootPressed","rootExpanded","whiteSpace","anchorLink","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","textDecoration","verticalAlign","textOverflow","paddingLeft","minHeight","iconColor","iconDisabled","splitButtonFlexContainer","flexWrap","justifyContent","getSplitButtonVerticalDividerClassNames","isExpanded","splitMenu","expanded","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","primaryDisabled","background","splitPrimary","flexBasis","minWidth","splitContainer","getItemStyles","ContextualMenuItem","_onItemMouseEnter","onItemMouseEnter","_onItemClick","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubMenuId","getSubMenuId","_getSubmenuTarget","_anchor","_getMemoizedMenuButtonKeytipProps","keytipProps","hasMenu","onItemClick","focusableElementIndex","totalItemCount","hasCheckmarks","contextualMenuItemAs","expandedMenuItemKey","anchorRel","rel","subMenuId","itemHasSubmenu","itemProps","KeytipData","keytipAttributes","onMouseEnter","onMouseLeave","onMouseMove","ChildrenRenderer","_btn","onItemMouseDown","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","VerticalDivider","deprecatedGetClassNames","names","_executeItemClick","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","_processingTouch","_onTouchStart","_handleTouchAndPointerEvent","_onPointerDown","stopImmediatePropagation","splitButton","ariaDescription","onTouchStart","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","itemComponentProps","getDividerClassNames","buttonProps","onTap","_lastTouchTimeoutId","getContextualMenuItemClassNames","getSubmenuItems","LocalContextualMenu","_getMenuItemStylesFunction","_mounted","_tryFocusPreviousActiveElement","_previousActiveElement","_onRenderMenuList","menuListProps","defaultRender","indexCorrection","onKeyUp","_onKeyUp","menuItem","_renderMenuItem","itemType","Divider","Header","indexIncrease","customOnRenderListLength","itemClassNames","renderedItems","getItemClassNames","subMenuIconClassName","itemStyleProps","_renderSeparator","headerItem","_renderHeaderMenuItem","_renderListItem","Section","_renderSectionItem","_renderNormalItem","_defaultMenuItemRenderer","_lastKeyDownWasAltOrMeta","_isAltOrMeta","dismissAllMenus","_keyHandler","_shouldHandleKeyDown","_shouldCloseSubMenu","_onMenuFocusCapture","delayUpdateFocusOnHover","_shouldUpdateFocusOnMouseEvent","_shouldHandleKeyUp","keyPressIsAltOrMetaAlone","shouldHandleKey","handled","_focusingPreviousElement","submenuCloseKey","isSubMenu","_adjustedFocusZoneProps","_onMenuKeyDown","_host","hasModifier","isUp","isDown","_onScroll","_isScrollIdle","_scrollIdleTimeoutId","_onItemMouseEnterBase","_shouldIgnoreMouseEvent","_updateFocusOnMouseEvent","_onItemMouseMoveBase","_gotMouseMove","_enterTimerId","_onMouseItemLeave","setActive","_onItemMouseDown","_onItemClickBase","_cancelSubMenuTimer","expandedByMouseClick","_onItemSubMenuExpand","_onAnchorClick","openKey","_onSubMenuDismiss","dismissedMenuItemKey","_onPointerAndTouchEvent","contextualMenuItems","_isHidden","_onMenuClosed","_onMenuOpened","onMenuDismissed","labelElementId","useTargetWidth","useTargetAsMinWidth","shouldFocusOnContainer","calloutProps","onRenderSubMenu","onRenderMenuList","focusZoneProps","getMenuClassNames","itemsHaveIcons","sectionProps","_getFocusZoneDirection","contextMenuStyle","submenuItem","canAnyMenuItemsCheck","submenuProps","_getSubmenuProps","targetAsHtmlElement","targetWidth","calloutStyles","onFocusCapture","defaultMenuItemRenderer","_onRenderSubMenu","onMenuOpened","sectionItem","menuClassNames","groupProps","headerContextualMenuItem","topDivider","contextualMenuItem","itemsIndex","bottomDivider","fromSection","onRender","_renderAnchorMenuItem","_renderSplitButton","_renderButtonItem","divHtmlProperties","header","subMenuHoverDelay","timeoutDuration","_findItemByKey","_findItemByKeyFromItems","ContextualMenuBase","isopen","PanelType","ContextualMenu","listStyleType","userSelect","paddingRight","paddingBottom","paddingTop","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","flexContainer","textContainer","iconExpanded","iconChecked","labelChecked","labelDisabled","menuIconChecked","menuIconDisabled","menuIconExpanded","description","descriptionChecked","descriptionDisabled","screenReaderText","splitButtonMenuButton","splitButtonMenuButtonExpanded","splitButtonMenuButtonDisabled","splitButtonMenuButtonChecked","splitButtonContainer","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonMenuIcon","splitButtonMenuIconDisabled","splitButtonDivider","splitButtonDividerDisabled","_buttonElement","_splitButtonContainer","_renderedVisibleMenu","_onRenderIcon","_onRenderTextContents","onRenderText","onRenderDescription","_onRenderText","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","_ariaDescriptionId","_onRenderMenuIcon","menuIconProps","_onRenderMenu","menuProps","persistMenu","menuHidden","MenuType","menuAs","_menuShouldFocusOnContainer","_menuShouldFocusOnMount","_isSplitButton","_onDismissMenu","_dismissMenu","_openMenu","_onToggleMenu","_onSplitContainerFocusCapture","_onSplitButtonPrimaryClick","_onMenuClick","_onKeyPress","onKeyPress","_onMouseUp","_onClick","_onSplitButtonContainerKeyDown","click","_isValidMenuOpenKey","onMenuClick","ariaHidden","allowDisabledFocus","toggle","isPrimaryButtonDisabled","renderAsAnchor","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","_onRenderSplitButtonContent","_onRenderContent","onPointerUp","onAfterMenuDismiss","openMenu","onRenderAriaDescription","onRenderChildren","onRenderMenu","onRenderMenuIcon","Button","_shouldRenderMenu","Content","renderPersistedMenuHiddenOnMount","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","SplitButton","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","BaseButton","menuTriggerKeyCode","baseClassName","noOutline","iconStyle","buttonHighContrastFocus","customStyles","baseButtonStyles","actionButtonStyles","CommandButton","ActionButton","_size","updateOptions","displayOnlyOptionsCache","_displayOnlyOptionsCache","positionInSet","required","RootType","Label","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","wordWrap","overflowWrap","splitButtonDividerBaseStyles","splitButtonStyles","borderTopRightRadius","borderBottomRightRadius","borderRight","borderLeft","marginLeft","marginTop","marginRight","marginBottom","iconButtonStyles","IconButton","allowTouchBodyScroll","_allowTouchBodyScroll","passive","disableBodyScroll","enableBodyScroll","isDark","isDarkThemed","rootDark","Overlay","_firstBumper","_lastBumper","_hasFocus","_onRootFocus","_onRootBlur","onBlur","_onFirstBumperFocus","_onBumperFocus","_onLastBumperFocus","isFirstBumper","currentBumper","nextFocusable","getFirstTabbable","_isBumper","_onFocusCapture","_previouslyFocusedElementInTrapZone","_forceFocusInTrap","FocusTrapZone","_focusStack","_forceClickInTrap","clickedElement","_bringFocusIntoZone","_updateEventHandlers","elementToFocusOnDismiss","_previouslyFocusedElementOutsideTrapZone","prevForceFocusInsideTrap","forceFocusInsideTrap","newForceFocusInsideTrap","prevDisabled","newDisabled","_returnFocusToInitiator","_disposeClickHandler","_disposeFocusHandler","bumperProps","focusPreviouslyFocusedInnerElement","firstFocusableSelector","_focusAsync","focusSelector","_firstFocusableChild","disableFirstFocus","ignoreExternalFocusing","isClickableOutsideFocusTrap","PanelVisibilityState","_panel","_animationCallback","_hasCustomNavigation","onRenderNavigation","onRenderNavigationContent","_allowScrollOnPanel","elt","allowOverscrollOnElement","_previousClientY","_element","allowScrollOnElement","_scrollableContent","_onRenderNavigation","hasCloseButton","navigation","_onRenderNavigationContent","closeButtonAriaLabel","onRenderHeader","closeButton","_onRenderHeader","_headerTextId","_onPanelClick","headerTextId","headerText","headerTextProps","_onRenderBody","_onRenderFooter","onRenderFooterContent","footer","footerInner","_animateTo","newVisibilityState","onOpen","_onTransitionComplete","_clearExistingAnimationTimer","_updateFooterPosition","onOpened","closed","onDismissed","isFooterSticky","isOpen","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","commands","contentInner","scrollableContent","panel","onOuterClick","smallFixedFar","smallFluid","largeFixed","extraLarge","panelWidth","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","sharedPaddingStyles","Panel","isCustomPanel","flexDirection","WebkitOverflowScrolling","alignSelf","wordBreak","hyphens","borderTop","borderTopColor","getAllSelectedOptions","selectedIndices","selectedOptions","option","_focusZone","_dropDown","_scrollIdleDelay","_sizePosCache","_requestAnimationFrame","activeTimeouts","_onChange","multiSelect","onChanged","changedOpt","_onRenderTitle","multiSelectDelimiter","displayTxt","_onRenderPlaceholder","_placeholder","_onRenderContainer","panelProps","dropdownWidth","isSmall","panelStyles","_onDismiss","_renderFocusableList","_onPositioned","_onRenderCaretDown","caretDown","_onRenderList","onRenderItem","renderedList","emptyQueue","newGroup","_onRenderItem","placeRenderedOptionIntoQueue","_renderHeader","_renderOption","onRenderOption","isItemSelected","dropdownItemHidden","dropdownItemSelectedAndDisabled","dropdownItemSelected","dropdownItemDisabled","dropdownItem","multiSelectItemStyles","multiSelectItem","Checkbox","_listId","inputProps","onRenderLabel","_onRenderItemLabel","ariaPositionInSet","ariaSetSize","optionSetSize","_onRenderOption","dropdownOptionText","calloutRenderEdge","setSelectedIndex","_onDropdownBlur","_isDisabled","hasFocus","_onDropdownKeyDown","newIndex","selectedIndex","containsExpandCollapseModifier","_moveIndex","_onDropdownKeyUp","_onZoneKeyDown","_onZoneKeyUp","_onDropdownClick","_shouldOpenOnFocus","_isFocusedByClick","_onDropdownMouseDown","_onRenderLabel","labelStyles","selectedKey","selectedKeys","defaultSelectedKey","defaultSelectedKeys","_optionId","_getSelectedIndexes","selectedKeyProp","didOptionsChange","errorMessage","onRenderTitle","onRenderContainer","onRenderCaretDown","onRenderPlaceholder","onRenderPlaceHolder","errorMessageId","ariaActiveDescendant","ariaAttrs","childRole","ariaPosInSet","ariaSelected","propStyles","hasError","hasLabel","isRenderingPlaceholder","panelClassName","calloutClassName","hasErrorMessage","dropdown","caretDownWrapper","shouldOpenOnFocus","notifyOnReselect","newIndexes","_copyArray","placeHolder","newArray","stepValue","stepCounter","onRenderList","dropdownItemsWrapper","dropdownItems","dropdownDivider","dropdownItemHeader","_getAllSelectedIndices","_getSelectedIndex","isSelected","openOnKeyboardFocus","DropdownBase","titleIsPlaceHolder","titleHasError","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","MinimumScreenSelector","Dropdown","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","borderColorError","dropdownItemStyle","selectedItemBackgroundColor","itemSelectors","titleOpenBorderRadius","calloutOpenBorderRadius","DROPDOWN_HEIGHT","KeytipEvents","KEYTIP_ADDED","KEYTIP_REMOVED","KEYTIP_UPDATED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","ENTER_KEYTIP_MODE","EXIT_KEYTIP_MODE","keytips","persistedKeytips","sequenceMapping","inKeytipMode","shouldEnterKeytipMode","delayUpdatingKeytipChange","_instance","init","persisted","addParentOverflow","keySequences","uniqueKeytip","_getUniqueKtp","uniqueID","keytip","update","newKeytipProps","oldKeyTip","visible","unregister","keytipToRemove","enterKeytipMode","exitKeytipMode","getKeytips","fullSequence","parentKeytip","overflowSetSequence","menuExecute","overflowButtonSequences","keytipSequences","KeytipManager","sequencesToID","prevValue","keySequence","_keytipManager","_getKtpProps","nativeKeytipProps","_getKtpAttrs","describedByPrepend","describedby","getAriaDescribedBy","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","mergeOverflows","ktpId","IconType","onImageLoadingStateChange","imageLoadError","imageErrorAs","iconType","ImageType","_checkBox","isIndeterminate","indeterminate","defaultIndeterminate","stateUpdate","boxSide","checkmarkIconProps","reversed","isUsingCustomLabelRender","htmlFor","checkmark","checkmarkFontColor","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","checkboxBorderColorChecked","checkboxBorderColorDisabled","checkboxBorderHoveredColor","checkboxBorderIndeterminateHoveredColor","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","indeterminateDotStyles","transitionProperty","transitionDuration","transitionTimingFunction","outlineOffset","_link","isButton","_getRootType","_adjustPropsForRootType","restProps","linkColor","linkInteractedColor","linkDisabledColor","focusBorderColor","borderBottom","DirectionalKeyCodes","mountCounters","setMountCounters","currValue","FocusRects","disableFocusRects","useFocusRects"],"mappings":"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ACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBA0FWqwC,GAlDkBD,EAAsBpwC,OAAO,CAC1D,SAQ6BowC,EAAsBpwC,OAAO,CAC1D,SACA,OACA,QACA,UACA,MACA,UAQ6CA,OAAO,CACpD,WAQ0BowC,EAAsBpwC,OAAO,CACvD,UAQ0BowC,EAAsBpwC,OAAO,CACvD,UAQ8BowC,EAAsBpwC,OAAO,CAC3D,WACA,OACA,WACA,QACA,MACA,SACA,UAQWswC,EAAmBF,EAAsBpwC,OAAO,CAC3D,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,UA4JWuwC,GApJkBD,EAAiBtwC,OAAO,CACrD,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,MACA,YACA,MACA,WACA,UACA,cACA,WACA,WACA,MACA,OACA,OACA,OACA,QACA,UAQgCswC,EAAiBtwC,OAAO,CACxD,iBACA,OACA,UACA,OACA,YACA,cACA,WACA,WACA,OACA,SAQ8BswC,EAAiBtwC,OAAO,CACtD,OACA,WACA,aAG8BowC,EAAsBpwC,OAAO,CAC3D,WACA,UAQ6BowC,EAAsBpwC,OAAO,CAC1D,cACA,gBAe0BowC,EAAsBpwC,OAAO,CACvD,UACA,UAQ0BowC,EAAsBpwC,OAAO,CACvD,UACA,UACA,UACA,UAGgCowC,EAAsBpwC,OAAO,CAC7D,SAG2BowC,EAAsBpwC,OAAO,CACxD,SAQ4BowC,EAAsBpwC,OAAO,CACzD,gBACA,SACA,UACA,UACA,SACA,aACA,WAQ8BowC,EAAsBpwC,OAAO,CAC3D,QACA,kBACA,sBACA,oBACA,MACA,SACA,aACA,iBACA,UACA,MAC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","file":"static/js/2.95818651.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 __exportStar(m, exports) {\r\n for (var p in m) if (!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","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline: { [key: string]: {} }): string {\n const stylesheet = Stylesheet.getInstance();\n const name = stylesheet.getClassName();\n\n const rulesArray: string[] = [];\n\n for (const prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n const rules = rulesArray.join('');\n\n stylesheet.insertRule(`@keyframes ${name}{${rules}}`, true);\n\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n\n return name;\n}\n","import { IAnimationStyles, IAnimationVariables } from '../interfaces/index';\nimport { IRawStyle, keyframes } from '@uifabric/merge-styles';\n\n/* Register the keyframes */\n\nconst EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nconst EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nconst DURATION_1 = '0.167s';\nconst DURATION_2 = '0.267s';\nconst DURATION_3 = '0.367s';\nconst DURATION_4 = '0.467s';\n\nconst FADE_IN: string = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\n\nconst FADE_OUT: string = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\n\nconst SLIDE_RIGHT_IN10: string = _createSlideInX(-10);\nconst SLIDE_RIGHT_IN20: string = _createSlideInX(-20);\nconst SLIDE_RIGHT_IN40: string = _createSlideInX(-40);\nconst SLIDE_RIGHT_IN400: string = _createSlideInX(-400);\nconst SLIDE_LEFT_IN10: string = _createSlideInX(10);\nconst SLIDE_LEFT_IN20: string = _createSlideInX(20);\nconst SLIDE_LEFT_IN40: string = _createSlideInX(40);\nconst SLIDE_LEFT_IN400: string = _createSlideInX(400);\nconst SLIDE_UP_IN10: string = _createSlideInY(10);\nconst SLIDE_UP_IN20: string = _createSlideInY(20);\nconst SLIDE_DOWN_IN10: string = _createSlideInY(-10);\nconst SLIDE_DOWN_IN20: string = _createSlideInY(-20);\n\nconst SLIDE_RIGHT_OUT10: string = _createSlideOutX(10);\nconst SLIDE_RIGHT_OUT20: string = _createSlideOutX(20);\nconst SLIDE_RIGHT_OUT40: string = _createSlideOutX(40);\nconst SLIDE_RIGHT_OUT400: string = _createSlideOutX(400);\nconst SLIDE_LEFT_OUT10: string = _createSlideOutX(-10);\nconst SLIDE_LEFT_OUT20: string = _createSlideOutX(-20);\nconst SLIDE_LEFT_OUT40: string = _createSlideOutX(-40);\nconst SLIDE_LEFT_OUT400: string = _createSlideOutX(-400);\nconst SLIDE_UP_OUT10: string = _createSlideOutY(-10);\nconst SLIDE_UP_OUT20: string = _createSlideOutY(-20);\nconst SLIDE_DOWN_OUT10: string = _createSlideOutY(10);\nconst SLIDE_DOWN_OUT20: string = _createSlideOutY(20);\n\nconst SCALE_UP100: string = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\n\nconst SCALE_DOWN98: string = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\n\nconst SCALE_DOWN100: string = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\n\nconst SCALE_UP103: string = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\n\nconst ROTATE90: string = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\n\nconst ROTATE_N90: string = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport const AnimationVariables: IAnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport const AnimationStyles: IAnimationStyles = {\n slideRightIn10: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN40}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN400}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN40}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN400}`, DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(`${FADE_IN},${SLIDE_UP_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(`${FADE_IN},${SLIDE_UP_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(`${FADE_IN},${SLIDE_DOWN_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(`${FADE_IN},${SLIDE_DOWN_IN20}`, DURATION_3, EASING_FUNCTION_1),\n\n slideRightOut10: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT40}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT400}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT40}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT400}`, DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(`${FADE_OUT},${SLIDE_UP_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(`${FADE_OUT},${SLIDE_UP_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(`${FADE_OUT},${SLIDE_DOWN_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(`${FADE_OUT},${SLIDE_DOWN_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n\n scaleUpIn100: _createAnimation(`${FADE_IN},${SCALE_UP100}`, DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(`${FADE_IN},${SCALE_DOWN100}`, DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(`${FADE_OUT},${SCALE_UP103}`, DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(`${FADE_OUT},${SCALE_DOWN98}`, DURATION_1, EASING_FUNCTION_2),\n\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n\n // expandCollapse 100/200/400, delay 100/200\n};\n\nfunction _createAnimation(\n animationName: string,\n animationDuration: string,\n animationTimingFunction: string,\n): IRawStyle {\n return {\n animationName,\n animationDuration,\n animationTimingFunction,\n animationFillMode: 'both',\n };\n}\n\nfunction _createSlideInX(fromX: number): string {\n return keyframes({\n from: { transform: `translate3d(${fromX}px,0,0)` },\n to: { transform: `translate3d(0,0,0)` },\n });\n}\n\nfunction _createSlideInY(fromY: number): string {\n return keyframes({\n from: { transform: `translate3d(0,${fromY}px,0)` },\n to: { transform: `translate3d(0,0,0)` },\n });\n}\n\nfunction _createSlideOutX(toX: number): string {\n return keyframes({\n from: { transform: `translate3d(0,0,0)` },\n to: { transform: `translate3d(${toX}px,0,0)` },\n });\n}\n\nfunction _createSlideOutY(toY: number): string {\n return keyframes({\n from: { transform: `translate3d(0,0,0)` },\n to: { transform: `translate3d(0,${toY}px,0)` },\n });\n}\n","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\nimport { IAnimationStyles } from '../interfaces/index';\n\n/**\n * {@docCategory AnimationClassNames}\n */\nexport const AnimationClassNames: { [key in keyof IAnimationStyles]?: string } = buildClassMap(AnimationStyles);\n","import { IRawStyle, IFontWeight } from '@uifabric/merge-styles';\nimport { IFontStyles } from '../interfaces/index';\n\n// Fallback fonts, if specified system or web fonts are unavailable.\nconst FontFamilyFallbacks = `'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif`;\n\n// Font face names to be registered.\nexport namespace LocalizedFontNames {\n export const Arabic = 'Segoe UI Web (Arabic)';\n export const Cyrillic = 'Segoe UI Web (Cyrillic)';\n export const EastEuropean = 'Segoe UI Web (East European)';\n export const Greek = 'Segoe UI Web (Greek)';\n export const Hebrew = 'Segoe UI Web (Hebrew)';\n export const Thai = 'Leelawadee UI Web';\n export const Vietnamese = 'Segoe UI Web (Vietnamese)';\n export const WestEuropean = 'Segoe UI Web (West European)';\n export const Selawik = 'Selawik Web';\n export const Armenian = 'Segoe UI Web (Armenian)';\n export const Georgian = 'Segoe UI Web (Georgian)';\n}\n\n// Font families with fallbacks, for the general regions.\nexport namespace LocalizedFontFamilies {\n export const Arabic = `'${LocalizedFontNames.Arabic}'`;\n export const ChineseSimplified = `'Microsoft Yahei UI', Verdana, Simsun`;\n export const ChineseTraditional = `'Microsoft Jhenghei UI', Pmingliu`;\n export const Cyrillic = `'${LocalizedFontNames.Cyrillic}'`;\n export const EastEuropean = `'${LocalizedFontNames.EastEuropean}'`;\n export const Greek = `'${LocalizedFontNames.Greek}'`;\n export const Hebrew = `'${LocalizedFontNames.Hebrew}'`;\n export const Hindi = `'Nirmala UI'`;\n export const Japanese = `'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka`;\n export const Korean = `'Malgun Gothic', Gulim`;\n export const Selawik = `'${LocalizedFontNames.Selawik}'`;\n export const Thai = `'Leelawadee UI Web', 'Kmer UI'`;\n export const Vietnamese = `'${LocalizedFontNames.Vietnamese}'`;\n export const WestEuropean = `'${LocalizedFontNames.WestEuropean}'`;\n export const Armenian = `'${LocalizedFontNames.Armenian}'`;\n export const Georgian = `'${LocalizedFontNames.Georgian}'`;\n}\n\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nconst defaultFontFamily = `'Segoe UI', '${LocalizedFontNames.WestEuropean}'`;\n\n// Mapping of language prefix to to font family.\nconst LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\n\n// Standard font sizes.\nexport namespace FontSizes {\n export const mini: string = '10px';\n export const xSmall: string = '10px';\n export const small: string = '12px';\n export const smallPlus: string = '12px';\n export const medium: string = '14px';\n export const mediumPlus: string = '16px';\n export const icon: string = '16px';\n export const large: string = '18px';\n export const xLarge: string = '20px';\n export const xLargePlus: string = '24px';\n export const xxLarge: string = '28px';\n export const xxLargePlus: string = '32px';\n export const superLarge: string = '42px';\n export const mega: string = '68px';\n}\n\n// Standard font weights.\nexport namespace FontWeights {\n export const light: IFontWeight = 100;\n export const semilight: IFontWeight = 300;\n export const regular: IFontWeight = 400;\n export const semibold: IFontWeight = 600;\n export const bold: IFontWeight = 700;\n}\n\n// Standard Icon Sizes.\nexport namespace IconFontSizes {\n export const xSmall: string = '10px';\n export const small: string = '12px';\n export const medium: string = '16px';\n export const large: string = '20px';\n}\n\nfunction _fontFamilyWithFallbacks(fontFamily: string): string {\n return `${fontFamily}, ${FontFamilyFallbacks}`;\n}\n\nexport function createFontStyles(localeCode: string | null): IFontStyles {\n const localizedFont = _getLocalizedFontFamily(localeCode);\n let fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n\n const fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n\n return fontStyles;\n}\n\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language: string | null): string {\n for (let lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // tslint:disable-next-line:no-any\n return (LanguageToFontMap as any)[lang];\n }\n }\n\n return defaultFontFamily;\n}\n\nfunction _createFont(size: string, weight: IFontWeight, fontFamily: string): IRawStyle {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\n","import { mergeStyles } from '../MergeStyles';\n\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles: T): { [key in keyof T]?: string } {\n let classes: { [key in keyof T]?: string } = {};\n\n for (let styleName in styles) {\n if (styles.hasOwnProperty(styleName)) {\n let className: string;\n\n Object.defineProperty(classes, styleName, {\n get: (): string => {\n if (className === undefined) {\n // tslint:disable-next-line:no-any\n className = mergeStyles(styles[styleName] as any).toString();\n }\n return className;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n return classes;\n}\n","import { IRawStyle } from '../MergeStyles';\n\nexport const HighContrastSelector = '@media screen and (-ms-high-contrast: active)';\nexport const HighContrastSelectorWhite = '@media screen and (-ms-high-contrast: black-on-white)';\nexport const HighContrastSelectorBlack = '@media screen and (-ms-high-contrast: white-on-black)';\nexport const EdgeChromiumHighContrastSelector =\n '@media screen and (-ms-high-contrast: active) and (forced-colors: active)';\n\nexport const ScreenWidthMinSmall = 320;\nexport const ScreenWidthMinMedium = 480;\nexport const ScreenWidthMinLarge = 640;\nexport const ScreenWidthMinXLarge = 1024;\nexport const ScreenWidthMinXXLarge = 1366;\nexport const ScreenWidthMinXXXLarge = 1920;\nexport const ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport const ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport const ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport const ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport const ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\n\nexport const ScreenWidthMinUhfMobile = 768;\n\nexport function getScreenSelector(min: number, max: number): string {\n return `@media only screen and (min-width: ${min}px) and (max-width: ${max}px)`;\n}\n\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n */\nexport function getEdgeChromiumNoHighContrastAdjustSelector(): { [EdgeChromiumHighContrastSelector]: IRawStyle } {\n return {\n [EdgeChromiumHighContrastSelector]: {\n forcedColorAdjust: 'none',\n },\n };\n}\n","export namespace ZIndexes {\n export const Nav: number = 1;\n /**\n * @deprecated ScrollablePane\n */\n export const ScrollablePane: number = 1;\n export const FocusStyle: number = 1;\n export const Coachmark: number = 1000;\n export const Layer: number = 1000000;\n export const KeytipLayer: number = 1000001;\n}\n","import { IRawStyle } from '@uifabric/merge-styles';\nimport { IGetFocusStylesOptions, ITheme } from '../interfaces/index';\nimport { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@uifabric/utilities';\nimport { ZIndexes } from './zIndexes';\n\n/**\n * Generates a focus style which can be used to define an :after focus border.\n *\n * @param theme - The theme object to use.\n * @param options - Options to customize the focus border.\n * @returns The style object.\n */\nexport function getFocusStyle(theme: ITheme, options?: IGetFocusStylesOptions): IRawStyle;\n/**\n * Generates a focus style which can be used to define an :after focus border.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border.\n * @param position - The positioning applied to the container. Must\n * be 'relative' or 'absolute' so that the focus border can live around it.\n * @param highContrastStyle - Style for high contrast mode.\n * @param borderColor - Color of the border.\n * @param outlineColor - Color of the outline.\n * @param isFocusedOnly - If the styles should apply on focus or not.\n * @returns The style object.\n * @deprecated Use the object parameter version instead.\n */\nexport function getFocusStyle(\n theme: ITheme,\n inset?: number,\n position?: 'relative' | 'absolute',\n highContrastStyle?: IRawStyle | undefined,\n borderColor?: string,\n outlineColor?: string,\n isFocusedOnly?: boolean,\n): IRawStyle;\nexport function getFocusStyle(\n theme: ITheme,\n insetOrOptions?: number | IGetFocusStylesOptions,\n position?: 'relative' | 'absolute',\n highContrastStyle?: IRawStyle,\n borderColor?: string,\n outlineColor?: string,\n isFocusedOnly?: boolean,\n): IRawStyle {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position,\n highContrastStyle,\n borderColor,\n outlineColor,\n isFocusedOnly,\n });\n } else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\n\nfunction _getFocusStyleInternal(theme: ITheme, options: IGetFocusStylesOptions = {}): IRawStyle {\n const {\n inset = 0,\n width = 1,\n position = 'relative',\n highContrastStyle,\n borderColor = theme.palette.white,\n outlineColor = theme.palette.neutralSecondary,\n isFocusedOnly = true,\n } = options;\n\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position,\n\n selectors: {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n },\n\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n [`.${IsFocusVisibleClassName} &${isFocusedOnly ? ':focus' : ''}:after`]: {\n content: '\"\"',\n position: 'absolute',\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: `${width}px solid ${borderColor}`,\n outline: `${width}px solid ${outlineColor}`,\n zIndex: ZIndexes.FocusStyle,\n selectors: {\n [HighContrastSelector]: highContrastStyle,\n },\n },\n },\n };\n}\n\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear(): IRawStyle {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme: ITheme, inset: number = 0, width: number = 1, color?: string): IRawStyle {\n return {\n selectors: {\n [`:global(${IsFocusVisibleClassName}) &:focus`]: {\n outline: `${width} solid ${color || theme.palette.neutralSecondary}`,\n outlineOffset: `${-inset}px`,\n },\n },\n };\n}\n\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport const getInputFocusStyle = (\n borderColor: string,\n borderRadius: string | number,\n borderType: 'border' | 'borderBottom' = 'border',\n borderPosition: number = -1,\n): IRawStyle => {\n const isBorderBottom = borderType === 'borderBottom';\n\n return {\n borderColor,\n selectors: {\n ':after': {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition,\n [borderType]: `2px solid ${borderColor}`,\n borderRadius,\n width: borderType === 'borderBottom' ? '100%' : undefined,\n selectors: {\n [HighContrastSelector]: {\n [borderType === 'border' ? 'borderColor' : 'borderBottomColor']: 'Highlight',\n },\n },\n },\n },\n };\n};\n","import { IRawStyle } from '@uifabric/merge-styles';\n\nexport const hiddenContentStyle: IRawStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n};\n","import { ITheme } from '../interfaces/index';\nimport { Stylesheet } from '@uifabric/merge-styles';\nimport { memoizeFunction } from '@uifabric/utilities';\n\nexport type GlobalClassNames = Record;\n\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nconst _getGlobalClassNames = memoizeFunction(\n (classNames: GlobalClassNames, disableGlobalClassNames?: boolean): GlobalClassNames => {\n const styleSheet = Stylesheet.getInstance();\n\n if (disableGlobalClassNames) {\n // disable global classnames\n return (Object.keys(classNames) as (keyof T)[]).reduce((acc, className) => {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {} as GlobalClassNames);\n }\n\n // use global classnames\n return classNames;\n },\n);\n\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(\n classNames: GlobalClassNames,\n theme: ITheme,\n disableGlobalClassNames?: boolean,\n): GlobalClassNames {\n return _getGlobalClassNames(\n classNames,\n disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames,\n );\n}\n","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target: Partial, ...args: (Partial | null | undefined | false)[]): T {\n for (const arg of args) {\n _merge(target || {}, arg as Partial);\n }\n\n return target as T;\n}\n\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// tslint:disable-next-line:no-any\nfunction _merge(target: T, source: T, circularReferences: any[] = []): T {\n circularReferences.push(source);\n\n for (let name in source) {\n if (source.hasOwnProperty(name)) {\n if (name !== '__proto__' && name !== 'constructor' && name !== 'prototype') {\n const value: T[Extract] = source[name];\n if (typeof value === 'object' && value !== null) {\n const isCircularReference = circularReferences.indexOf(value) > -1;\n target[name] = (isCircularReference\n ? value\n : _merge(target[name] || {}, value, circularReferences)) as T[Extract];\n } else {\n target[name] = value;\n }\n }\n }\n }\n\n circularReferences.pop();\n\n return target;\n}\n","import { IFontFace } from './IRawStyleBase';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n\n/**\n * Registers a font face.\n * @public\n */\nexport function fontFace(font: IFontFace): void {\n Stylesheet.getInstance().insertRule(`@font-face{${serializeRuleEntries(getStyleOptions(), font as {})}}`, true);\n}\n","import { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './localStorage';\n\n// Default to undefined so that we initialize on first read.\nlet _language: string | null;\n\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n *\n * @public\n */\nexport function getLanguage(): string | null {\n if (_language === undefined) {\n let doc = getDocument();\n const savedLanguage = getItem('language');\n\n if (savedLanguage !== null) {\n _language = savedLanguage;\n }\n\n if (_language === undefined && doc) {\n _language = doc.documentElement.getAttribute('lang');\n }\n\n if (_language === undefined) {\n _language = 'en';\n }\n }\n\n return _language;\n}\n\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n *\n * @public\n */\nexport function setLanguage(language: string, avoidPersisting: boolean = false): void {\n let doc = getDocument();\n\n if (doc) {\n doc.documentElement.setAttribute('lang', language);\n }\n\n if (!avoidPersisting) {\n setItem('language', language);\n }\n\n _language = language;\n}\n","import { fontFace, IFontWeight } from '@uifabric/merge-styles';\nimport { IFontStyles } from '../interfaces/index';\nimport { createFontStyles, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './fonts';\nimport { getLanguage, getWindow } from '@uifabric/utilities';\nimport { IFabricConfig } from '../interfaces/IFabricConfig';\n\n// Default urls.\nconst DefaultBaseUrl = 'https://static2.sharepointonline.com/files/fabric/assets';\n\n// Standard font styling.\nexport const DefaultFontStyles: IFontStyles = createFontStyles(getLanguage());\n\nfunction _registerFontFace(fontFamily: string, url: string, fontWeight?: IFontWeight, localFontName?: string): void {\n fontFamily = `'${fontFamily}'`;\n\n const localFontSrc = localFontName !== undefined ? `local('${localFontName}'),` : '';\n\n fontFace({\n fontFamily,\n src: localFontSrc + `url('${url}.woff2') format('woff2'),` + `url('${url}.woff') format('woff')`,\n fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\n\nfunction _registerFontFaceSet(\n baseUrl: string,\n fontFamily: string,\n cdnFolder: string,\n cdnFontName: string = 'segoeui',\n localFontName?: string,\n): void {\n const urlBase = `${baseUrl}/${cdnFolder}/${cdnFontName}`;\n\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(\n fontFamily,\n urlBase + '-semilight',\n FontWeights.semilight,\n localFontName && localFontName + ' SemiLight',\n );\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(\n fontFamily,\n urlBase + '-semibold',\n FontWeights.semibold,\n localFontName && localFontName + ' SemiBold',\n );\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\n\nexport function registerDefaultFontFaces(baseUrl: string): void {\n if (baseUrl) {\n const fontUrl = `${baseUrl}/fonts`;\n\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', `${fontUrl}/leelawadeeui-thai/leelawadeeui-semilight`, FontWeights.light);\n\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', `${fontUrl}/leelawadeeui-thai/leelawadeeui-bold`, FontWeights.semibold);\n }\n}\n\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl(): string {\n // tslint:disable-next-line:no-any\n const fabricConfig: IFabricConfig | undefined = (getWindow() as any)?.FabricConfig;\n\n return fabricConfig?.fontBaseUrl ?? DefaultBaseUrl;\n}\n\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n","import { getWindow } from './dom/getWindow';\n\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key: string): string | null {\n let result = null;\n try {\n const win = getWindow();\n result = win ? win.localStorage.getItem(key) : null;\n } catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key: string, data: string): void {\n try {\n const win = getWindow();\n\n win && win.localStorage.setItem(key, data);\n } catch (e) {\n /* Eat the exception */\n }\n}\n","import { IPalette } from '../interfaces/index';\n\n// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport const DefaultPalette: IPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n","import { ISpacing } from '../interfaces/index';\n\nexport const DefaultSpacing: ISpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n","import { IEffects } from '../interfaces/index';\n\nexport const DefaultEffects: IEffects = {\n elevation4: '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)',\n elevation8: '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)',\n elevation16: '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)',\n elevation64: '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)',\n\n roundedCorner2: '2px',\n};\n","import { Customizations, merge, getWindow } from '@uifabric/utilities';\nimport { IPalette, ISemanticColors, ITheme, IPartialTheme, IFontStyles } from '../interfaces/index';\nimport { DefaultFontStyles } from './DefaultFontStyles';\nimport { DefaultPalette } from './DefaultPalette';\nimport { DefaultSpacing } from './DefaultSpacing';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { DefaultEffects } from './DefaultEffects';\nimport { IRawStyle } from '@uifabric/merge-styles';\n\nlet _theme: ITheme = createTheme({\n palette: DefaultPalette,\n semanticColors: _makeSemanticColorsFromPalette(DefaultPalette, false, false),\n fonts: DefaultFontStyles,\n isInverted: false,\n disableGlobalClassNames: false,\n});\nlet _onThemeChangeCallbacks: Array<(theme: ITheme) => void> = [];\n\nexport const ThemeSettingName = 'theme';\n\nexport function initializeThemeInCustomizations(): void {\n if (!Customizations.getSettings([ThemeSettingName]).theme) {\n const win: any = getWindow(); // tslint:disable-line:no-any\n\n if (win?.FabricConfig?.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n\n // Set the default theme.\n Customizations.applySettings({ [ThemeSettingName]: _theme });\n }\n}\n\ninitializeThemeInCustomizations();\n\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments: boolean = false): ITheme {\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback: (theme: ITheme) => void): void {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback: (theme: ITheme) => void): void {\n const i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n\n _onThemeChangeCallbacks.splice(i, 1);\n}\n\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme: IPartialTheme, depComments: boolean = false): ITheme {\n _theme = createTheme(theme, depComments);\n\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme({ ..._theme.palette, ..._theme.semanticColors, ..._theme.effects, ..._loadFonts(_theme) });\n\n Customizations.applySettings({ [ThemeSettingName]: _theme });\n\n _onThemeChangeCallbacks.forEach((callback: (theme: ITheme) => void) => {\n try {\n callback(_theme);\n } catch (e) {\n // don't let a bad callback break everything else\n }\n });\n\n return _theme;\n}\n\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme: ITheme): { [name: string]: string } {\n const lines: { [key: string]: string } = {};\n\n for (const fontName of Object.keys(theme.fonts)) {\n const font: IRawStyle = theme.fonts[fontName as keyof IFontStyles];\n\n for (const propName of Object.keys(font)) {\n const name: string = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n let value = font[propName as keyof IRawStyle] as string;\n\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name] = value;\n }\n }\n return lines;\n}\n\n/**\n * Creates a custom theme definition which can be used with the Customizer.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme: IPartialTheme, depComments: boolean = false): ITheme {\n let newPalette = { ...DefaultPalette, ...theme.palette };\n\n if (!theme.palette || !theme.palette.accent) {\n newPalette.accent = newPalette.themePrimary;\n }\n\n // mix in custom overrides with good slots first, since custom overrides might be used in fixing deprecated slots\n let newSemanticColors = {\n ..._makeSemanticColorsFromPalette(newPalette, !!theme.isInverted, depComments),\n ...theme.semanticColors,\n };\n\n let defaultFontStyles: IFontStyles = { ...DefaultFontStyles };\n\n if (theme.defaultFontStyle) {\n for (const fontStyle of Object.keys(defaultFontStyles) as (keyof IFontStyles)[]) {\n defaultFontStyles[fontStyle] = merge({}, defaultFontStyles[fontStyle], theme.defaultFontStyle);\n }\n }\n\n if (theme.fonts) {\n for (const fontStyle of Object.keys(theme.fonts) as (keyof IFontStyles)[]) {\n defaultFontStyles[fontStyle] = merge({}, defaultFontStyles[fontStyle], theme.fonts[fontStyle]);\n }\n }\n\n return {\n palette: newPalette,\n fonts: {\n ...defaultFontStyles,\n },\n rtl: theme.rtl,\n semanticColors: newSemanticColors,\n isInverted: !!theme.isInverted,\n disableGlobalClassNames: !!theme.disableGlobalClassNames,\n spacing: {\n ...DefaultSpacing,\n ...theme.spacing,\n },\n effects: {\n ...DefaultEffects,\n ...theme.effects,\n },\n };\n}\n\n// Generates all the semantic slot colors based on the Fabric palette.\n// We'll use these as fallbacks for semantic slots that the passed in theme did not define.\nfunction _makeSemanticColorsFromPalette(p: IPalette, isInverted: boolean, depComments: boolean): ISemanticColors {\n let toReturn: ISemanticColors = {\n // DEFAULTS\n bodyBackground: p.white,\n bodyBackgroundHovered: p.neutralLighter,\n bodyBackgroundChecked: p.neutralLight,\n bodyStandoutBackground: p.neutralLighterAlt,\n bodyFrameBackground: p.white,\n bodyFrameDivider: p.neutralLight,\n bodyText: p.neutralPrimary,\n bodyTextChecked: p.black,\n bodySubtext: p.neutralSecondary,\n bodyDivider: p.neutralLight,\n disabledBodyText: p.neutralTertiary,\n disabledBodySubtext: p.neutralTertiaryAlt,\n disabledBorder: p.neutralTertiaryAlt,\n focusBorder: p.neutralSecondary,\n variantBorder: p.neutralLight,\n variantBorderHovered: p.neutralTertiary,\n defaultStateBackground: p.neutralLighterAlt,\n\n // LINKS\n actionLink: p.neutralPrimary,\n actionLinkHovered: p.neutralDark,\n link: p.themePrimary,\n linkHovered: p.themeDarker,\n\n // BUTTONS\n buttonBackground: p.white,\n buttonBackgroundChecked: p.neutralTertiaryAlt,\n buttonBackgroundHovered: p.neutralLighter,\n buttonBackgroundCheckedHovered: p.neutralLight,\n buttonBackgroundPressed: p.neutralLight,\n buttonBackgroundDisabled: p.neutralLighter,\n buttonBorder: p.neutralSecondaryAlt,\n buttonText: p.neutralPrimary,\n buttonTextHovered: p.neutralDark,\n buttonTextChecked: p.neutralDark,\n buttonTextCheckedHovered: p.black,\n buttonTextPressed: p.neutralDark,\n buttonTextDisabled: p.neutralTertiary,\n buttonBorderDisabled: p.neutralLighter,\n\n primaryButtonBackground: p.themePrimary,\n primaryButtonBackgroundHovered: p.themeDarkAlt,\n primaryButtonBackgroundPressed: p.themeDark,\n primaryButtonBackgroundDisabled: p.neutralLighter,\n primaryButtonBorder: 'transparent',\n primaryButtonText: p.white,\n primaryButtonTextHovered: p.white,\n primaryButtonTextPressed: p.white,\n primaryButtonTextDisabled: p.neutralQuaternary,\n\n accentButtonBackground: p.accent,\n accentButtonText: p.white,\n\n // INPUTS\n inputBorder: p.neutralSecondary,\n inputBorderHovered: p.neutralPrimary,\n inputBackground: p.white,\n inputBackgroundChecked: p.themePrimary,\n inputBackgroundCheckedHovered: p.themeDark,\n inputPlaceholderBackgroundChecked: p.themeLighter,\n inputForegroundChecked: p.white,\n inputIcon: p.themePrimary,\n inputIconHovered: p.themeDark,\n inputIconDisabled: p.neutralTertiary,\n inputFocusBorderAlt: p.themePrimary,\n smallInputBorder: p.neutralSecondary,\n inputText: p.neutralPrimary,\n inputTextHovered: p.neutralDark,\n inputPlaceholderText: p.neutralSecondary,\n disabledBackground: p.neutralLighter,\n disabledText: p.neutralTertiary,\n disabledSubtext: p.neutralQuaternary,\n\n // LISTS\n listBackground: p.white,\n listText: p.neutralPrimary,\n listItemBackgroundHovered: p.neutralLighter,\n listItemBackgroundChecked: p.neutralLight,\n listItemBackgroundCheckedHovered: p.neutralQuaternaryAlt,\n\n listHeaderBackgroundHovered: p.neutralLighter,\n listHeaderBackgroundPressed: p.neutralLight,\n\n // MENUS\n menuBackground: p.white,\n menuDivider: p.neutralTertiaryAlt,\n menuIcon: p.themePrimary,\n menuHeader: p.themePrimary,\n menuItemBackgroundHovered: p.neutralLighter,\n menuItemBackgroundPressed: p.neutralLight,\n menuItemText: p.neutralPrimary,\n menuItemTextHovered: p.neutralDark,\n\n errorText: !isInverted ? '#a4262c' : '#F1707B',\n\n messageText: !isInverted ? '#323130' : '#F3F2F1',\n messageLink: !isInverted ? '#005A9E' : '#6CB8F6',\n messageLinkHovered: !isInverted ? '#004578' : '#82C7FF',\n\n infoIcon: !isInverted ? '#605e5c' : '#C8C6C4',\n errorIcon: !isInverted ? '#A80000' : '#F1707B',\n blockingIcon: !isInverted ? '#FDE7E9' : '#442726',\n warningIcon: !isInverted ? '#797775' : '#C8C6C4',\n severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100',\n successIcon: !isInverted ? '#107C10' : '#92C353',\n\n infoBackground: !isInverted ? '#f3f2f1' : '#323130',\n errorBackground: !isInverted ? '#FDE7E9' : '#442726',\n blockingBackground: !isInverted ? '#FDE7E9' : '#442726',\n warningBackground: !isInverted ? '#FFF4CE' : '#433519',\n severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F',\n successBackground: !isInverted ? '#DFF6DD' : '#393D1B',\n\n // Deprecated slots, second pass by _fixDeprecatedSlots() later for self-referential slots\n warningHighlight: !isInverted ? '#ffb900' : '#fff100',\n warningText: '',\n successText: !isInverted ? '#107C10' : '#92c353',\n listTextColor: '',\n menuItemBackgroundChecked: p.neutralLight,\n };\n\n return _fixDeprecatedSlots(toReturn, depComments!);\n}\n\nfunction _fixDeprecatedSlots(s: ISemanticColors, depComments: boolean): ISemanticColors {\n // Add @deprecated tag as comment if enabled\n let dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n\n // tslint:disable-next-line:deprecation\n s.listTextColor = s.listText + dep;\n // tslint:disable-next-line:deprecation\n s.menuItemBackgroundChecked += dep;\n // tslint:disable-next-line:deprecation\n s.warningHighlight += dep;\n // tslint:disable-next-line:deprecation\n s.warningText = s.messageText + dep;\n // tslint:disable-next-line:deprecation\n s.successText += dep;\n return s;\n}\n","// This file mimics styles and mixins from _General.Mixins.scss\n\nimport { IRawStyle } from '@uifabric/merge-styles';\n\nexport const normalize: IRawStyle = {\n boxShadow: 'none',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n};\n\nexport const noWrap: IRawStyle = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n};\n","import { GlobalSettings, warn } from '@uifabric/utilities';\nimport { IRawStyle, IFontFace, fontFace, mergeStyles, Stylesheet } from '@uifabric/merge-styles';\n\nexport interface IIconSubset {\n fontFace?: IFontFace;\n icons: {\n [key: string]: string | JSX.Element;\n };\n\n style?: IRawStyle;\n}\n\nexport interface IIconSubsetRecord extends IIconSubset {\n isRegistered?: boolean;\n className?: string;\n}\n\nexport interface IIconRecord {\n code: string | undefined;\n subset: IIconSubsetRecord;\n}\n\nexport interface IIconOptions {\n /**\n * By default, registering the same set of icons will generate a console warning per duplicate icon\n * registered, because this scenario can create unexpected consequences.\n *\n * Some scenarios include:\n *\n * Icon set was previously registered using a different base url.\n * Icon set was previously registered but a different version was provided.\n * Icons in a previous registered set overlap with a new set.\n *\n * To simply ignore previously registered icons, you can specify to disable warnings. This means\n * that if an icon which was previous registered is registered again, it will be silently ignored.\n * However, consider whether the problems listed above will cause issues.\n **/\n disableWarnings: boolean;\n\n /**\n * @deprecated\n * Use 'disableWarnings' instead.\n */\n warnOnMissingIcons?: boolean;\n}\n\nexport interface IIconRecords {\n __options: IIconOptions;\n __remapped: { [key: string]: string };\n [key: string]: IIconRecord | {};\n}\n\nconst ICON_SETTING_NAME = 'icons';\n\nconst _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n\n// Reset icon registration on stylesheet resets.\nconst stylesheet = Stylesheet.getInstance();\n\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(() => {\n for (const name in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name) && !!(_iconSettings[name] as IIconRecord).subset) {\n (_iconSettings[name] as IIconRecord).subset.className = undefined;\n }\n }\n });\n}\n\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nconst normalizeIconName = (name: string): string => name.toLowerCase();\n\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset: IIconSubset, options?: Partial): void {\n let subset = {\n ...iconSubset,\n isRegistered: false,\n className: undefined,\n };\n let { icons } = iconSubset;\n\n // Grab options, optionally mix user provided ones on top.\n options = options ? { ..._iconSettings.__options, ...options } : _iconSettings.__options;\n\n for (const iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n const code = icons[iconName];\n const normalizedIconName = normalizeIconName(iconName);\n\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n } else {\n _iconSettings[normalizedIconName] = {\n code,\n subset,\n } as IIconRecord;\n }\n }\n }\n}\n\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames: string[]): void {\n const options = _iconSettings.__options;\n\n for (const iconName of iconNames) {\n const normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n } else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(`The icon \"${iconName}\" tried to unregister but was not registered.`);\n }\n }\n\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach((key: string) => {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n }\n}\n\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName: string, mappedToName: string): void {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name?: string): IIconRecord | undefined {\n let icon: IIconRecord | undefined = undefined;\n const options = _iconSettings.__options;\n\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n\n if (name) {\n icon = _iconSettings[name!] as IIconRecord;\n\n if (icon) {\n let { subset } = icon;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n } else {\n // tslint:disable-next-line:deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\n `The icon \"${name}\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.`,\n );\n }\n }\n }\n\n return icon;\n}\n\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options: Partial): void {\n _iconSettings.__options = {\n ..._iconSettings.__options,\n ...options,\n };\n}\n\nlet _missingIcons: string[] = [];\nlet _missingIconsTimer: number | undefined = undefined;\n\nfunction _warnDuplicateIcon(iconName: string): void {\n const options = _iconSettings.__options;\n const warningDelay = 2000;\n const maxIconsInMessage = 10;\n\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(() => {\n warn(\n `Some icons were re-registered. Applications should only call registerIcons for any given ` +\n `icon once. Redefining what an icon is may have unintended consequences. Duplicates ` +\n `include: \\n` +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? ` (+ ${_missingIcons.length - maxIconsInMessage} more)` : ''),\n );\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n","// @uifabric/icons@7.3.50\n// Do not modify this file, the file is generated as part of publish. The checked in version is a placeholder only.\nimport { setVersion } from '@uifabric/set-version';\nsetVersion('@uifabric/icons', '7.3.50');","import { initializeIcons as i } from './fabric-icons';\nimport { initializeIcons as i0 } from './fabric-icons-0';\nimport { initializeIcons as i1 } from './fabric-icons-1';\nimport { initializeIcons as i2 } from './fabric-icons-2';\nimport { initializeIcons as i3 } from './fabric-icons-3';\nimport { initializeIcons as i4 } from './fabric-icons-4';\nimport { initializeIcons as i5 } from './fabric-icons-5';\nimport { initializeIcons as i6 } from './fabric-icons-6';\nimport { initializeIcons as i7 } from './fabric-icons-7';\nimport { initializeIcons as i8 } from './fabric-icons-8';\nimport { initializeIcons as i9 } from './fabric-icons-9';\nimport { initializeIcons as i10 } from './fabric-icons-10';\nimport { initializeIcons as i11 } from './fabric-icons-11';\nimport { initializeIcons as i12 } from './fabric-icons-12';\nimport { initializeIcons as i13 } from './fabric-icons-13';\nimport { initializeIcons as i14 } from './fabric-icons-14';\nimport { initializeIcons as i15 } from './fabric-icons-15';\nimport { initializeIcons as i16 } from './fabric-icons-16';\nimport { initializeIcons as i17 } from './fabric-icons-17';\n\nimport { IIconOptions } from '@uifabric/styling';\nimport { registerIconAliases } from './iconAliases';\nconst DEFAULT_BASE_URL = 'https://spoprod-a.akamaihd.net/files/fabric/assets/icons/';\n\nexport function initializeIcons(baseUrl: string = DEFAULT_BASE_URL, options?: IIconOptions): void {\n [\n i,\n i0,\n i1,\n i2,\n i3,\n i4,\n i5,\n i6,\n i7,\n i8,\n i9,\n i10,\n i11,\n i12,\n i13,\n i14,\n i15,\n i16,\n i17,\n ].forEach((initialize: (url: string, options?: IIconOptions) => void) => initialize(baseUrl, options));\n\n registerIconAliases();\n}\n\nexport { IconNames } from './IconNames';\n\nimport './version';\n","import * as React from 'react';\nimport { IStyle, ITheme } from '../../Styling';\nimport { IStyleFunctionOrObject } from '../../Utilities';\n\n/**\n * {@docCategory Image}\n */\nexport interface IImage {}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageProps extends React.ImgHTMLAttributes {\n /**\n * Call to provide customized styling that will layer on top of the variant rules\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by HOC.\n */\n theme?: ITheme;\n\n /**\n * Additional css class to apply to the Component\n * @defaultvalue undefined\n */\n className?: string;\n\n /**\n * If true, fades the image in when loaded.\n * @defaultvalue true\n */\n shouldFadeIn?: boolean;\n\n /**\n * If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until\n * it is successfully loaded. This disables shouldFadeIn.\n * @defaultvalue false;\n */\n shouldStartVisible?: boolean;\n\n /**\n * Used to determine how the image is scaled and cropped to fit the frame.\n *\n * @defaultvalue If both dimensions are provided, then the image is fit using ImageFit.scale.\n * Otherwise, the image won't be scaled or cropped.\n */\n imageFit?: ImageFit;\n\n /**\n * Deprecated at v1.3.6, to replace the src in case of errors, use `onLoadingStateChange` instead and\n * rerender the Image with a difference src.\n * @deprecated Use `onLoadingStateChange` instead and\n * rerender the Image with a difference src.\n */\n errorSrc?: string;\n\n /**\n * If true, the image frame will expand to fill its parent container.\n */\n maximizeFrame?: boolean;\n\n /**\n * Optional callback method for when the image load state has changed.\n * The 'loadState' parameter indicates the current state of the Image.\n */\n onLoadingStateChange?: (loadState: ImageLoadState) => void;\n\n /**\n * Specifies the cover style to be used for this image. If not\n * specified, this will be dynamically calculated based on the\n * aspect ratio for the image.\n */\n coverStyle?: ImageCoverStyle;\n}\n\n/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport enum ImageFit {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n center = 0,\n\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 contain = 1,\n\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 cover = 2,\n\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 none = 3,\n\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 centerCover = 4,\n\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 centerContain = 5,\n}\n\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport enum ImageCoverStyle {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n landscape = 0,\n\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n portrait = 1,\n}\n\n/**\n * {@docCategory Image}\n */\nexport enum ImageLoadState {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n notLoaded = 0,\n\n /**\n * The image has been loaded successfully.\n */\n loaded = 1,\n\n /**\n * An error has been encountered while loading the image.\n */\n error = 2,\n\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 errorLoaded = 3,\n}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageStyleProps {\n /**\n * Accept theme prop.\n */\n theme: ITheme;\n\n /**\n * Accept custom classNames\n */\n className?: string;\n\n /**\n * If true, the image frame will expand to fill its parent container.\n */\n maximizeFrame?: boolean;\n\n /**\n * If true, the image is loaded\n */\n isLoaded?: boolean;\n\n /**\n * If true, fades the image in when loaded.\n * @defaultvalue true\n */\n shouldFadeIn?: boolean;\n\n /**\n * If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until\n * it is successfully loaded. This disables shouldFadeIn.\n * @defaultvalue false;\n */\n shouldStartVisible?: boolean;\n\n /**\n * If true the image is coverStyle landscape instead of portrait\n */\n isLandscape?: boolean;\n\n /**\n * ImageFit booleans for center, cover, contain, centerContain, centerCover, none\n */\n isCenter?: boolean;\n isContain?: boolean;\n isCover?: boolean;\n isCenterContain?: boolean;\n isCenterCover?: boolean;\n isNone?: boolean;\n\n /**\n * if true image load is in error\n */\n isError?: boolean;\n\n /**\n * if true, imageFit is undefined\n */\n isNotImageFit?: boolean;\n\n /**\n * Image width value\n */\n width?: number | string;\n\n /**\n * Image height value\n */\n height?: number | string;\n}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageStyles {\n /**\n * Style set for the root div element.\n */\n root: IStyle;\n /**\n * Style set for the img element.\n */\n image: IStyle;\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import { _isSSR } from './setSSR';\n\nlet _window: Window | undefined = undefined;\n\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n _window = window;\n} catch (e) {\n /* no-op */\n}\n\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement?: Element | null): Window | undefined {\n if (_isSSR || typeof _window === 'undefined') {\n return undefined;\n } else {\n const el = rootElement as Element;\n\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","export default function _extends() {\n _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 return _extends.apply(this, arguments);\n}","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport const KeyCodes = {\n backspace: 8 as 8,\n tab: 9 as 9,\n enter: 13 as 13,\n shift: 16 as 16,\n ctrl: 17 as 17,\n alt: 18 as 18,\n pauseBreak: 19 as 19,\n capslock: 20 as 20,\n escape: 27 as 27,\n space: 32 as 32,\n pageUp: 33 as 33,\n pageDown: 34 as 34,\n end: 35 as 35,\n home: 36 as 36,\n left: 37 as 37,\n up: 38 as 38,\n right: 39 as 39,\n down: 40 as 40,\n insert: 45 as 45,\n del: 46 as 46,\n zero: 48 as 48,\n one: 49 as 49,\n two: 50 as 50,\n three: 51 as 51,\n four: 52 as 52,\n five: 53 as 53,\n six: 54 as 54,\n seven: 55 as 55,\n eight: 56 as 56,\n nine: 57 as 57,\n a: 65 as 65,\n b: 66 as 66,\n c: 67 as 67,\n d: 68 as 68,\n e: 69 as 69,\n f: 70 as 70,\n g: 71 as 71,\n h: 72 as 72,\n i: 73 as 73,\n j: 74 as 74,\n k: 75 as 75,\n l: 76 as 76,\n m: 77 as 77,\n n: 78 as 78,\n o: 79 as 79,\n p: 80 as 80,\n q: 81 as 81,\n r: 82 as 82,\n s: 83 as 83,\n t: 84 as 84,\n u: 85 as 85,\n v: 86 as 86,\n w: 87 as 87,\n x: 88 as 88,\n y: 89 as 89,\n z: 90 as 90,\n leftWindow: 91 as 91,\n rightWindow: 92 as 92,\n select: 93 as 93,\n zero_numpad: 96 as 96,\n one_numpad: 97 as 97,\n two_numpad: 98 as 98,\n three_numpad: 99 as 99,\n four_numpad: 100 as 100,\n five_numpad: 101 as 101,\n six_numpad: 102 as 102,\n seven_numpad: 103 as 103,\n eight_numpad: 104 as 104,\n nine_numpad: 105 as 105,\n multiply: 106 as 106,\n add: 107 as 107,\n subtract: 109 as 109,\n decimalPoint: 110 as 110,\n divide: 111 as 111,\n f1: 112 as 112,\n f2: 113 as 113,\n f3: 114 as 114,\n f4: 115 as 115,\n f5: 116 as 116,\n f6: 117 as 117,\n f7: 118 as 118,\n f8: 119 as 119,\n f9: 120 as 120,\n f10: 121 as 121,\n f11: 122 as 122,\n f12: 123 as 123,\n numlock: 144 as 144,\n scrollLock: 145 as 145,\n semicolon: 186 as 186,\n equalSign: 187 as 187,\n comma: 188 as 188,\n dash: 189 as 189,\n period: 190 as 190,\n forwardSlash: 191 as 191,\n graveAccent: 192 as 192,\n openBracket: 219 as 219,\n backSlash: 220 as 220,\n closeBracket: 221 as 221,\n singleQuote: 222 as 222,\n};\nexport type KeyCodes = number;\n","import { IStyle } from './IStyle';\n\nexport const InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0 as 0,\n\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1 as 1,\n\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2 as 2,\n};\n\nexport type InjectionMode = typeof InjectionMode[keyof typeof InjectionMode];\n\n/**\n * CSP settings for the stylesheet\n */\nexport interface ICSPSettings {\n /**\n * Nonce to inject into script tag\n */\n nonce?: string;\n}\n\n/**\n * Stylesheet config.\n *\n * @public\n */\nexport interface IStyleSheetConfig {\n /**\n * Injection mode for how rules are inserted.\n */\n injectionMode?: InjectionMode;\n\n /**\n * Default 'displayName' to use for a className.\n * @defaultvalue 'css'\n */\n defaultPrefix?: string;\n\n /**\n * Defines the default direction of rules for auto-rtlifying things.\n * While typically this is represented as a DIR attribute in the markup,\n * the DIR is not enough to control whether padding goes on the left or\n * right. Use this to set the default direction when rules are registered.\n */\n rtl?: boolean;\n\n /**\n * Default 'namespace' to attach before the className.\n */\n namespace?: string;\n\n /**\n * CSP settings\n */\n cspSettings?: ICSPSettings;\n\n /**\n * Callback executed when a rule is inserted.\n */\n onInsertRule?: (rule: string) => void;\n\n /**\n * Initial value for classnames cache. Key is serialized css rules associated with a classname.\n */\n classNameCache?: { [key: string]: string };\n}\n\nconst STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nconst REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\n\n// tslint:disable-next-line:no-any\nlet _global: { [key: string]: any } = {};\n\n// Grab window.\ntry {\n _global = window;\n} catch {\n /* leave as blank object */\n}\n\nlet _stylesheet: Stylesheet;\n\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nexport class Stylesheet {\n private _lastStyleElement?: HTMLStyleElement;\n private _styleElement?: HTMLStyleElement;\n private _rules: string[] = [];\n private _preservedRules: string[] = [];\n private _config: IStyleSheetConfig;\n private _rulesToInsert: string[] = [];\n private _counter = 0;\n private _keyToClassName: { [key: string]: string } = {};\n private _onResetCallbacks: (() => void)[] = [];\n\n // tslint:disable-next-line:no-any\n private _classNameToArgs: { [key: string]: { args: any; rules: string[] } } = {};\n\n /**\n * Gets the singleton instance.\n */\n public static getInstance(): Stylesheet {\n _stylesheet = _global[STYLESHEET_SETTING] as Stylesheet;\n\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n // tslint:disable-next-line:no-string-literal\n const fabricConfig = (_global && _global['FabricConfig']) || {};\n\n _stylesheet = _global[STYLESHEET_SETTING] = new Stylesheet(fabricConfig.mergeStyles);\n }\n\n return _stylesheet;\n }\n\n constructor(config?: IStyleSheetConfig) {\n this._config = {\n injectionMode: InjectionMode.insertNode,\n defaultPrefix: 'css',\n namespace: undefined,\n cspSettings: undefined,\n ...config,\n };\n\n this._keyToClassName = this._config.classNameCache || {};\n }\n\n /**\n * Configures the stylesheet.\n */\n public setConfig(config?: IStyleSheetConfig): void {\n this._config = {\n ...this._config,\n ...config,\n };\n }\n\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n */\n public onReset(callback: () => void): void {\n this._onResetCallbacks.push(callback);\n }\n\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n public getClassName(displayName?: string): string {\n const { namespace } = this._config;\n const prefix = displayName || this._config.defaultPrefix;\n\n return `${namespace ? namespace + '-' : ''}${prefix}-${this._counter++}`;\n }\n\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n public cacheClassName(className: string, key: string, args: IStyle[], rules: string[]): void {\n this._keyToClassName[key] = className;\n this._classNameToArgs[className] = {\n args,\n rules,\n };\n }\n\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n public classNameFromKey(key: string): string | undefined {\n return this._keyToClassName[key];\n }\n\n /**\n * Gets all classnames cache with the stylesheet.\n */\n public getClassNameCache(): { [key: string]: string } {\n return this._keyToClassName;\n }\n\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n public argsFromClassName(className: string): IStyle[] | undefined {\n const entry = this._classNameToArgs[className];\n\n return entry && entry.args;\n }\n\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n public insertedRulesFromClassName(className: string): string[] | undefined {\n const entry = this._classNameToArgs[className];\n\n return entry && entry.rules;\n }\n\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n public insertRule(rule: string, preserve?: boolean): void {\n const { injectionMode } = this._config;\n const element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n\n if (preserve) {\n this._preservedRules.push(rule);\n }\n\n if (element) {\n switch (this._config.injectionMode) {\n case InjectionMode.insertNode:\n const { sheet } = element!;\n\n try {\n (sheet as CSSStyleSheet).insertRule(rule, (sheet as CSSStyleSheet).cssRules.length);\n } catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n break;\n\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n } else {\n this._rules.push(rule);\n }\n\n if (this._config.onInsertRule) {\n this._config.onInsertRule(rule);\n }\n }\n\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n public getRules(includePreservedRules?: boolean): string {\n return (\n (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('') + this._rulesToInsert.join('')\n );\n }\n\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n public reset(): void {\n this._rules = [];\n this._rulesToInsert = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n\n this._onResetCallbacks.forEach((callback: () => void) => callback());\n }\n\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n public resetKeys(): void {\n this._keyToClassName = {};\n }\n\n private _getStyleElement(): HTMLStyleElement | undefined {\n if (!this._styleElement && typeof document !== 'undefined') {\n this._styleElement = this._createStyleElement();\n\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n window.requestAnimationFrame(() => {\n this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n }\n\n private _createStyleElement(): HTMLStyleElement {\n const head: HTMLHeadElement = document.head;\n const styleElement = document.createElement('style');\n\n styleElement.setAttribute('data-merge-styles', 'true');\n\n const { cspSettings } = this._config;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n head!.insertBefore(styleElement, this._lastStyleElement.nextElementSibling);\n } else {\n const placeholderStyleTag: Element | null = this._findPlaceholderStyleTag();\n\n if (placeholderStyleTag) {\n head!.insertBefore(styleElement, placeholderStyleTag.nextElementSibling);\n } else {\n head!.insertBefore(styleElement, head.childNodes[0]);\n }\n }\n this._lastStyleElement = styleElement;\n\n return styleElement;\n }\n\n private _findPlaceholderStyleTag(): Element | null {\n const head: HTMLHeadElement = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n }\n}\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","import { _isSSR } from './setSSR';\n\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth. Also note that the SSR flag is used to test ssr scenarios even if\n * document is defined (from JSDOM for example.)\n *\n * @public\n */\nexport function getDocument(rootElement?: HTMLElement | null): Document | undefined {\n if (_isSSR || typeof document === 'undefined') {\n return undefined;\n } else {\n const el = rootElement as Element;\n\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0)\n this.set = [first]\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached)\n return cached\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const l = rangeList.length\n const rangeMap = new Map()\n for (const comp of rangeList) {\n if (isNullSet(comp))\n return [comp]\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has(''))\n rangeMap.delete('')\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","import { GlobalSettings } from '../GlobalSettings';\n\n// tslint:disable-next-line:no-any\nexport type ISettings = { [key: string]: any };\nexport type ISettingsFunction = (settings: ISettings) => ISettings;\n\n/**\n * @deprecated Use ISettings.\n */\nexport type Settings = ISettings;\n\n/**\n * @deprecated Use ISettingsFunction.\n */\nexport type SettingsFunction = ISettingsFunction;\n\nexport interface ICustomizations {\n settings: ISettings;\n scopedSettings: { [key: string]: ISettings };\n inCustomizerContext?: boolean;\n}\n\nconst CustomizationsGlobalKey = 'customizations';\nconst NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\n\nlet _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\n\nlet _events: (() => void)[] = [];\n\nexport class Customizations {\n private static _suppressUpdates: boolean;\n\n public static reset(): void {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n }\n\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n public static applySettings(settings: ISettings): void {\n _allSettings.settings = { ..._allSettings.settings, ...settings };\n Customizations._raiseChange();\n }\n\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n public static applyScopedSettings(scopeName: string, settings: ISettings): void {\n _allSettings.scopedSettings[scopeName] = { ..._allSettings.scopedSettings[scopeName], ...settings };\n Customizations._raiseChange();\n }\n\n public static getSettings(\n properties: string[],\n scopeName?: string,\n localSettings: ICustomizations = NO_CUSTOMIZATIONS,\n // tslint:disable-next-line:no-any\n ): any {\n const settings: ISettings = {};\n const localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n const globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n\n for (let property of properties) {\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n\n return settings;\n }\n\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n public static applyBatchedUpdates(code: () => void, suppressUpdate?: boolean): void {\n Customizations._suppressUpdates = true;\n try {\n code();\n } catch {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n }\n\n public static observe(onChange: () => void): void {\n _events.push(onChange);\n }\n\n public static unobserve(onChange: () => void): void {\n _events = _events.filter((cb: () => void) => cb !== onChange);\n }\n\n private static _raiseChange(): void {\n if (!Customizations._suppressUpdates) {\n _events.forEach((cb: () => void) => cb());\n }\n }\n}\n","import { IIconStyleProps, IIconStyles } from './Icon.types';\nimport { mergeStyleSets } from '../../Styling';\n\n/** Class names used in themeable and non-themeable Icon components */\nexport const 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 const MS_ICON = 'ms-Icon';\n\nexport const getStyles = (props: IIconStyleProps): IIconStyles => {\n const { className, iconClassName, isPlaceholder, isImage, styles } = props;\n\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // tslint:disable-next-line:deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n","export default function _defineProperty(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}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","export interface IVendorSettings {\n isWebkit?: boolean;\n isMoz?: boolean;\n isMs?: boolean;\n isOpera?: boolean;\n}\n\nlet _vendorSettings: IVendorSettings | undefined;\n\nexport function getVendorSettings(): IVendorSettings {\n if (!_vendorSettings) {\n const doc = typeof document !== 'undefined' ? document : undefined;\n const nav = typeof navigator !== 'undefined' ? navigator : undefined;\n const userAgent = nav ? nav.userAgent.toLowerCase() : undefined;\n\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n } else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n\n return _vendorSettings;\n}\n\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings?: IVendorSettings): void {\n _vendorSettings = vendorSettings;\n}\n","const rules: { [key: string]: string } = {};\n\nexport function kebabRules(rulePairs: (string | number)[], index: number): void {\n const rule: string = rulePairs[index] as string;\n\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\n","import { getVendorSettings } from '../getVendorSettings';\n\nconst autoPrefixNames: { [key: string]: number } = {\n 'user-select': 1,\n};\n\nexport function prefixRules(rulePairs: (string | number)[], index: number): void {\n const vendorSettings = getVendorSettings();\n\n const name = rulePairs[index];\n\n if (autoPrefixNames[name]) {\n const value = rulePairs[index + 1];\n\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n","const NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\n\nexport function provideUnits(rulePairs: (string | number)[], index: number): void {\n const name = rulePairs[index];\n const value = rulePairs[index + 1];\n\n if (typeof value === 'number') {\n const unit = NON_PIXEL_NUMBER_PROPS.indexOf(name as string) === -1 ? 'px' : '';\n\n rulePairs[index + 1] = `${value}${unit}`;\n }\n}\n","import { IStyleOptions } from '../IStyleOptions';\n\nconst LEFT = 'left';\nconst RIGHT = 'right';\nconst NO_FLIP = '@noflip';\nconst NAME_REPLACEMENTS: { [key: string]: string } = {\n [LEFT]: RIGHT,\n [RIGHT]: LEFT,\n};\nconst VALUE_REPLACEMENTS: { [key: string]: string } = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options: IStyleOptions, rulePairs: (string | number)[], index: number): void {\n if (options.rtl) {\n const name = rulePairs[index] as string;\n\n if (!name) {\n return;\n }\n\n const value = rulePairs[index + 1] as string;\n\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n } else if (name.indexOf(LEFT) >= 0) {\n rulePairs[index] = name.replace(LEFT, RIGHT);\n } else if (name.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name.replace(RIGHT, LEFT);\n } else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n } else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n } else if (NAME_REPLACEMENTS[name]) {\n rulePairs[index] = NAME_REPLACEMENTS[name];\n } else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n } else {\n switch (name) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value: string, partIndex: number): string {\n const parts = value.split(' ');\n const numberVal = parseInt(parts[partIndex], 10);\n\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n\n return parts.join(' ');\n}\n\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value: string): string {\n if (typeof value === 'string') {\n const parts = value.split(' ');\n\n if (parts.length === 4) {\n return `${parts[0]} ${parts[3]} ${parts[2]} ${parts[1]}`;\n }\n }\n\n return value;\n}\n","import { IRawStyle, IStyle } from './IStyle';\n\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { IStyleOptions } from './IStyleOptions';\n\nconst DISPLAY_NAME = 'displayName';\n\n// tslint:disable-next-line:no-any\ntype IDictionary = { [key: string]: any };\n\ninterface IRuleSet {\n __order: string[];\n [key: string]: IDictionary;\n}\n\nfunction getDisplayName(rules?: { [key: string]: IRawStyle }): string | undefined {\n const rootStyle: IStyle = rules && rules['&'];\n\n return rootStyle ? (rootStyle as IRawStyle).displayName : undefined;\n}\n\nconst globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n\ntype ReplacementInfo = [number, number, string];\n\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals: string): string {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n\n const replacementInfo: ReplacementInfo[] = [];\n\n const findGlobal = /\\:global\\((.+?)\\)/g;\n let match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map((v: string) => `:global(${v.trim()})`)\n .join(', '),\n ]);\n }\n }\n\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce((selector: string, [matchIndex, matchEndIndex, replacement]: ReplacementInfo) => {\n const prefix = selector.slice(0, matchIndex);\n const suffix = selector.slice(matchEndIndex);\n\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\n\nfunction expandSelector(newSelector: string, currentSelector: string): string {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n } else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n } else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n\n return newSelector;\n}\n\nfunction extractRules(args: IStyle[], rules: IRuleSet = { __order: [] }, currentSelector: string = '&'): IRuleSet {\n const stylesheet = Stylesheet.getInstance();\n let currentRules: IDictionary | undefined = rules[currentSelector] as IDictionary;\n\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n\n for (const arg of args) {\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n const expandedRules = stylesheet.argsFromClassName(arg);\n\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector);\n }\n // Else if the arg is an array, we need to recurse in.\n } else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector);\n } else {\n // tslint:disable-next-line:no-any\n for (const prop in arg as any) {\n if (prop === 'selectors') {\n // tslint:disable-next-line:no-any\n const selectors: { [key: string]: IStyle } = (arg as any).selectors;\n\n for (let newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n const selectorValue = selectors[newSelector];\n\n if (newSelector.indexOf('@') === 0) {\n newSelector = newSelector + '{' + currentSelector;\n extractRules([selectorValue], rules, newSelector);\n } else if (newSelector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(newSelector)\n .split(',')\n .map((s: string) => s.trim())\n .forEach((separatedSelector: string) =>\n extractRules([selectorValue], rules, expandSelector(separatedSelector, currentSelector)),\n );\n } else {\n extractRules([selectorValue], rules, expandSelector(newSelector, currentSelector));\n }\n }\n }\n } else {\n if ((arg as any)[prop] !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n // tslint:disable-next-line:no-any\n expandQuads(currentRules, prop, (arg as any)[prop]);\n } else {\n // tslint:disable-next-line:no-any\n (currentRules as any)[prop] = (arg as any)[prop] as any;\n }\n }\n }\n }\n }\n }\n\n return rules;\n}\n\nfunction expandQuads(currentRules: IDictionary, name: string, value: string): void {\n const parts = typeof value === 'string' ? value.split(' ') : [value];\n\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\n\nfunction getKeyForRules(options: IStyleOptions, rules: IRuleSet): string | undefined {\n const serialized: string[] = [options.rtl ? 'rtl' : 'ltr'];\n let hasProps = false;\n\n for (const selector of rules.__order) {\n serialized.push(selector);\n const rulesForSelector = rules[selector];\n\n for (const propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n\n return hasProps ? serialized.join('') : undefined;\n}\n\nfunction repeatString(target: string, count: number): string {\n if (count <= 0) {\n return '';\n }\n\n if (count === 1) {\n return target;\n }\n\n return target + repeatString(target, count - 1);\n}\n\nexport function serializeRuleEntries(options: IStyleOptions, ruleEntries: { [key: string]: string | number }): string {\n if (!ruleEntries) {\n return '';\n }\n\n const allEntries: (string | number)[] = [];\n\n for (const entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n\n // Apply transforms.\n for (let i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n\n // Apply punctuation.\n for (let i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n\n return allEntries.join('');\n}\n\nexport interface IRegistration {\n className: string;\n key: string;\n args: IStyle[];\n rulesToInsert: string[];\n}\n\nexport function styleToRegistration(options: IStyleOptions, ...args: IStyle[]): IRegistration | undefined {\n const rules: IRuleSet = extractRules(args);\n const key = getKeyForRules(options, rules);\n\n if (key) {\n const stylesheet = Stylesheet.getInstance();\n const registration: Partial = {\n className: stylesheet.classNameFromKey(key),\n key,\n args,\n };\n\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n const rulesToInsert: string[] = [];\n\n for (const selector of rules.__order) {\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n\n return registration as IRegistration;\n }\n\n return undefined;\n}\n\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration: IRegistration, specificityMultiplier: number = 1): void {\n const stylesheet = Stylesheet.getInstance();\n const { className, key, args, rulesToInsert } = registration;\n\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (let i = 0; i < rulesToInsert.length; i += 2) {\n const rules = rulesToInsert[i + 1];\n if (rules) {\n let selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(`.${registration.className}`, specificityMultiplier));\n\n // Insert. Note if a media query, we must close the query with a final bracket.\n const processedRule = `${selector}{${rules}}${selector.indexOf('@') === 0 ? '}' : ''}`;\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className!, key!, args!, rulesToInsert);\n }\n}\n\nexport function styleToClassName(options: IStyleOptions, ...args: IStyle[]): string {\n const registration = styleToRegistration(options, ...args);\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n\n return registration.className;\n }\n\n return '';\n}\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","import { IStyleOptions } from './IStyleOptions';\n\n/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL: boolean): void {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n\n/**\n * Gets the current RTL value.\n */\nexport function getRTL(): boolean {\n if (_rtl === undefined) {\n _rtl =\n typeof document !== 'undefined' &&\n !!document.documentElement &&\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nlet _rtl: boolean;\n_rtl = getRTL();\n\nexport function getStyleOptions(): IStyleOptions {\n return {\n rtl: getRTL(),\n };\n}\n","import * as React from 'react';\nimport { ICustomizations } from './Customizations';\n\nexport interface ICustomizerContext {\n customizations: ICustomizations;\n}\n\nexport const CustomizerContext = React.createContext({\n customizations: {\n inCustomizerContext: false,\n settings: {},\n scopedSettings: {},\n },\n});\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","let _warningCallback: ((message: string) => void) | undefined = undefined;\n\nexport type ISettingsMap = { [P in keyof T]?: string };\n\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message: string): void {\n if (_warningCallback && process.env.NODE_ENV !== 'production') {\n _warningCallback(message);\n } else if (console && console.warn) {\n console.warn(message);\n }\n}\n\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback?: (message: string) => void): void {\n _warningCallback = warningCallback;\n}\n","export let _isSSR = false;\n\n/**\n * Helper to set ssr mode to simulate no window object returned from getWindow helper.\n *\n * @public\n */\nexport function setSSR(isEnabled: boolean): void {\n _isSSR = isEnabled;\n}\n","import { IStyleSet, IConcatenatedStyleSet } from './IStyleSet';\nimport { IStyleBase, IStyle } from './IStyle';\nimport { IStyleFunctionOrObject } from './IStyleFunction';\nimport { ObjectOnly } from './ObjectOnly';\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet - The first style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet: TStyleSet | false | null | undefined,\n): IConcatenatedStyleSet>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n): IConcatenatedStyleSet & ObjectOnly>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n): IConcatenatedStyleSet & ObjectOnly & ObjectOnly>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n * @param styleSet4 - The fourth style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n styleSet4: TStyleSet4 | false | null | undefined,\n): IConcatenatedStyleSet<\n ObjectOnly & ObjectOnly & ObjectOnly & ObjectOnly\n>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n * @param styleSet4 - The fourth style set to be concatenated.\n * @param styleSet5 - The fifth set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n styleSet4: TStyleSet4 | false | null | undefined,\n styleSet5: TStyleSet5 | false | null | undefined,\n): IConcatenatedStyleSet<\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly\n>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n * @param styleSet4 - The fourth style set to be concatenated.\n * @param styleSet5 - The fifth set to be concatenated.\n * @param styleSet6 - The sixth set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n styleSet4: TStyleSet4 | false | null | undefined,\n styleSet5: TStyleSet5 | false | null | undefined,\n styleSet6: TStyleSet6 | false | null | undefined,\n): IConcatenatedStyleSet<\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly\n>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets(...styleSets: (IStyleSet | false | null | undefined)[]): IConcatenatedStyleSet;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets(...styleSets: (IStyleSet | false | null | undefined)[]): IConcatenatedStyleSet {\n if (styleSets && styleSets.length === 1 && styleSets[0] && !(styleSets[0] as IStyleSet).subComponentStyles) {\n return styleSets[0] as IConcatenatedStyleSet;\n }\n\n const mergedSet: IConcatenatedStyleSet = {};\n\n // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n const workingSubcomponentStyles: { [key: string]: Array> } = {};\n\n for (const currentSet of styleSets) {\n if (currentSet) {\n for (const prop in currentSet) {\n if (currentSet.hasOwnProperty(prop)) {\n if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n // subcomponent styles - style functions or objects\n\n const currentComponentStyles = currentSet.subComponentStyles;\n for (const subCompProp in currentComponentStyles) {\n if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n } else {\n workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n }\n }\n }\n\n continue;\n }\n\n // the as any casts below is a workaround for ts 2.8.\n // todo: remove cast to any in ts 2.9.\n const mergedValue: IStyle = (mergedSet as any)[prop];\n const currentValue = (currentSet as any)[prop];\n\n if (mergedValue === undefined) {\n (mergedSet as any)[prop] = currentValue;\n } else {\n (mergedSet as any)[prop] = [\n // https://github.com/Microsoft/TypeScript/issues/25474\n ...(Array.isArray(mergedValue) ? mergedValue : [mergedValue as IStyleBase]),\n ...(Array.isArray(currentValue) ? currentValue : [currentValue as IStyleBase]),\n ];\n }\n }\n }\n }\n }\n\n if (Object.keys(workingSubcomponentStyles).length > 0) {\n mergedSet.subComponentStyles = {};\n const mergedSubStyles = mergedSet.subComponentStyles;\n\n // now we process the subcomponent styles if there are any\n for (const subCompProp in workingSubcomponentStyles) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n const workingSet = workingSubcomponentStyles[subCompProp];\n mergedSubStyles[subCompProp] = (styleProps: any) => {\n return concatStyleSets(\n ...workingSet.map((styleFunctionOrObject: IStyleFunctionOrObject) =>\n typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject,\n ),\n );\n };\n }\n }\n }\n\n return mergedSet;\n}\n","import { IStyle, IStyleBaseArray } from './IStyle';\nimport { Stylesheet } from './Stylesheet';\n\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts(\n ...args: (IStyle | IStyle[] | false | null | undefined)[]\n): { classes: string[]; objects: IStyleBaseArray } {\n const classes: string[] = [];\n const objects: {}[] = [];\n const stylesheet = Stylesheet.getInstance();\n\n function _processArgs(argsList: (IStyle | IStyle[])[]): void {\n for (const arg of argsList) {\n if (arg) {\n if (typeof arg === 'string') {\n if (arg.indexOf(' ') >= 0) {\n _processArgs(arg.split(' '));\n } else {\n const translatedArgs = stylesheet.argsFromClassName(arg);\n\n if (translatedArgs) {\n _processArgs(translatedArgs);\n } else {\n // Avoid adding the same class twice.\n if (classes.indexOf(arg) === -1) {\n classes.push(arg);\n }\n }\n }\n } else if (Array.isArray(arg)) {\n _processArgs(arg);\n } else if (typeof arg === 'object') {\n objects.push(arg);\n }\n }\n }\n }\n\n _processArgs(args);\n\n return {\n classes,\n objects,\n };\n}\n","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// tslint:disable-next-line:no-any\nexport function shallowCompare(a: TA, b: TB): boolean {\n for (let propName in a) {\n if (a.hasOwnProperty(propName)) {\n if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (let propName in b) {\n if (b.hasOwnProperty(propName)) {\n if (!a.hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// tslint:disable-next-line:no-any\nexport function assign(target: any, ...args: any[]): any {\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// tslint:disable-next-line:no-any\nexport function filteredAssign(isAllowed: (propName: string) => boolean, target: any, ...args: any[]): any {\n target = target || {};\n\n for (let sourceObject of args) {\n if (sourceObject) {\n for (let propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n\n return target;\n}\n\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n // tslint:disable-next-line:no-any\n theEnum: any,\n callback: (name?: string, value?: string | number) => T | undefined,\n): (T | undefined)[] | undefined {\n // map to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n return Object.keys(theEnum)\n .map((p: string | number) => {\n // map on each property name as a string\n if (String(Number(p)) !== p) {\n // if the property is not just a number (because enums in TypeScript will map both ways)\n return callback(p as string, theEnum[p]);\n }\n return undefined;\n })\n .filter((v: T | undefined) => !!v); // only return elements with values\n}\n\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// tslint:disable-next-line:no-any\nexport function values(obj: any): T[] {\n return Object.keys(obj).reduce((arr: T[], key: string): T[] => {\n arr.push(obj[key]);\n return arr;\n }, []);\n}\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","'use strict';\n\nconst copyTextToClipboard = (input, {target = document.body} = {}) => {\n\tconst element = document.createElement('textarea');\n\tconst previouslyFocusedElement = document.activeElement;\n\n\telement.value = input;\n\n\t// Prevent keyboard from showing on mobile\n\telement.setAttribute('readonly', '');\n\n\telement.style.contain = 'strict';\n\telement.style.position = 'absolute';\n\telement.style.left = '-9999px';\n\telement.style.fontSize = '12pt'; // Prevent zooming on iOS\n\n\tconst selection = document.getSelection();\n\tlet originalRange = false;\n\tif (selection.rangeCount > 0) {\n\t\toriginalRange = selection.getRangeAt(0);\n\t}\n\n\ttarget.append(element);\n\telement.select();\n\n\t// Explicit selection workaround for iOS\n\telement.selectionStart = 0;\n\telement.selectionEnd = input.length;\n\n\tlet isSuccess = false;\n\ttry {\n\t\tisSuccess = document.execCommand('copy');\n\t} catch (_) {}\n\n\telement.remove();\n\n\tif (originalRange) {\n\t\tselection.removeAllRanges();\n\t\tselection.addRange(originalRange);\n\t}\n\n\t// Get the focus back on the previously focused element, if any\n\tif (previouslyFocusedElement) {\n\t\tpreviouslyFocusedElement.focus();\n\t}\n\n\treturn isSuccess;\n};\n\nmodule.exports = copyTextToClipboard;\n// TODO: Remove this for the next major release\nmodule.exports.default = copyTextToClipboard;\n","import * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { IImageProps, IImageStyleProps, IImageStyles, ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\n\nconst getClassNames = classNamesFunction();\n\nexport interface IImageState {\n loadState?: ImageLoadState;\n}\n\nconst KEY_PREFIX = 'fabricImage';\n\nexport class ImageBase extends React.Component {\n public static defaultProps = {\n shouldFadeIn: true,\n };\n\n private static _svgRegex = /\\.svg$/i;\n\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 private _coverStyle: ImageCoverStyle = ImageCoverStyle.portrait;\n private _imageElement = React.createRef();\n private _frameElement = React.createRef();\n\n constructor(props: IImageProps) {\n super(props);\n\n this.state = {\n loadState: ImageLoadState.notLoaded,\n };\n }\n\n // tslint:disable-next-line function-name\n public UNSAFE_componentWillReceiveProps(nextProps: IImageProps): void {\n if (nextProps.src !== this.props.src) {\n this.setState({\n loadState: ImageLoadState.notLoaded,\n });\n } else if (this.state.loadState === ImageLoadState.loaded) {\n this._computeCoverStyle(nextProps);\n }\n }\n\n public componentDidUpdate(prevProps: IImageProps, prevState: IImageState) {\n this._checkImageLoaded();\n if (this.props.onLoadingStateChange && prevState.loadState !== this.state.loadState) {\n this.props.onLoadingStateChange(this.state.loadState!);\n }\n }\n\n public render(): JSX.Element {\n const imageProps = getNativeProps>(this.props, imgProperties, [\n 'width',\n 'height',\n ]);\n const {\n src,\n alt,\n width,\n height,\n shouldFadeIn,\n shouldStartVisible,\n className,\n imageFit,\n role,\n maximizeFrame,\n styles,\n theme,\n } = this.props;\n const { loadState } = this.state;\n const coverStyle = this.props.coverStyle !== undefined ? this.props.coverStyle : this._coverStyle;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n width,\n height,\n maximizeFrame,\n shouldFadeIn,\n shouldStartVisible,\n isLoaded:\n 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\n // If image dimensions aren't specified, the natural size of the image is used.\n return (\n
\n \n
\n );\n }\n\n private _onImageLoaded = (ev: React.SyntheticEvent): void => {\n const { src, onLoad } = this.props;\n if (onLoad) {\n onLoad(ev);\n }\n\n this._computeCoverStyle(this.props);\n\n if (src) {\n this.setState({\n loadState: ImageLoadState.loaded,\n });\n }\n };\n\n private _checkImageLoaded(): void {\n const { src } = this.props;\n const { loadState } = this.state;\n\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 const isLoaded: boolean = 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\n if (isLoaded) {\n this._computeCoverStyle(this.props);\n this.setState({\n loadState: ImageLoadState.loaded,\n });\n }\n }\n }\n\n private _computeCoverStyle(props: IImageProps): void {\n const { imageFit, width, height } = props;\n\n // Do not compute cover style if it was already specified in props\n if (\n (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 ) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n let desiredRatio;\n if (!!width && !!height && imageFit !== ImageFit.centerContain && imageFit !== ImageFit.centerCover) {\n desiredRatio = (width as number) / (height as number);\n } else {\n desiredRatio = this._frameElement.current.clientWidth / this._frameElement.current.clientHeight;\n }\n\n // Examine the source image to determine its original ratio.\n const naturalRatio = this._imageElement.current.naturalWidth / this._imageElement.current.naturalHeight;\n\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n this._coverStyle = ImageCoverStyle.landscape;\n } else {\n this._coverStyle = ImageCoverStyle.portrait;\n }\n }\n }\n\n private _onImageError = (ev: React.SyntheticEvent): void => {\n if (this.props.onError) {\n this.props.onError(ev);\n }\n this.setState({\n loadState: ImageLoadState.error,\n });\n };\n}\n","import { AnimationClassNames, getGlobalClassNames, IStyle } from '../../Styling';\nimport { IImageStyleProps, IImageStyles } from './Image.types';\nimport { getWindow } from '../../Utilities';\n\nconst 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};\n\nexport const getStyles = (props: IImageStyleProps): IImageStyles => {\n const {\n className,\n width,\n height,\n maximizeFrame,\n isLoaded,\n shouldFadeIn,\n shouldStartVisible,\n isLandscape,\n isCenter,\n isContain,\n isCover,\n isCenterContain,\n isCenterCover,\n isNone,\n isError,\n isNotImageFit,\n theme,\n } = props;\n\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\n const ImageFitStyles: IStyle = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n };\n\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n const window: Window | undefined = getWindow();\n const supportsObjectFit: boolean = window !== undefined && window.navigator.msMaxTouchPoints === undefined;\n const fallbackObjectFitStyles =\n (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n\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","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { IImageProps, IImageStyleProps, IImageStyles } from './Image.types';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\n\nexport const Image: React.FunctionComponent = styled(\n ImageBase,\n getStyles,\n undefined,\n {\n scope: 'Image',\n },\n true,\n);\n","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nconst packagesCache: { [name: string]: string } = {};\n\n// Cache access to window to avoid IE11 memory leak.\nlet _win: Window | undefined = undefined;\n\ntry {\n _win = window;\n} catch (e) {\n /* no-op */\n}\n\nexport function setVersion(packageName: string, packageVersion: string): void {\n if (typeof _win !== 'undefined') {\n // tslint:disable-next-line:no-any\n const packages = ((_win as any).__packages__ = (_win as any).__packages__ || {});\n\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n const versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n","// tslint:disable:no-any\n\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent: any, ...functions: any[]): () => void {\n if (functions.length < 2) {\n return functions[0] as () => void;\n }\n\n return (...args: any[]): void => {\n functions.forEach((f: () => void) => f && f.apply(parent, args));\n };\n}\n","import * as React from 'react';\nimport { appendFunction } from './appendFunction';\n\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent: T, methods: { [key in keyof T]?: T[key] }): void {\n for (let name in methods) {\n if (methods.hasOwnProperty(name)) {\n // tslint:disable-next-line:no-any\n parent[name] = appendFunction(parent, parent[name], methods[name]) as any;\n }\n }\n}\n","import { getWindow } from './dom/getWindow';\nexport const IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport const IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\n\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - whether to remove or add focus\n * @param target - optional target\n */\nexport function setFocusVisibility(enabled: boolean, target?: Element): void {\n const win = target ? getWindow(target) : getWindow();\n\n if (win) {\n const { classList } = win.document.body;\n classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n }\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nfunction _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper;","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/*\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","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiControl = require('../character/ascii-control.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","import { getWindow } from './dom/getWindow';\n\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\n\n// tslint:disable:no-any\n\nconst GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nconst CALLBACK_STATE_PROP_NAME = '__callbacks__';\n\nlet _counter = 0;\n\n/**\n * Change description used for change callbacks in GlobalSettings.\n *\n * @public\n * {@docCategory IChangeDescription}\n */\nexport interface IChangeDescription {\n key: string;\n // tslint:disable-next-line:no-any\n oldValue: any;\n // tslint:disable-next-line:no-any\n value: any;\n}\n\n/**\n * Change event callback.\n *\n * @public\n * {@docCategory IChangeEventCallback}\n */\nexport interface IChangeEventCallback {\n __id__?: string;\n (changeDescription?: IChangeDescription): void;\n}\n\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nexport class GlobalSettings {\n public static getValue(key: string, defaultValue?: T | (() => T)): T {\n const globalSettings = _getGlobalSettings();\n\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? (defaultValue as Function)() : defaultValue;\n }\n\n return globalSettings[key];\n }\n\n public static setValue(key: string, value: T): T {\n const globalSettings = _getGlobalSettings();\n const callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n let oldValue = globalSettings[key];\n\n if (value !== oldValue) {\n globalSettings[key] = value;\n\n let changeDescription = {\n oldValue,\n value,\n key,\n };\n\n for (let id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n\n return value;\n }\n\n public static addChangeListener(cb: IChangeEventCallback): void {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n let id = cb.__id__;\n const callbacks = _getCallbacks();\n\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n\n callbacks[id] = cb;\n }\n\n public static removeChangeListener(cb: IChangeEventCallback): void {\n const callbacks = _getCallbacks();\n delete callbacks[cb.__id__ as string];\n }\n}\n\nfunction _getGlobalSettings(): { [key: string]: any } {\n const win = getWindow();\n const globalObj: { [key: string]: any } = win || {};\n\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = {\n [CALLBACK_STATE_PROP_NAME]: {},\n };\n }\n\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\n\nfunction _getCallbacks(): { [key: string]: () => void } {\n const globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n","/* tslint:disable:no-string-literal */\nimport { assign } from './object';\n\n/**\n * EventRecord interface.\n *\n * @internal\n */\n// tslint:disable:no-any\nexport interface IEventRecord {\n target: any;\n eventName: string;\n parent: any;\n callback: (args?: any) => void;\n elementCallback?: (...args: any[]) => void;\n objectCallback?: (args?: any) => void;\n options?: boolean | AddEventListenerOptions;\n}\n// tslint:enable:no-any\n\n/**\n * EventRecordsByName interface.\n *\n * @internal\n */\nexport interface IEventRecordsByName {\n [eventName: string]: IEventRecordList;\n}\n\n/**\n * EventRecordList interface.\n *\n * @internal\n */\nexport interface IEventRecordList {\n [id: string]: IEventRecord[] | number;\n count: number;\n}\n\n/**\n * DeclaredEventsByName interface.\n *\n * @internal\n */\nexport interface IDeclaredEventsByName {\n [eventName: string]: boolean;\n}\n\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nexport class EventGroup {\n private static _uniqueId: number = 0;\n // tslint:disable-next-line:no-any\n private _parent: any;\n private _eventRecords: IEventRecord[];\n private _id: number = EventGroup._uniqueId++;\n private _isDisposed: boolean;\n\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n public static raise(\n // tslint:disable-next-line:no-any\n target: any,\n eventName: string,\n // tslint:disable-next-line:no-any\n eventArgs?: any,\n bubbleEvent?: boolean,\n ): boolean | undefined {\n let retVal;\n\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n let ev = document.createEvent('HTMLEvents');\n\n ev.initEvent(eventName, bubbleEvent || false, true);\n\n assign(ev, eventArgs);\n\n retVal = target.dispatchEvent(ev);\n // tslint:disable-next-line:no-any\n } else if (typeof document !== 'undefined' && (document as any)['createEventObject']) {\n // IE8\n // tslint:disable-next-line:no-any\n let evObj = (document as any)['createEventObject'](eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n } else {\n while (target && retVal !== false) {\n let events = target.__events__;\n let eventRecords = events ? events[eventName] : null;\n\n if (eventRecords) {\n for (let id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n let eventRecordList = eventRecords[id];\n\n for (let listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n let record = eventRecordList[listIndex];\n\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n\n return retVal;\n }\n\n // tslint:disable-next-line:no-any\n public static isObserved(target: any, eventName: string): boolean {\n let events = target && target.__events__;\n\n return !!events && !!events[eventName];\n }\n\n /** Check to see if the target has declared support of the given event. */\n // tslint:disable-next-line:no-any\n public static isDeclared(target: any, eventName: string): boolean {\n let declaredEvents = target && target.__declaredEvents;\n\n return !!declaredEvents && !!declaredEvents[eventName];\n }\n\n // tslint:disable-next-line:no-any\n public static stopPropagation(event: any): void {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else {\n // IE8\n event.cancelBubble = true;\n }\n }\n\n private static _isElement(target: HTMLElement): boolean {\n return (\n !!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement))\n );\n }\n\n /** parent: the context in which events attached to non-HTMLElements are called */\n // tslint:disable-next-line:no-any\n public constructor(parent: any) {\n this._parent = parent;\n this._eventRecords = [];\n }\n\n public dispose(): void {\n if (!this._isDisposed) {\n this._isDisposed = true;\n\n this.off();\n this._parent = null;\n }\n }\n\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n // tslint:disable-next-line:no-any\n public onAll(target: any, events: { [key: string]: (args?: any) => void }, useCapture?: boolean): void {\n for (let eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n }\n\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n public on(\n target: any, // tslint:disable-line:no-any\n eventName: string,\n callback: (args?: any) => void, // tslint:disable-line:no-any\n options?: boolean | AddEventListenerOptions,\n ): void {\n if (eventName.indexOf(',') > -1) {\n let events = eventName.split(/[ ,]+/);\n\n for (let i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n } else {\n let parent = this._parent;\n let eventRecord: IEventRecord = {\n target: target,\n eventName: eventName,\n parent: parent,\n callback: callback,\n options,\n };\n\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n let events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n (events[eventName][this._id]).push(eventRecord);\n events[eventName].count++;\n\n if (EventGroup._isElement(target)) {\n // tslint:disable-next-line:no-any\n let processElementEvent = (...args: any[]) => {\n if (this._isDisposed) {\n return;\n }\n\n let result;\n try {\n result = callback.apply(parent, args);\n if (result === false && args[0]) {\n let e = args[0];\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n\n e.cancelBubble = true;\n }\n } catch (e) {\n /* ErrorHelper.log(e); */\n }\n\n return result;\n };\n\n eventRecord.elementCallback = processElementEvent;\n\n if (target.addEventListener) {\n /* tslint:disable:ban-native-functions */\n (target).addEventListener(eventName, processElementEvent, options);\n /* tslint:enable:ban-native-functions */\n } else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n } else {\n // tslint:disable-next-line:no-any\n let processObjectEvent = (...args: any[]) => {\n if (this._isDisposed) {\n return;\n }\n\n return callback.apply(parent, args);\n };\n\n eventRecord.objectCallback = processObjectEvent;\n }\n\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n }\n\n public off(\n target?: any, // tslint:disable-line:no-any\n eventName?: string,\n callback?: (args?: any) => void, // tslint:disable-line:no-any\n options?: boolean | AddEventListenerOptions,\n ): void {\n for (let i = 0; i < this._eventRecords.length; i++) {\n let eventRecord = this._eventRecords[i];\n if (\n (!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)\n ) {\n let events = eventRecord.target.__events__;\n let targetArrayLookup = events[eventRecord.eventName];\n let targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n } else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(\n eventRecord.eventName,\n eventRecord.elementCallback,\n eventRecord.options,\n );\n } else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n\n this._eventRecords.splice(i--, 1);\n }\n }\n }\n\n /** Trigger the given event in the context of this instance of EventGroup. */\n // tslint:disable-next-line:no-any\n public raise(eventName: string, eventArgs?: any, bubbleEvent?: boolean): boolean | undefined {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n }\n\n /** Declare an event as being supported by this instance of EventGroup. */\n public declare(event: string | string[]): void {\n let declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n } else {\n for (let i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n }\n}\n","import * as React from 'react';\n\nimport { IFontIconProps } from './Icon.types';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon, IIconRecord, IIconSubsetRecord } from '../../Styling';\n\nexport interface IIconContent {\n children?: string;\n iconClassName?: string;\n fontFamily?: string;\n}\n\nexport const getIconContent = memoizeFunction(\n (iconName?: string): IIconContent | null => {\n const { code, subset }: Pick & { subset: Partial } = getIcon(iconName) || {\n subset: {},\n code: undefined,\n };\n\n if (!code) {\n return null;\n }\n\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n };\n },\n undefined,\n true /*ignoreNullOrUndefinedResult */,\n);\n\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 const FontIcon: React.FunctionComponent = props => {\n const { iconName, className, style = {} } = props;\n const iconContent = getIconContent(iconName) || {};\n const { iconClassName, children, fontFamily } = iconContent;\n\n const nativeProps = getNativeProps>(props, htmlElementProperties);\n const containerProps = props['aria-label']\n ? {}\n : {\n role: 'presentation',\n 'aria-hidden': true,\n };\n\n return (\n \n {children}\n \n );\n};\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 const getFontIcon = memoizeFunction((iconName: string, className?: string, ariaLabel?: string) => {\n return FontIcon({ iconName, className, 'aria-label': ariaLabel });\n});\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","!function(t,e){\"object\"==typeof module&&module.exports?(module.exports=e(),module.exports.default=module.exports):t.timeago=e()}(\"undefined\"!=typeof window?window:this,function(){function t(t){return t instanceof Date?t:isNaN(t)?/^\\d+$/.test(t)?new Date(e(t)):(t=(t||\"\").trim().replace(/\\.\\d+/,\"\").replace(/-/,\"/\").replace(/-/,\"/\").replace(/(\\d)T(\\d)/,\"$1 $2\").replace(/Z/,\" UTC\").replace(/([\\+\\-]\\d\\d)\\:?(\\d\\d)/,\" $1$2\"),new Date(t)):new Date(e(t))}function e(t){return parseInt(t)}function n(t,n,r){n=l[n]?n:l[r]?r:\"en\";for(var o=0,i=t<0?1:0,a=t=Math.abs(t);t>=p[o]&&o(0===o?9:1)&&(o+=1),l[n](t,o,a)[i].replace(\"%s\",t)}function r(e,n){return((n=n?t(n):new Date)-t(e))/1e3}function o(t){for(var e=1,n=0,r=Math.abs(t);t>=p[n]&&n1&&(n+=\"s\"),[t+\" \"+n+\" ago\",\"in \"+t+\" \"+n]},zh_CN:function(t,e){if(0===e)return[\"刚刚\",\"片刻后\"];var n=s[parseInt(e/2)];return[t+n+\"前\",t+n+\"后\"]}},p=[60,60,24,7,365/7/12,12],h=6,m=\"data-tid\",w={};return c.prototype.doRender=function(t,e,i){var a,c=r(e,this.nowDate),d=this;t.innerHTML=n(c,i,this.defaultLocale),w[a=setTimeout(function(){d.doRender(t,e,i),delete w[a]},Math.min(1e3*o(c),2147483647))]=0,u(t,a)},c.prototype.format=function(t,e){return n(r(t,this.nowDate),e,this.defaultLocale)},c.prototype.render=function(t,e){void 0===t.length&&(t=[t]);for(var n=0,r=t.length;n {\n registerIconAlias('trash', 'delete');\n registerIconAlias('onedrive', 'onedrivelogo');\n registerIconAlias('alertsolid12', 'eventdatemissed12');\n registerIconAlias('sixpointstar', '6pointstar');\n registerIconAlias('twelvepointstar', '12pointstar');\n registerIconAlias('toggleon', 'toggleleft');\n registerIconAlias('toggleoff', 'toggleright');\n};\n\nexport default registerIconAliases;\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { KeyCodes } from './KeyCodes';\nimport { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './sessionStorage';\nimport { setRTL as mergeStylesSetRTL } from '@uifabric/merge-styles';\n\nconst RTL_LOCAL_STORAGE_KEY = 'isRTL';\n\n// Default to undefined so that we initialize on first read.\nlet _isRTL: boolean | undefined;\n\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n */\nexport function getRTL(theme: { rtl?: boolean } = {}): boolean {\n if (theme.rtl !== undefined) {\n return theme.rtl;\n }\n if (_isRTL === undefined) {\n // Fabric supports persisting the RTL setting between page refreshes via session storage\n let savedRTL = getItem(RTL_LOCAL_STORAGE_KEY);\n if (savedRTL !== null) {\n _isRTL = savedRTL === '1';\n setRTL(_isRTL);\n }\n\n let doc = getDocument();\n if (_isRTL === undefined && doc) {\n _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';\n mergeStylesSetRTL(_isRTL);\n }\n }\n\n return !!_isRTL;\n}\n\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n */\nexport function setRTL(isRTL: boolean, persistSetting: boolean = false): void {\n let doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n }\n\n if (persistSetting) {\n setItem(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');\n }\n\n _isRTL = isRTL;\n mergeStylesSetRTL(_isRTL);\n}\n\n/**\n * Returns the given key, but flips right/left arrows if necessary.\n */\nexport function getRTLSafeKeyCode(key: number, theme: { rtl?: boolean } = {}): number {\n if (getRTL(theme)) {\n if (key === KeyCodes.left) {\n key = KeyCodes.right;\n } else if (key === KeyCodes.right) {\n key = KeyCodes.left;\n }\n }\n\n return key;\n}\n","/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key: string): string | null {\n let result = null;\n try {\n result = window.sessionStorage.getItem(key);\n } catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key: string, data: string): void {\n try {\n window.sessionStorage.setItem(key, data);\n } catch (e) {\n /* Eat the exception */\n }\n}\n","import { Stylesheet } from '@uifabric/merge-styles';\n\n// tslint:disable:no-any\ndeclare class WeakMap {\n public get(key: any): any;\n public set(key: any, value: any): void;\n public has(key: any): boolean;\n}\n\nlet _initializedStylesheetResets = false;\nlet _resetCounter = 0;\nconst _emptyObject = { empty: true };\nconst _dictionary: any = {};\nlet _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n\ninterface IMemoizeNode {\n map: WeakMap | null;\n value?: any;\n}\n\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap: any): void {\n _weakMap = weakMap;\n}\n\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations(): void {\n _resetCounter++;\n}\n\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(\n target: any,\n key: string,\n descriptor: TypedPropertyDescriptor,\n): {\n configurable: boolean;\n get(): T;\n} {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n let fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n\n return {\n configurable: true,\n get(): T {\n return fn;\n },\n };\n}\n\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction RET_TYPE, RET_TYPE>(\n cb: T,\n maxCacheSize: number = 100,\n ignoreNullOrUndefinedResult: boolean = false,\n): T {\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n\n if (!_initializedStylesheetResets) {\n const stylesheet = Stylesheet.getInstance();\n\n if (stylesheet && stylesheet.onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n\n let rootNode: any;\n let cacheSize = 0;\n let localResetCounter = _resetCounter;\n\n // tslint:disable-next-line:no-function-expression\n return function memoizedFunction(...args: any[]): RET_TYPE {\n let currentNode: any = rootNode;\n\n if (\n rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)\n ) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n\n currentNode = rootNode;\n\n // Traverse the tree until we find the match.\n for (let i = 0; i < args.length; i++) {\n let arg = _normalizeArg(args[i]);\n\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n\n currentNode = currentNode.map.get(arg);\n }\n\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb(...args);\n cacheSize++;\n }\n\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb(...args);\n }\n\n return currentNode.value;\n } as any;\n}\n\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer any>(getValue: F): F {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n\n const cache = new _weakMap();\n\n function memoizedGetValue(input: any): any {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n\n if (cache.has(input)) {\n // tslint:disable-next-line:no-non-null-assertion\n return cache.get(input)!;\n }\n\n const value = getValue(input);\n\n cache.set(input, value);\n\n return value;\n }\n\n return memoizedGetValue as F;\n}\n\nfunction _normalizeArg(val: null | undefined): { empty: boolean } | any;\nfunction _normalizeArg(val: object): any;\nfunction _normalizeArg(val: any): any {\n if (!val) {\n return _emptyObject;\n } else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n } else if (!_dictionary[val]) {\n _dictionary[val] = { val };\n }\n\n return _dictionary[val];\n}\n\nfunction _createNode(): IMemoizeNode {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n","import { filteredAssign } from './object';\n\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport const baseElementEvents = [\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n];\n\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport const baseElementProperties = [\n 'accessKey', // global\n 'children', // global\n 'className', // global\n 'contentEditable', // global\n 'dir', // global\n 'draggable', // global\n 'hidden', // global\n 'htmlFor', // global\n 'id', // global\n 'lang', // global\n 'role', // global\n 'style', // global\n 'tabIndex', // global\n 'title', // global\n 'translate', // global\n 'spellCheck', // global\n 'name', // global\n];\n\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport const htmlElementProperties = baseElementProperties.concat(baseElementEvents);\n\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport const labelProperties = htmlElementProperties.concat([\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n\n/**\n * An array of AUDIO tag properties and events.\n *\n * @public\n */\nexport const audioProperties = htmlElementProperties.concat([\n 'height', // canvas, embed, iframe, img, input, object, video\n 'loop', // audio, video\n 'muted', // audio, video\n 'preload', // audio, video\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport const videoProperties = audioProperties.concat([\n 'poster', // video\n]);\n\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport const olProperties = htmlElementProperties.concat([\n 'start', // ol\n]);\n\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport const liProperties = htmlElementProperties.concat([\n 'value', // button, input, li, option, meter, progress, param\n]);\n\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport const anchorProperties = htmlElementProperties.concat([\n 'download', // a, area\n 'href', // a, area, base, link\n 'hrefLang', // a, area, link\n 'media', // a, area, link, source, style\n 'rel', // a, area, link\n 'target', // a, area, base, form\n 'type', // a, button, input, link, menu, object, script, source, style\n]);\n\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport const buttonProperties = htmlElementProperties.concat([\n 'autoFocus', // button, input, select, textarea\n 'disabled', // button, fieldset, input, optgroup, option, select, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'formAction', // input, button\n 'formEncType', // input, button\n 'formMethod', // input, button\n 'formNoValidate', // input, button\n 'formTarget', // input, button\n 'type', // a, button, input, link, menu, object, script, source, style\n 'value', // button, input, li, option, meter, progress, param,\n]);\n\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport const inputProperties = buttonProperties.concat([\n 'accept', // input\n 'alt', // area, img, input\n 'autoCapitalize', // input, textarea\n 'autoComplete', // form, input\n 'checked', // input\n 'dirname', // input, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'height', // canvas, embed, iframe, img, input, object, video\n 'inputMode', // input\n 'list', // input\n 'max', // input, meter\n 'maxLength', // input, textarea\n 'min', // input, meter\n 'multiple', // input, select\n 'pattern', // input\n 'placeholder', // input, textarea\n 'readOnly', // input, textarea\n 'required', // input, select, textarea\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'step', // input\n 'size', // input\n 'type', // a, button, input, link, menu, object, script, source, style\n 'value', // button, input, li, option, meter, progress, param\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport const textAreaProperties = buttonProperties.concat([\n 'autoCapitalize', // input, textarea\n 'cols', // textarea\n 'dirname', // input, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'maxLength', // input, textarea\n 'placeholder', // input, textarea\n 'readOnly', // input, textarea\n 'required', // input, select, textarea\n 'rows', // textarea\n 'wrap', // textarea\n]);\n\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport const selectProperties = buttonProperties.concat([\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'multiple', // input, select\n 'required', // input, select, textarea\n]);\n\nexport const optionProperties = htmlElementProperties.concat([\n 'selected', // option\n 'value', // button, input, li, option, meter, progress, param\n]);\n\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport const tableProperties = htmlElementProperties.concat([\n 'cellPadding', // table\n 'cellSpacing', // table\n]);\n\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport const trProperties = htmlElementProperties;\n\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport const thProperties = htmlElementProperties.concat([\n 'rowSpan', // td, th\n 'scope', // th\n]);\n\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport const tdProperties = htmlElementProperties.concat([\n 'colSpan', // td\n 'headers', // td\n 'rowSpan', // td, th\n 'scope', // th\n]);\n\nexport const colGroupProperties = htmlElementProperties.concat([\n 'span', // col, colgroup\n]);\n\nexport const colProperties = htmlElementProperties.concat([\n 'span', // col, colgroup\n]);\n\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport const formProperties = htmlElementProperties.concat([\n 'acceptCharset', // form\n 'action', // form\n 'encType', // form\n 'encType', // form\n 'method', // form\n 'noValidate', // form\n 'target', // form\n]);\n\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport const iframeProperties = htmlElementProperties.concat([\n 'allow', // iframe\n 'allowFullScreen', // iframe\n 'allowPaymentRequest', // iframe\n 'allowTransparency', // iframe\n 'csp', // iframe\n 'height', // canvas, embed, iframe, img, input, object, video\n 'importance', // iframe\n 'referrerPolicy', // iframe\n 'sandbox', // iframe\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'srcDoc', // iframe\n 'width', // canvas, embed, iframe, img, input, object, video,\n]);\n\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport const imgProperties = htmlElementProperties.concat([\n 'alt', // area, img, input\n 'crossOrigin', // img\n 'height', // canvas, embed, iframe, img, input, object, video\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'srcSet', // img, source\n 'useMap', // img, object,\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport const imageProperties = imgProperties;\n\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport const divProperties = htmlElementProperties;\n\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames- The array of allowed propnames.\n * @returns The filtered props\n */\nexport function getNativeProps(props: {}, allowedPropNames: string[], excludedPropNames?: string[]): T {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n return filteredAssign(\n (propName: string) => {\n return (\n (!excludedPropNames || excludedPropNames.indexOf(propName) < 0) &&\n (propName.indexOf('data-') === 0 || propName.indexOf('aria-') === 0 || allowedPropNames.indexOf(propName) >= 0)\n );\n },\n {},\n props,\n ) as T;\n}\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\n// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// 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, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n","'use strict'\n\n// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","'use strict'\n\nmodule.exports = require('./dist')\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var stack = [{type: 'root', children: []}]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n stack[0].position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n return stack[0]\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar miniflat = require('./util/miniflat.js')\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\nvar content = require('../tokenize/content.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n} // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar chunkedPush = require('./chunked-push.js')\nvar miniflat = require('./miniflat.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('./shallow.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar shallow = require('../util/shallow.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar prefixSize = require('../util/prefix-size.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar asciiAlpha = require('../character/ascii-alpha.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n return ok(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\nvar shallow = require('../util/shallow.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0, i, n;\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\n/* Expose. */\nmodule.exports = visitParents\n\n/* Visit. */\nfunction visitParents(tree, type, visitor) {\n var stack = []\n\n if (typeof type === 'function') {\n visitor = type\n type = null\n }\n\n one(tree)\n\n /* Visit a single node. */\n function one(node) {\n var result\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat())\n }\n\n if (node.children && result !== false) {\n return all(node.children, node)\n }\n\n return result\n }\n\n /* Visit children in `parent`. */\n function all(children, parent) {\n var length = children.length\n var index = -1\n var child\n\n stack.push(parent)\n\n while (++index < length) {\n child = children[index]\n\n if (child && one(child) === false) {\n return false\n }\n }\n\n stack.pop()\n\n return true\n }\n}\n","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (test == null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test)\n }\n\n if (typeof test === 'function') {\n return test\n }\n\n throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n return all\n\n function all(node) {\n var key\n\n for (key in test) {\n if (node[key] !== test[key]) return false\n }\n\n return true\n }\n}\n\nfunction anyFactory(tests) {\n var checks = []\n var index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return any\n\n function any() {\n var index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string into a function which checks a given node’s type\n// for said string.\nfunction typeFactory(test) {\n return type\n\n function type(node) {\n return Boolean(node && node.type === test)\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","module.exports = identity\nfunction identity(d) {\n return d\n}\n","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin)))\n minver = setMin\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","const Range = require('../classes/range.js')\nconst { ANY } = require('../classes/comparator.js')\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else return false\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If any C is a = range, and GT or LT are set, return false\n// - Else return true\n\nconst subset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n if (sub.length === 1 && sub[0].semver === ANY)\n return dom.length === 1 && dom[0].semver === ANY\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","import { concatStyleSets } from './concatStyleSets';\nimport { IStyleSet } from './IStyleSet';\nimport { IStyleFunctionOrObject } from './IStyleFunction';\nimport { DeepPartial } from './DeepPartial';\n\n/**\n * Concatenates style sets into one, but resolves functional sets using the given props.\n * @param styleProps - Props used to resolve functional sets.\n * @param allStyles - Style sets, which can be functions or objects.\n */\nexport function concatStyleSetsWithProps>(\n styleProps: TStyleProps,\n ...allStyles: (IStyleFunctionOrObject | undefined)[]\n): DeepPartial {\n const result: DeepPartial[] = [];\n for (const styles of allStyles) {\n if (styles) {\n result.push(typeof styles === 'function' ? styles(styleProps) : styles);\n }\n }\n if (result.length === 1) {\n return result[0] as DeepPartial;\n } else if (result.length) {\n // cliffkoh: I cannot figure out how to avoid the cast to any here.\n // It is something to do with the use of Omit in IStyleSet.\n // It might not be necessary once Omit becomes part of lib.d.ts (when we remove our own Omit and rely on\n // the official version).\n // tslint:disable-next-line:no-any\n return concatStyleSets(...(result as any)) as any;\n }\n\n return {};\n}\n","import { concatStyleSets } from './concatStyleSets';\nimport { extractStyleParts } from './extractStyleParts';\nimport { IStyle } from './IStyle';\nimport { IStyleOptions } from './IStyleOptions';\nimport { IConcatenatedStyleSet, IProcessedStyleSet, IStyleSet } from './IStyleSet';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { applyRegistration, styleToRegistration } from './styleToClassName';\nimport { ObjectOnly } from './ObjectOnly';\n\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSet - The first style set to be merged and reigstered.\n */\nexport function mergeStyleSets(\n styleSet: TStyleSet | false | null | undefined,\n): IProcessedStyleSet>;\n\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSet1 - The first style set to be merged.\n * @param styleSet2 - The second style set to be merged.\n */\nexport function mergeStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n): IProcessedStyleSet & ObjectOnly>;\n\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSet1 - The first style set to be merged.\n * @param styleSet2 - The second style set to be merged.\n * @param styleSet3 - The third style set to be merged.\n */\nexport function mergeStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n): IProcessedStyleSet & ObjectOnly & ObjectOnly>;\n\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSet1 - The first style set to be merged.\n * @param styleSet2 - The second style set to be merged.\n * @param styleSet3 - The third style set to be merged.\n * @param styleSet4 - The fourth style set to be merged.\n */\nexport function mergeStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n styleSet4: TStyleSet4 | false | null | undefined,\n): IProcessedStyleSet<\n ObjectOnly & ObjectOnly & ObjectOnly & ObjectOnly\n>;\n\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets(...styleSets: Array): IProcessedStyleSet;\n\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets(...styleSets: Array): IProcessedStyleSet {\n return mergeCssSets(styleSets as any, getStyleOptions());\n}\n\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(\n styleSets: [TStyleSet | false | null | undefined],\n options?: IStyleOptions,\n): IProcessedStyleSet;\n\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(\n styleSets: [TStyleSet1 | false | null | undefined, TStyleSet2 | false | null | undefined],\n options?: IStyleOptions,\n): IProcessedStyleSet;\n\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(\n styleSets: [\n TStyleSet1 | false | null | undefined,\n TStyleSet2 | false | null | undefined,\n TStyleSet3 | false | null | undefined,\n ],\n options?: IStyleOptions,\n): IProcessedStyleSet;\n\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(\n styleSets: [\n TStyleSet1 | false | null | undefined,\n TStyleSet2 | false | null | undefined,\n TStyleSet3 | false | null | undefined,\n TStyleSet4 | false | null | undefined,\n ],\n options?: IStyleOptions,\n): IProcessedStyleSet<\n ObjectOnly & ObjectOnly & ObjectOnly & ObjectOnly\n>;\n\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(\n styleSet: [TStyleSet | false | null | undefined],\n options?: IStyleOptions,\n): IProcessedStyleSet;\n\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(\n styleSets: Array,\n options?: IStyleOptions,\n): IProcessedStyleSet {\n // tslint:disable-next-line:no-any\n const classNameSet: IProcessedStyleSet = { subComponentStyles: {} };\n\n const styleSet = styleSets[0];\n\n if (!styleSet && styleSets.length <= 1) {\n return { subComponentStyles: {} } as any;\n }\n\n const concatenatedStyleSet = concatStyleSets(...styleSets);\n\n const registrations = [];\n\n for (const styleSetArea in concatenatedStyleSet) {\n if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {\n if (styleSetArea === 'subComponentStyles') {\n classNameSet.subComponentStyles = (concatenatedStyleSet as IConcatenatedStyleSet).subComponentStyles || {};\n continue;\n }\n\n const styles: IStyle = (concatenatedStyleSet as any)[styleSetArea];\n\n const { classes, objects } = extractStyleParts(styles);\n\n if (objects?.length) {\n const registration = styleToRegistration(options || {}, { displayName: styleSetArea }, objects);\n\n if (registration) {\n registrations.push(registration);\n classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n }\n } else {\n classNameSet[styleSetArea] = classes.join(' ');\n }\n }\n }\n\n for (const registration of registrations) {\n if (registration) {\n applyRegistration(registration, options?.specificityMultiplier);\n }\n }\n\n return classNameSet as any;\n}\n","/**\n * Dictionary of booleans.\n *\n * @internal\n */\nexport interface IDictionary {\n [className: string]: boolean;\n}\n\n/**\n * Serializable object.\n *\n * @internal\n */\nexport interface ISerializableObject {\n toString?: () => string;\n}\n\n/**\n * css input type.\n *\n * @internal\n */\nexport type ICssInput = string | ISerializableObject | IDictionary | null | undefined | boolean;\n\n/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css(...args: ICssInput[]): string {\n let classes = [];\n\n for (let arg of args) {\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n } else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n } else {\n // tslint:disable-next-line:no-any\n for (let key in arg as any) {\n // tslint:disable-next-line:no-any\n if ((arg as any)[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n","import * as React from 'react';\nimport { IStyleSet, IStyleFunctionOrObject, concatStyleSetsWithProps } from '@uifabric/merge-styles';\nimport { Customizations } from './customizations/Customizations';\nimport { CustomizerContext, ICustomizerContext } from './customizations/CustomizerContext';\n\nexport interface IPropsWithStyles> {\n styles?: IStyleFunctionOrObject;\n}\n\nexport interface ICustomizableProps {\n /**\n * Name of scope, which can be targeted using the Customizer.\n */\n scope: string;\n\n /**\n * List of fields which can be customized.\n * @defaultvalue [ 'theme', 'styles' ]\n */\n fields?: string[];\n}\n\nconst DefaultFields = ['theme', 'styles'];\n\nexport type StyleFunction = IStyleFunctionOrObject & {\n /** Cache for all style functions. */\n __cachedInputs__: (IStyleFunctionOrObject | undefined)[];\n\n /** True if no styles prop or styles from Customizer is passed to wrapped component. */\n __noStyleOverride__: boolean;\n};\n\n/**\n * The styled HOC wrapper allows you to create a functional wrapper around a given component which will resolve\n * getStyles functional props, and mix customized props passed in using concatStyleSets.\n *\n * @example\n * ```tsx\n * export const Toggle = styled(\n * ToggleBase,\n * props => ({ root: { background: 'red' }})\n * );\n * ```\n * @param Component - The unstyled base component to render, which receives styles.\n * @param baseStyles - The styles which should be curried with the component.\n * @param getProps - A helper which provides default props.\n * @param customizable - An object which defines which props can be customized using the Customizer.\n * @param pure - A boolean indicating if the component should avoid re-rendering when props haven't changed.\n * Note that pure should not be used on components which allow children, or take in complex objects or\n * arrays as props which could mutate on every render.\n */\nexport function styled<\n TComponentProps extends IPropsWithStyles,\n TStyleProps,\n TStyleSet extends IStyleSet\n>(\n Component: React.ComponentClass | React.FunctionComponent,\n baseStyles: IStyleFunctionOrObject,\n getProps?: (props: TComponentProps) => Partial,\n customizable?: ICustomizableProps,\n pure?: boolean,\n): React.FunctionComponent {\n customizable = customizable || { scope: '', fields: undefined };\n\n const { scope, fields = DefaultFields } = customizable;\n const ParentComponent = pure ? React.PureComponent : React.Component;\n\n class Wrapped extends ParentComponent {\n // Function.prototype.name is an ES6 feature, so the cast to any is required until we're\n // able to drop IE 11 support and compile with ES6 libs\n // tslint:disable-next-line:no-any\n public static displayName = `Styled${Component.displayName || (Component as any).name}`;\n\n private _inCustomizerContext = false;\n private _styles: StyleFunction;\n\n public render(): JSX.Element {\n return {this._renderContent};\n }\n\n public componentDidMount(): void {\n if (!this._inCustomizerContext) {\n Customizations.observe(this._onSettingsChanged);\n }\n }\n\n public componentWillUnmount(): void {\n if (!this._inCustomizerContext) {\n Customizations.unobserve(this._onSettingsChanged);\n }\n }\n\n private _renderContent = (context: ICustomizerContext): JSX.Element => {\n this._inCustomizerContext = !!context.customizations.inCustomizerContext;\n\n const settings = Customizations.getSettings(fields, scope, context.customizations);\n const { styles: customizedStyles, dir, ...rest } = settings;\n const additionalProps = getProps ? getProps(this.props) : undefined;\n\n this._updateStyles(customizedStyles);\n\n return ;\n };\n\n private _updateStyles(customizedStyles: IStyleFunctionOrObject): void {\n // tslint:disable-next-line:no-any\n const cache = (this._styles && (this._styles as any).__cachedInputs__) || [];\n if (!this._styles || customizedStyles !== cache[1] || this.props.styles !== cache[2]) {\n // Cache the customized styles.\n // this._customizedStyles = customizedStyles;\n\n // Using styled components as the Component arg will result in nested styling arrays.\n const concatenatedStyles: IStyleFunctionOrObject = (styleProps: TStyleProps) =>\n concatStyleSetsWithProps(styleProps, baseStyles, customizedStyles, this.props.styles);\n\n // The __cachedInputs__ array is attached to the function and consumed by the\n // classNamesFunction as a list of keys to include for memoizing classnames.\n (concatenatedStyles as StyleFunction).__cachedInputs__ = [\n baseStyles,\n customizedStyles,\n this.props.styles,\n ];\n\n (concatenatedStyles as StyleFunction).__noStyleOverride__ =\n !customizedStyles && !this.props.styles;\n\n this._styles = concatenatedStyles as StyleFunction;\n }\n }\n\n private _onSettingsChanged = (): void => this.forceUpdate();\n }\n\n // This preserves backwards compatibility.\n // tslint:disable-next-line:no-any\n return Wrapped as any;\n}\n","import { mergeCssSets, IStyleSet, IProcessedStyleSet, Stylesheet } from '@uifabric/merge-styles';\nimport { IStyleFunctionOrObject } from '@uifabric/merge-styles';\nimport { getRTL } from './rtl';\nimport { getWindow } from './dom';\nimport { StyleFunction } from './styled';\n\nconst MAX_CACHE_COUNT = 50;\nconst DEFAULT_SPECIFICITY_MULTIPLIER = 5;\n\nlet _memoizedClassNames = 0;\n\nconst stylesheet = Stylesheet.getInstance();\n\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(() => _memoizedClassNames++);\n}\n\n// Note that because of the caching nature within the classNames memoization,\n// I've disabled this rule to simply be able to work with any types.\n// tslint:disable:no-any\n\n// This represents a prop we attach to each Map to indicate the cached return value\n// associated with the graph node.\nconst RetVal = '__retval__';\n\ninterface IRecursiveMemoNode extends Map {\n [RetVal]?: string;\n}\n\ntype AppWindow = (Window & { FabricConfig?: { enableClassNameCacheFullWarning?: boolean } }) | undefined;\n\nexport interface IClassNamesFunctionOptions {\n /**\n * Disables class caching for scenarios where styleProp parts mutate frequently.\n */\n disableCaching?: boolean;\n\n /**\n * Size of the cache. It overwrites default cache size when defined.\n */\n cacheSize?: number;\n\n /**\n * Set to true if component base styles are implemented in scss instead of css-in-js.\n */\n useStaticStyles?: boolean;\n}\n\n/**\n * Creates a getClassNames function which calls getStyles given the props, and injects them\n * into mergeStyleSets.\n *\n * Note that the props you pass in on every render should be in the same order and\n * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating\n * these will cause extra recalcs to occur.\n */\nexport function classNamesFunction>(\n options: IClassNamesFunctionOptions = {},\n): (\n getStyles: IStyleFunctionOrObject | undefined,\n styleProps?: TStyleProps,\n) => IProcessedStyleSet {\n // We build a trie where each node is a Map. The map entry key represents an argument\n // value, and the entry value is another node (Map). Each node has a `__retval__`\n // property which is used to hold the cached response.\n\n // To derive the response, we can simply ensure the arguments are added or already\n // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise\n // we call the `getStyles` api to evaluate, cache on the property, and return that.\n let map: IRecursiveMemoNode = new Map();\n let styleCalcCount = 0;\n let getClassNamesCount = 0;\n let currentMemoizedClassNames = _memoizedClassNames;\n\n const getClassNames = (\n styleFunctionOrObject: IStyleFunctionOrObject | undefined,\n styleProps: TStyleProps = {} as TStyleProps,\n ): IProcessedStyleSet => {\n // If useStaticStyles is true, styleFunctionOrObject returns slot to classname mappings.\n // If there is also no style overrides, we can skip merge styles completely and\n // simply return the result from the style funcion.\n if (\n options.useStaticStyles &&\n typeof styleFunctionOrObject === 'function' &&\n (styleFunctionOrObject as StyleFunction).__noStyleOverride__\n ) {\n return styleFunctionOrObject(styleProps) as IProcessedStyleSet;\n }\n\n getClassNamesCount++;\n let current: Map = map;\n const { theme } = styleProps as any;\n const rtl = theme && theme.rtl !== undefined ? theme.rtl : getRTL();\n\n const disableCaching = options.disableCaching;\n\n // On reset of our stylesheet, reset memoized cache.\n if (currentMemoizedClassNames !== _memoizedClassNames) {\n currentMemoizedClassNames = _memoizedClassNames;\n map = new Map();\n styleCalcCount = 0;\n }\n\n if (!options.disableCaching) {\n current = _traverseMap(map, styleFunctionOrObject as any);\n current = _traverseMap(current, styleProps);\n }\n\n if (disableCaching || !(current as any)[RetVal]) {\n if (styleFunctionOrObject === undefined) {\n (current as any)[RetVal] = {} as IProcessedStyleSet;\n } else {\n (current as any)[RetVal] = mergeCssSets(\n [\n (typeof styleFunctionOrObject === 'function'\n ? styleFunctionOrObject(styleProps)\n : styleFunctionOrObject) as IStyleSet,\n ],\n { rtl: !!rtl, specificityMultiplier: options.useStaticStyles ? DEFAULT_SPECIFICITY_MULTIPLIER : undefined },\n );\n }\n\n if (!disableCaching) {\n styleCalcCount++;\n }\n }\n\n if (styleCalcCount > (options.cacheSize || MAX_CACHE_COUNT)) {\n const win = getWindow() as AppWindow;\n if (win?.FabricConfig?.enableClassNameCacheFullWarning) {\n console.warn(\n `Styles are being recalculated too frequently. Cache miss rate is ${styleCalcCount}/${getClassNamesCount}.`,\n );\n // tslint:disable-next-line:no-console\n console.trace();\n }\n\n map.clear();\n styleCalcCount = 0;\n\n // Mutate the options passed in, that's all we can do.\n options.disableCaching = true;\n }\n\n // Note: the RetVal is an attached property on the Map; not a key in the Map. We use this attached property to\n // cache the return value for this branch of the graph.\n return (current as any)[RetVal];\n };\n\n return getClassNames;\n}\n\nfunction _traverseEdge(current: Map, value: any): Map {\n value = _normalizeValue(value);\n\n if (!current.has(value)) {\n current.set(value, new Map());\n }\n\n return current.get(value);\n}\n\nfunction _traverseMap(current: Map, inputs: any[] | Object): Map {\n if (typeof inputs === 'function') {\n const cachedInputsFromStyled = (inputs as StyleFunction).__cachedInputs__;\n if (cachedInputsFromStyled) {\n // The styled helper will generate the styles function and will attach the cached\n // inputs (consisting of the default styles, customzied styles, and user provided styles.)\n // These should be used as cache keys for deriving the memoized value.\n for (const input of (inputs as any).__cachedInputs__) {\n current = _traverseEdge(current, input);\n }\n } else {\n current = _traverseEdge(current, inputs);\n }\n } else if (typeof inputs === 'object') {\n for (const propName in inputs) {\n if (inputs.hasOwnProperty(propName)) {\n current = _traverseEdge(current, (inputs as any)[propName]);\n }\n }\n }\n\n return current;\n}\n\nfunction _normalizeValue(value: any): string {\n switch (value) {\n case undefined:\n return '__undefined__';\n case null:\n return '__null__';\n default:\n return value;\n }\n}\n","export interface ISelectableOption {\r\n /**\r\n * Arbitrary string associated with this option.\r\n */\r\n key: string | number;\r\n\r\n /**\r\n * ID attribute associated with this option\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Text to render for this option\r\n */\r\n text: string;\r\n\r\n /**\r\n * Title attribute (built in tooltip) for a given option.\r\n */\r\n title?: string;\r\n\r\n /**\r\n * Text to render for this option\r\n */\r\n itemType?: SelectableOptionMenuItemType;\r\n\r\n /**\r\n * Index for this option\r\n */\r\n index?: number;\r\n\r\n /**\r\n * The aria label for the dropdown option. If not present, the `text` will be used.\r\n */\r\n ariaLabel?: string;\r\n\r\n /** If option is selected. */\r\n selected?: boolean;\r\n\r\n /**\r\n * Whether the option is disabled\r\n * @defaultvalue false\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Defines whether the option is hidden or not.\r\n * @defaultvalue false\r\n */\r\n hidden?: boolean;\r\n\r\n /**\r\n * Data available to custom onRender functions.\r\n */\r\n data?: any;\r\n}\r\n\r\nexport enum SelectableOptionMenuItemType {\r\n Normal = 0,\r\n Divider = 1,\r\n Header = 2,\r\n}\r\n","import { extractStyleParts } from './extractStyleParts';\nimport { IStyle, IStyleBaseArray } from './IStyle';\nimport { IStyleOptions } from './IStyleOptions';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { styleToClassName } from './styleToClassName';\n\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles(...args: (IStyle | IStyleBaseArray | false | null | undefined)[]): string {\n return mergeCss(args, getStyleOptions());\n}\n\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(\n args: (IStyle | IStyleBaseArray | false | null | undefined) | (IStyle | IStyleBaseArray | false | null | undefined)[],\n options?: IStyleOptions,\n): string {\n const styleArgs = args instanceof Array ? args : [args];\n const { classes, objects } = extractStyleParts(styleArgs);\n\n if (objects.length) {\n classes.push(styleToClassName(options || {}, objects));\n }\n\n return classes.join(' ');\n}\n","import * as React from 'react';\nimport { IBaseProps } from './BaseComponent.types';\nimport { extendComponent } from './extendComponent';\n\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj: React.Component): void {\n extendComponent(obj, {\n componentDidMount: _onMount,\n componentDidUpdate: _onUpdate,\n componentWillUnmount: _onUnmount,\n });\n}\n\nfunction _onMount(): void {\n _setComponentRef(this.props.componentRef, this);\n}\n\nfunction _onUpdate(prevProps: IBaseProps): void {\n if (prevProps.componentRef !== this.props.componentRef) {\n // tslint:disable-next-line:no-any\n _setComponentRef((prevProps as any).componentRef, null);\n _setComponentRef(this.props.componentRef, this);\n }\n}\n\nfunction _onUnmount(): void {\n _setComponentRef(this.props.componentRef, null);\n}\n\nfunction _setComponentRef(componentRef: React.RefObject, value: TInterface | null): void {\n if (componentRef) {\n if (typeof componentRef === 'object') {\n (componentRef as { current: TInterface | null }).current = value;\n } else if (typeof componentRef === 'function') {\n (componentRef as Function)(value);\n }\n }\n}\n","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@uifabric/merge-styles';\n\n// Initialize global window id.\nconst CURRENT_ID_PROPERTY = '__currentId__';\nconst DEFAULT_ID_STRING = 'id__';\n\n// tslint:disable-next-line:no-any\nlet _global: any = getWindow() || {};\n\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n _global[CURRENT_ID_PROPERTY] = 0;\n}\n\nlet _initializedStylesheetResets = false;\n\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix?: string): string {\n if (!_initializedStylesheetResets) {\n // Configure ids to reset on stylesheet resets.\n const stylesheet = Stylesheet.getInstance();\n\n if (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(resetIds);\n }\n _initializedStylesheetResets = true;\n }\n\n let index = _global[CURRENT_ID_PROPERTY]++;\n\n return (prefix || DEFAULT_ID_STRING) + index;\n}\n\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter: number = 0): void {\n _global[CURRENT_ID_PROPERTY] = counter;\n}\n","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array: T[], cb: (item: T, index: number) => boolean, fromIndex: number = 0): number {\n let index = -1;\n\n for (let i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n\n return index;\n}\n\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array: T[], cb: (item: T, index: number) => boolean): T | undefined {\n let index = findIndex(array, cb);\n\n if (index < 0) {\n return undefined;\n }\n\n return array[index];\n}\n\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size: number, getItem: (index: number) => T): T[] {\n let array: T[] = [];\n\n for (let i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n\n return array;\n}\n\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items: T[], columnCount: number): T[][] {\n return items.reduce((rows: T[][], currentValue: T, index: number) => {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n } else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, [] as T[][]);\n}\n\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array: T[], index: number): T[] {\n return array.filter((_: T, i: number) => index !== i);\n}\n\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array: T[], newElement: T, index: number): T[] {\n const copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array: T[], index: number, itemToAdd: T): T[] {\n const copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array: (T | T[])[]): T[] {\n let result: T[] = [];\n array.forEach((item: T | T[]): T[] => (result = result.concat(item)));\n return result;\n}\n\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1: T[], array2: T[]): boolean {\n if (array1.length !== array2.length) {\n return false;\n }\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues(...ariaAttributes: (string | undefined | false)[]): string | undefined {\n const mergedAttribute = ariaAttributes\n .filter((arg: string | undefined | false) => arg)\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child: HTMLElement, allowVirtualParents: boolean = true): HTMLElement | null {\n return (\n child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && (child.parentNode as HTMLElement)))\n );\n}\n","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child: HTMLElement): HTMLElement | undefined {\n let parent: HTMLElement | undefined;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n","import { IVirtualElement } from './IVirtualElement';\n/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element: HTMLElement | IVirtualElement): element is IVirtualElement {\n return element && !!(element)._virtual;\n}\n","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(\n element: HTMLElement | null,\n matchFunction: (element: HTMLElement) => boolean,\n): HTMLElement | null {\n if (!element || element === document.body) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(\n parent: HTMLElement | null,\n child: HTMLElement | null,\n allowVirtualParents: boolean = true,\n): boolean {\n let isContained = false;\n if (parent && child) {\n if (allowVirtualParents) {\n isContained = false;\n while (child) {\n let nextParent: HTMLElement | null = getParent(child);\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n child = nextParent;\n }\n } else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n return isContained;\n}\n","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\n\nconst IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nconst IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nconst FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nconst FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n): HTMLElement | null {\n return getNextElement(\n rootElement,\n currentElement,\n true /*checkNode*/,\n false /*suppressParentTraversal*/,\n false /*suppressChildTraversal*/,\n includeElementsInFocusZones,\n );\n}\n\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n): HTMLElement | null {\n return getPreviousElement(\n rootElement,\n currentElement,\n true /*checkNode*/,\n false /*suppressParentTraversal*/,\n true /*traverseChildren*/,\n includeElementsInFocusZones,\n );\n}\n\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n checkNode: boolean = true,\n): HTMLElement | null {\n return getNextElement(\n rootElement,\n currentElement,\n checkNode,\n false /*suppressParentTraversal*/,\n false /*suppressChildTraversal*/,\n includeElementsInFocusZones,\n false /*allowFocusRoot*/,\n true /*tabbable*/,\n );\n}\n\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n checkNode: boolean = true,\n): HTMLElement | null {\n return getPreviousElement(\n rootElement,\n currentElement,\n checkNode,\n false /*suppressParentTraversal*/,\n true /*traverseChildren*/,\n includeElementsInFocusZones,\n false /*allowFocusRoot*/,\n true /*tabbable*/,\n );\n}\n\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement: HTMLElement): boolean {\n let element: HTMLElement | null = getNextElement(rootElement, rootElement, true, false, false, true);\n\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(\n rootElement: HTMLElement,\n currentElement: HTMLElement | null,\n checkNode?: boolean,\n suppressParentTraversal?: boolean,\n traverseChildren?: boolean,\n includeElementsInFocusZones?: boolean,\n allowFocusRoot?: boolean,\n tabbable?: boolean,\n): HTMLElement | null {\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n\n let isCurrentElementVisible = isElementVisible(currentElement);\n\n // Check its children.\n if (\n traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))\n ) {\n const childMatch = getPreviousElement(\n rootElement,\n currentElement.lastElementChild as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n return childMatch;\n }\n\n const childMatchSiblingMatch = getPreviousElement(\n rootElement,\n childMatch.previousElementSibling as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n\n let childMatchParent = childMatch.parentElement;\n\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n const childMatchParentMatch = getPreviousElement(\n rootElement,\n childMatchParent.previousElementSibling as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n\n // Check its previous sibling.\n const siblingMatch = getPreviousElement(\n rootElement,\n currentElement.previousElementSibling as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (siblingMatch) {\n return siblingMatch;\n }\n\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(\n rootElement,\n currentElement.parentElement,\n true,\n false,\n false,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n }\n\n return null;\n}\n\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(\n rootElement: HTMLElement,\n currentElement: HTMLElement | null,\n checkNode?: boolean,\n suppressParentTraversal?: boolean,\n suppressChildTraversal?: boolean,\n includeElementsInFocusZones?: boolean,\n allowFocusRoot?: boolean,\n tabbable?: boolean,\n): HTMLElement | null {\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n\n let isCurrentElementVisible = isElementVisible(currentElement);\n\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n\n // Check its children.\n if (\n !suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))\n ) {\n const childMatch = getNextElement(\n rootElement,\n currentElement.firstElementChild as HTMLElement,\n true,\n true,\n false,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (childMatch) {\n return childMatch;\n }\n }\n\n if (currentElement === rootElement) {\n return null;\n }\n\n // Check its sibling.\n const siblingMatch = getNextElement(\n rootElement,\n currentElement.nextElementSibling as HTMLElement,\n true,\n true,\n false,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (siblingMatch) {\n return siblingMatch;\n }\n\n if (!suppressParentTraversal) {\n return getNextElement(\n rootElement,\n currentElement.parentElement,\n false,\n false,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n }\n\n return null;\n}\n\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element: HTMLElement | undefined | null): boolean {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n\n const visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n\n // Fallback to other methods of determining actual visibility.\n return (\n element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // tslint:disable-next-line:no-any\n (element as any).isVisible === true\n ); // used as a workaround for testing.\n}\n\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element: HTMLElement, checkTabIndex?: boolean): boolean {\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || (element as HTMLButtonElement).disabled) {\n return false;\n }\n\n let tabIndex = 0;\n let tabIndexAttributeValue = null;\n\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n\n let isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n let isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n\n const result =\n !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet);\n\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element?: HTMLElement): boolean {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element?: HTMLElement): boolean {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element: HTMLElement): boolean {\n let document = getDocument(element);\n let currentActiveElement: HTMLElement | undefined = document && (document.activeElement as HTMLElement);\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(\n element: HTMLElement,\n noWrapDataAttribute: 'data-no-vertical-wrap' | 'data-no-horizontal-wrap',\n): boolean {\n return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\n\nlet targetToFocusOnNextRepaint: HTMLElement | { focus: () => void } | null | undefined = undefined;\n\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element: HTMLElement | { focus: () => void } | undefined | null): void {\n if (element) {\n // An element was already queued to be focused, so replace that one with the new element\n if (targetToFocusOnNextRepaint) {\n targetToFocusOnNextRepaint = element;\n return;\n }\n\n targetToFocusOnNextRepaint = element;\n\n const win = getWindow(element as Element);\n\n if (win) {\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n win.requestAnimationFrame(() => {\n targetToFocusOnNextRepaint && targetToFocusOnNextRepaint.focus();\n\n // We are done focusing for this frame, so reset the queued focus element\n targetToFocusOnNextRepaint = undefined;\n });\n }\n }\n}\n\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent: HTMLElement, path: number[]): HTMLElement | undefined {\n let element = parent;\n\n for (const index of path) {\n const nextChild = element.children[Math.min(index, element.children.length - 1)] as HTMLElement;\n\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element)!;\n\n return element as HTMLElement;\n}\n\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement: HTMLElement, toElement: HTMLElement): number[] {\n const path: number[] = [];\n\n while (toElement && fromElement && toElement !== fromElement) {\n const parent = getParent(toElement, true);\n\n if (parent === null) {\n return [];\n }\n\n path.unshift(Array.prototype.indexOf.call(parent.children, toElement));\n toElement = parent;\n }\n\n return path;\n}\n","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element: HTMLElement, attribute: string): string | null {\n let elementMatch = findElementRecursive(element, (testElement: HTMLElement) => testElement.hasAttribute(attribute));\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n","import { getWindow } from './dom/getWindow';\n\nlet isMacResult: boolean | undefined;\n\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset?: boolean): boolean {\n if (typeof isMacResult === 'undefined' || reset) {\n const win = getWindow();\n const userAgent = win && win.navigator.userAgent;\n\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport const isIOS = (): boolean => {\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n","import { DirectionalHint } from '../../common/DirectionalHint';\nimport { IRectangle } from '../../Utilities';\n\nexport enum RectangleEdge {\n top = 1,\n bottom = -1,\n left = 2,\n right = -2,\n}\n\nexport enum Position {\n top = 0,\n bottom = 1,\n start = 2,\n end = 3,\n}\nexport interface IPositionProps {\n target?: Element | MouseEvent | IPoint;\n /** how the element should be positioned */\n directionalHint?: DirectionalHint;\n /**\n * How the element should be positioned in RTL layouts.\n * If not specified, a mirror of `directionalHint` will be used instead\n */\n directionalHintForRTL?: DirectionalHint;\n /** The gap between the callout and the target */\n gapSpace?: number;\n /**\n * The bounding rectangle for which the contextual menu can appear in.\n */\n bounds?: IRectangle;\n /**\n * If true the position returned will have the menu element cover the target.\n * If false then it will position next to the target;\n */\n coverTarget?: boolean;\n /**\n * If true the position will not change edges in an attempt to fit the rectangle within bounds.\n * It will still attempt to align it to whatever bounds are given.\n * @defaultvalue false\n */\n directionalHintFixed?: boolean;\n\n /**\n * If true the positioning logic will prefer flipping edges over nudging the rectangle to fit within bounds,\n * thus making sure the element align perfectly with target.\n */\n alignTargetEdge?: boolean;\n}\n\nexport interface ICalloutPositionProps extends IPositionProps {\n /**\n * The width of the beak.\n */\n beakWidth?: number;\n\n /**\n * Whether or not the beak is visible\n */\n isBeakVisible?: boolean;\n}\n\nexport interface IPositionedData {\n /**\n * The new position of the element.\n */\n elementPosition: IPosition;\n /**\n * The finalized target edge that element is aligning to. For instance RectangleEdge.bottom would mean\n * that the bottom edge of the target is being aligned to by the RectangleEdge.top of the element\n * that is being positioned.\n */\n targetEdge: RectangleEdge;\n /**\n * The finalized alignment edge that the element is aligning too. For instance, RectangleEdge.left means\n * that the left edge of the target should be in line with the left edge of the element being positioned.\n */\n alignmentEdge?: RectangleEdge;\n}\n\nexport interface ICalloutPositionedInfo extends IPositionedData {\n beakPosition: ICalloutBeakPositionedInfo;\n}\n\nexport interface ICalloutBeakPositionedInfo extends IPositionedData {\n closestEdge: RectangleEdge;\n}\n\n/**\n * Gives the position of some element on the page. Only a pair of vertical and horizontal edges need to be\n * given. So top/left or bottom/left is sufficient.\n * The number given is the distance in pixels from whatever host was given..\n * So bottom: 100 would be 100px up from the bottom of the host while top: 100px from the top.\n */\nexport interface IPosition {\n top?: number;\n left?: number;\n bottom?: number;\n right?: number;\n [key: string]: number | undefined;\n}\n\n// tslint:disable-next-line:interface-name\nexport interface Point {\n left?: number;\n top?: number;\n /** @deprecated Use `left` instead */\n x?: number;\n /** @deprecated Use `top` instead */\n y?: number;\n}\n\nexport interface IPoint extends Point {}\n\nexport interface IPositionDirectionalHintData {\n targetEdge: RectangleEdge;\n alignmentEdge?: RectangleEdge;\n isAuto?: boolean;\n alignTargetEdge?: boolean;\n}\n\nexport interface IRelativePositions {\n calloutPosition: IPosition;\n beakPosition: { position: IPosition | undefined; display: 'block' };\n directionalClassName: string;\n submenuDirection: DirectionalHint;\n}\n","export const DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0 as 0,\n\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1 as 1,\n\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2 as 2,\n\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 as 3,\n\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4 as 4,\n\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5 as 5,\n\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6 as 6,\n\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 as 7,\n\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8 as 8,\n\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9 as 9,\n\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10 as 10,\n\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11 as 11,\n\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12 as 12,\n\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13 as 13,\n};\n\nexport type DirectionalHint = typeof DirectionalHint[keyof typeof DirectionalHint];\n","import { getWindow } from './dom/getWindow';\n\ndeclare function setTimeout(cb: Function, delay: number): number;\ndeclare function setInterval(cb: Function, delay: number): number;\n\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nexport class Async {\n private _timeoutIds: { [id: number]: boolean } | null = null;\n private _immediateIds: { [id: number]: boolean } | null = null;\n private _intervalIds: { [id: number]: boolean } | null = null;\n private _animationFrameIds: { [id: number]: boolean } | null = null;\n private _isDisposed: boolean;\n private _parent: object | null;\n // tslint:disable-next-line:no-any\n private _onErrorHandler: ((e: any) => void) | undefined;\n private _noop: () => void;\n // tslint:disable-next-line:no-any\n constructor(parent?: object, onError?: (e: any) => void) {\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = () => {\n /* do nothing */\n };\n }\n\n /**\n * Dispose function, clears all async operations.\n */\n public dispose(): void {\n let id;\n\n this._isDisposed = true;\n this._parent = null;\n\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n\n this._timeoutIds = null;\n }\n\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n\n this._immediateIds = null;\n }\n\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n\n this._animationFrameIds = null;\n }\n }\n\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n public setTimeout(callback: () => void, duration: number): number {\n let timeoutId = 0;\n\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n\n /* tslint:disable:ban-native-functions */\n timeoutId = setTimeout(() => {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n\n try {\n // Now delete the record and call the callback.\n if (this._timeoutIds) {\n delete this._timeoutIds[timeoutId];\n }\n callback.apply(this._parent);\n } catch (e) {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n }\n }, duration);\n /* tslint:enable:ban-native-functions */\n\n this._timeoutIds[timeoutId] = true;\n }\n\n return timeoutId;\n }\n\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n public clearTimeout(id: number): void {\n if (this._timeoutIds && this._timeoutIds[id]) {\n /* tslint:disable:ban-native-functions */\n clearTimeout(id);\n delete this._timeoutIds[id];\n /* tslint:enable:ban-native-functions */\n }\n }\n\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n public setImmediate(callback: () => void, targetElement?: Element | null): number {\n let immediateId = 0;\n const win = getWindow(targetElement)!;\n\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n\n /* tslint:disable:ban-native-functions */\n let setImmediateCallback = () => {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n\n try {\n // Now delete the record and call the callback.\n if (this._immediateIds) {\n delete this._immediateIds[immediateId];\n }\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n };\n\n immediateId = win.setTimeout(setImmediateCallback, 0);\n /* tslint:enable:ban-native-functions */\n\n this._immediateIds[immediateId] = true;\n }\n\n return immediateId;\n }\n\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n public clearImmediate(id: number, targetElement?: Element | null): void {\n const win = getWindow(targetElement)!;\n\n if (this._immediateIds && this._immediateIds[id]) {\n /* tslint:disable:ban-native-functions */\n win.clearTimeout(id);\n delete this._immediateIds[id];\n /* tslint:enable:ban-native-functions */\n }\n }\n\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n public setInterval(callback: () => void, duration: number): number {\n let intervalId = 0;\n\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n\n /* tslint:disable:ban-native-functions */\n intervalId = setInterval(() => {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n }, duration);\n /* tslint:enable:ban-native-functions */\n\n this._intervalIds[intervalId] = true;\n }\n\n return intervalId;\n }\n\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n public clearInterval(id: number): void {\n if (this._intervalIds && this._intervalIds[id]) {\n /* tslint:disable:ban-native-functions */\n clearInterval(id);\n delete this._intervalIds[id];\n /* tslint:enable:ban-native-functions */\n }\n }\n\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n public throttle(\n func: T,\n wait?: number,\n options?: {\n leading?: boolean;\n trailing?: boolean;\n },\n ): T | (() => void) {\n if (this._isDisposed) {\n return this._noop;\n }\n\n let waitMS = wait || 0;\n let leading = true;\n let trailing = true;\n let lastExecuteTime = 0;\n let lastResult: T;\n // tslint:disable-next-line:no-any\n let lastArgs: any[];\n let timeoutId: number | null = null;\n\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n\n let callback = (userCall?: boolean) => {\n let now = new Date().getTime();\n let delta = now - lastExecuteTime;\n let waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(this._parent, lastArgs);\n } else if (timeoutId === null && trailing) {\n timeoutId = this.setTimeout(callback, waitLength);\n }\n\n return lastResult;\n };\n\n // tslint:disable-next-line:no-any\n let resultFunction: () => T = (...args: any[]) => {\n lastArgs = args;\n return callback(true);\n };\n\n return resultFunction;\n }\n\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n public debounce(\n func: T,\n wait?: number,\n options?: {\n leading?: boolean;\n maxWait?: number;\n trailing?: boolean;\n },\n ): ICancelable & (() => void) {\n if (this._isDisposed) {\n let noOpFunction: ICancelable & (() => T) = (() => {\n /** Do nothing */\n }) as ICancelable & (() => T);\n\n noOpFunction.cancel = () => {\n return;\n };\n /* tslint:disable:no-any */\n noOpFunction.flush = (() => null) as any;\n /* tslint:enable:no-any */\n noOpFunction.pending = () => false;\n\n return noOpFunction;\n }\n\n let waitMS = wait || 0;\n let leading = false;\n let trailing = true;\n let maxWait: number | null = null;\n let lastCallTime = 0;\n let lastExecuteTime = new Date().getTime();\n let lastResult: T;\n // tslint:disable-next-line:no-any\n let lastArgs: any[];\n let timeoutId: number | null = null;\n\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n\n let markExecuted = (time: number) => {\n if (timeoutId) {\n this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n\n let invokeFunction = (time: number) => {\n markExecuted(time);\n lastResult = func.apply(this._parent, lastArgs);\n };\n\n let callback = (userCall?: boolean) => {\n let now = new Date().getTime();\n let executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n let delta = now - lastCallTime;\n let waitLength = waitMS - delta;\n let maxWaitDelta = now - lastExecuteTime;\n let maxWaitExpired = false;\n\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n } else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n } else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = this.setTimeout(callback, waitLength);\n }\n\n return lastResult;\n };\n\n let pending = (): boolean => {\n return !!timeoutId;\n };\n\n let cancel = (): void => {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(new Date().getTime());\n }\n };\n\n let flush = (): T => {\n if (pending()) {\n invokeFunction(new Date().getTime());\n }\n\n return lastResult;\n };\n\n // tslint:disable-next-line:no-any\n let resultFunction: ICancelable & (() => T) = ((...args: any[]) => {\n lastArgs = args;\n return callback(true);\n }) as ICancelable & (() => T);\n\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n\n return resultFunction;\n }\n\n public requestAnimationFrame(callback: () => void, targetElement?: Element | null): number {\n let animationFrameId = 0;\n const win = getWindow(targetElement)!;\n\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n\n /* tslint:disable:ban-native-functions */\n let animationFrameCallback = () => {\n try {\n // Now delete the record and call the callback.\n if (this._animationFrameIds) {\n delete this._animationFrameIds[animationFrameId];\n }\n\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n };\n\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n /* tslint:enable:ban-native-functions */\n\n this._animationFrameIds[animationFrameId] = true;\n }\n\n return animationFrameId;\n }\n\n public cancelAnimationFrame(id: number, targetElement?: Element | null): void {\n const win = getWindow(targetElement)!;\n\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n /* tslint:disable:ban-native-functions */\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n /* tslint:enable:ban-native-functions */\n delete this._animationFrameIds[id];\n }\n }\n\n // tslint:disable-next-line:no-any\n protected _logError(e: any): void {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n }\n}\n\nexport type ICancelable = {\n flush: () => T;\n cancel: () => void;\n pending: () => boolean;\n};\n","export function on(\n element: Element | Window,\n eventName: string,\n callback: (ev: Event) => void,\n options?: boolean,\n): () => void {\n element.addEventListener(eventName, callback, options);\n\n return () => element.removeEventListener(eventName, callback, options);\n}\n","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nexport class Rectangle {\n public top: number;\n public bottom: number;\n public left: number;\n public right: number;\n\n constructor(left: number = 0, right: number = 0, top: number = 0, bottom: number = 0) {\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n\n /**\n * Calculated automatically by subtracting the right from left\n */\n get width(): number {\n return this.right - this.left;\n }\n\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n get height(): number {\n return this.bottom - this.top;\n }\n\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n public equals(rect: Rectangle): boolean {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (\n parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4))\n );\n }\n}\n","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@uifabric/merge-styles';\nimport { EventGroup } from './EventGroup';\nimport { getWindow } from './dom/getWindow';\n\nlet _scrollbarWidth: number;\nlet _bodyScrollDisabledCount = 0;\n\nconst DisabledScrollClassName = mergeStyles({\n overflow: 'hidden !important' as 'hidden',\n});\n\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport const DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport const allowScrollOnElement = (element: HTMLElement | null, events: EventGroup): void => {\n if (!element) {\n return;\n }\n\n let _previousClientY = 0;\n let _element: Element | null = null;\n\n // remember the clientY for future calls of _preventOverscrolling\n const _saveClientY = (event: TouchEvent): void => {\n if (event.targetTouches.length === 1) {\n _previousClientY = event.targetTouches[0].clientY;\n }\n };\n\n // prevent the body from scrolling when the user attempts\n // to scroll past the top or bottom of the element\n const _preventOverscrolling = (event: TouchEvent): void => {\n // only respond to a single-finger touch\n if (event.targetTouches.length !== 1) {\n return;\n }\n\n // prevent the body touchmove handler from firing\n // so that scrolling is allowed within the element\n event.stopPropagation();\n\n if (!_element) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY - _previousClientY;\n\n const scrollableParent = findScrollableParent(event.target as HTMLElement);\n if (scrollableParent) {\n _element = scrollableParent;\n }\n\n // if the element is scrolled to the top,\n // prevent the user from scrolling up\n if (_element.scrollTop === 0 && clientY > 0) {\n event.preventDefault();\n }\n\n // if the element is scrolled to the bottom,\n // prevent the user from scrolling down\n if (_element.scrollHeight - _element.scrollTop <= _element.clientHeight && clientY < 0) {\n event.preventDefault();\n }\n };\n\n events.on(element, 'touchstart', _saveClientY, { passive: false });\n events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n\n _element = element;\n};\n\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport const allowOverscrollOnElement = (element: HTMLElement | null, events: EventGroup): void => {\n if (!element) {\n return;\n }\n const _allowElementScroll = (event: TouchEvent) => {\n event.stopPropagation();\n };\n events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\n\nconst _disableIosBodyScroll = (event: TouchEvent) => {\n event.preventDefault();\n};\n\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll(): void {\n let doc = getDocument();\n\n if (doc && doc.body && !_bodyScrollDisabledCount) {\n doc.body.classList.add(DisabledScrollClassName);\n doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n }\n\n _bodyScrollDisabledCount++;\n}\n\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll(): void {\n if (_bodyScrollDisabledCount > 0) {\n let doc = getDocument();\n\n if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n doc.body.classList.remove(DisabledScrollClassName);\n doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n }\n\n _bodyScrollDisabledCount--;\n }\n}\n\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth(): number {\n if (_scrollbarWidth === undefined) {\n let scrollDiv: HTMLElement = document.createElement('div');\n scrollDiv.style.setProperty('width', '100px');\n scrollDiv.style.setProperty('height', '100px');\n scrollDiv.style.setProperty('overflow', 'scroll');\n scrollDiv.style.setProperty('position', 'absolute');\n scrollDiv.style.setProperty('top', '-9999px');\n document.body.appendChild(scrollDiv);\n // Get the scrollbar width\n _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n }\n\n return _scrollbarWidth;\n}\n\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement: HTMLElement | null): HTMLElement | null {\n let el: HTMLElement | null = startingElement;\n const doc = getDocument(startingElement)!;\n\n // First do a quick scan for the scrollable attribute.\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n return el;\n }\n el = el.parentElement;\n }\n\n // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n el = startingElement;\n\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n const computedStyles = getComputedStyle(el);\n let overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n\n if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n return el;\n }\n }\n\n el = el.parentElement;\n }\n\n // Fall back to window scroll.\n if (!el || el === doc.body) {\n // tslint:disable-next-line:no-any\n el = getWindow(startingElement) as any;\n }\n\n return el;\n}\n","import { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL, Rectangle as FullRectangle, IRectangle } from '../../Utilities';\nimport {\n IPositionDirectionalHintData,\n IPositionedData,\n Point,\n ICalloutPositionedInfo,\n ICalloutBeakPositionedInfo,\n IPositionProps,\n ICalloutPositionProps,\n RectangleEdge,\n} from './positioning.types';\n\nexport class Rectangle extends FullRectangle {\n [key: string]: number | boolean | any;\n}\n\nfunction _createPositionData(\n targetEdge: RectangleEdge,\n alignmentEdge?: RectangleEdge,\n isAuto?: boolean,\n): IPositionDirectionalHintData {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nconst DirectionalDictionary: { [key: number]: IPositionDirectionalHintData } = {\n [DirectionalHint.topLeftEdge]: _createPositionData(RectangleEdge.top, RectangleEdge.left),\n [DirectionalHint.topCenter]: _createPositionData(RectangleEdge.top),\n [DirectionalHint.topRightEdge]: _createPositionData(RectangleEdge.top, RectangleEdge.right),\n [DirectionalHint.topAutoEdge]: _createPositionData(RectangleEdge.top, undefined, true),\n [DirectionalHint.bottomLeftEdge]: _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n [DirectionalHint.bottomCenter]: _createPositionData(RectangleEdge.bottom),\n [DirectionalHint.bottomRightEdge]: _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n [DirectionalHint.bottomAutoEdge]: _createPositionData(RectangleEdge.bottom, undefined, true),\n [DirectionalHint.leftTopEdge]: _createPositionData(RectangleEdge.left, RectangleEdge.top),\n [DirectionalHint.leftCenter]: _createPositionData(RectangleEdge.left),\n [DirectionalHint.leftBottomEdge]: _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n [DirectionalHint.rightTopEdge]: _createPositionData(RectangleEdge.right, RectangleEdge.top),\n [DirectionalHint.rightCenter]: _createPositionData(RectangleEdge.right),\n [DirectionalHint.rightBottomEdge]: _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n};\n\n/**\n * Do not call methods from this directly, use either positionCallout or positionElement or make another function that\n * utilizes them.\n * START Private functions and interfaces\n */\n\nexport interface IElementPosition {\n elementRectangle: Rectangle;\n targetEdge: RectangleEdge;\n alignmentEdge: RectangleEdge | undefined;\n}\n\nexport interface IElementPositionInfo extends IElementPosition {\n targetRectangle: Rectangle;\n}\n\ntype PartialIRectangle = Partial;\n\ninterface IPartialIRectangle extends PartialIRectangle {\n [key: string]: number | undefined;\n}\n\nfunction _isRectangleWithinBounds(rect: Rectangle, boundingRect: Rectangle): boolean {\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\n return true;\n}\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: Rectangle, boundingRect: Rectangle): RectangleEdge[] {\n const outOfBounds: RectangleEdge[] = new Array();\n\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\n return outOfBounds;\n}\n\nfunction _getEdgeValue(rect: Rectangle, edge: RectangleEdge): number {\n return rect[RectangleEdge[edge]];\n}\n\nfunction _setEdgeValue(rect: Rectangle, edge: RectangleEdge, value: number) {\n rect[RectangleEdge[edge]] = value;\n return rect;\n}\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: Rectangle, edge: RectangleEdge): number {\n const edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\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: RectangleEdge, value: number): number {\n if (edge > 0) {\n return value;\n } else {\n return value * -1;\n }\n}\n\nfunction _getRelativeRectEdgeValue(edge: RectangleEdge, rect: Rectangle): number {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\n\nfunction _getRelativeEdgeDifference(rect: Rectangle, hostRect: Rectangle, edge: RectangleEdge): number {\n const edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\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: Rectangle, edge: RectangleEdge, newValue: number): Rectangle {\n const 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/**\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: Rectangle, target: Rectangle, edge: RectangleEdge, gap: number = 0): Rectangle {\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\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(\n rect: Rectangle,\n target: Rectangle,\n targetEdge: RectangleEdge,\n gap: number = 0,\n): Rectangle {\n const oppositeEdge = targetEdge * -1;\n const adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect: Rectangle, bounds: Rectangle, edge: RectangleEdge): boolean {\n const adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\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(\n rect: Rectangle,\n target: Rectangle,\n bounding: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number = 0,\n): IElementPosition {\n const directions: RectangleEdge[] = [\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 let currentEstimate = rect;\n let currentEdge = positionData.targetEdge;\n let 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 (let 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 } else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(\n rect,\n target,\n { targetEdge: currentEdge, alignmentEdge: currentAlignment },\n 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: currentAlignment,\n };\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(\n elementEstimate: IElementPosition,\n target: Rectangle,\n gap: number,\n coverTarget?: boolean,\n): IElementPosition {\n const { alignmentEdge, targetEdge, elementRectangle } = elementEstimate;\n const oppositeEdge = alignmentEdge! * -1;\n const newEstimate = _estimatePosition(\n elementRectangle,\n target,\n { targetEdge: targetEdge, alignmentEdge: oppositeEdge },\n gap,\n coverTarget,\n );\n\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\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(\n element: Rectangle,\n target: Rectangle,\n bounding: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number = 0,\n directionalHintFixed?: boolean,\n coverTarget?: boolean,\n): IElementPosition {\n const { alignmentEdge, alignTargetEdge } = positionData;\n let elementEstimate: IElementPosition = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n }\n const outOfBounds = _getOutOfBoundsEdges(element, bounding);\n\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 const flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n } else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(\n _getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding),\n elementEstimate,\n bounding,\n );\n }\n }\n } else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding);\n }\n\n return elementEstimate;\n}\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(\n outOfBoundsEdges: RectangleEdge[],\n elementEstimate: IElementPosition,\n bounding: Rectangle,\n) {\n for (const direction of outOfBoundsEdges) {\n elementEstimate.elementRectangle = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n }\n\n return elementEstimate;\n}\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: Rectangle, edge: RectangleEdge, point: number): Rectangle {\n const { positiveEdge } = _getFlankingEdges(edge);\n const elementMiddle = _getCenterValue(rect, edge);\n const distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\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(\n elementToPosition: Rectangle,\n target: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number = 0,\n coverTarget?: boolean,\n): Rectangle {\n let estimatedElementPosition: Rectangle;\n const { alignmentEdge, targetEdge } = positionData;\n const 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 const targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n } else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n\n return estimatedElementPosition;\n}\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: RectangleEdge): { positiveEdge: RectangleEdge; negativeEdge: RectangleEdge } {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n } else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\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(\n elementRectangle: Rectangle,\n returnEdge: RectangleEdge,\n bounds?: Rectangle,\n): RectangleEdge {\n if (\n bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))\n ) {\n return returnEdge * -1;\n }\n\n return returnEdge;\n}\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(\n elementRectangle: Rectangle,\n hostElement: HTMLElement,\n targetEdge: RectangleEdge,\n bounds?: Rectangle,\n alignmentEdge?: RectangleEdge,\n coverTarget?: boolean,\n doNotFinalizeReturnEdge?: boolean,\n): IPartialIRectangle {\n const returnValue: IPartialIRectangle = {};\n\n const hostRect: Rectangle = _getRectangleFromElement(hostElement);\n const elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n const elementEdgeString = RectangleEdge[elementEdge];\n let returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n if (!doNotFinalizeReturnEdge) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n\n returnValue[elementEdgeString] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n\n return returnValue;\n}\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: number): number {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\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(\n directionalHint: DirectionalHint = DirectionalHint.bottomAutoEdge,\n directionalHintForRTL?: DirectionalHint,\n previousPositions?: IPositionDirectionalHintData,\n): IPositionDirectionalHintData {\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n const positionInformation: IPositionDirectionalHintData = { ...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\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\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(\n positionData: IPositionDirectionalHintData,\n target: Rectangle,\n boundingRect: Rectangle,\n coverTarget?: boolean,\n alignTargetEdge?: boolean,\n): IPositionDirectionalHintData {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\n\nfunction getClosestEdge(targetEdge: RectangleEdge, target: Rectangle, boundingRect: Rectangle): RectangleEdge {\n const targetCenter: number = _getCenterValue(target, targetEdge);\n const boundingCenter: number = _getCenterValue(boundingRect, targetEdge);\n const { positiveEdge, negativeEdge } = _getFlankingEdges(targetEdge);\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n } else {\n return negativeEdge;\n }\n}\n\nfunction _positionElementWithinBounds(\n elementToPosition: Rectangle,\n target: Rectangle,\n bounding: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number,\n directionalHintFixed?: boolean,\n coverTarget?: boolean,\n): IElementPosition {\n const estimatedElementPosition: Rectangle = _estimatePosition(\n elementToPosition,\n target,\n positionData,\n gap,\n coverTarget,\n );\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n } else {\n return _adjustFitWithinBounds(\n elementToPosition,\n target,\n bounding,\n positionData,\n gap,\n directionalHintFixed,\n coverTarget,\n );\n }\n}\n\nfunction _finalizeBeakPosition(\n elementPosition: IElementPosition,\n positionedBeak: Rectangle,\n bounds?: Rectangle,\n): ICalloutBeakPositionedInfo {\n const targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n const actualElement = new Rectangle(\n 0,\n elementPosition.elementRectangle.width,\n 0,\n elementPosition.elementRectangle.height,\n );\n const returnValue: IPartialIRectangle = {};\n const returnEdge = _finalizeReturnEdge(\n elementPosition.elementRectangle,\n elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge,\n bounds,\n );\n\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n\n return {\n elementPosition: { ...returnValue },\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n };\n}\n\nfunction _positionBeak(beakWidth: number, elementPosition: IElementPositionInfo): Rectangle {\n const 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 const { positiveEdge, negativeEdge } = _getFlankingEdges(elementPosition.targetEdge);\n const beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n const elementBounds = new Rectangle(\n beakWidth / 2,\n elementPosition.elementRectangle.width - beakWidth / 2,\n beakWidth / 2,\n elementPosition.elementRectangle.height - beakWidth / 2,\n );\n\n let beakPosition: Rectangle = new Rectangle(0, beakWidth, 0, beakWidth);\n\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n\n beakPosition = _centerEdgeToPoint(\n beakPosition,\n elementPosition.targetEdge * -1,\n beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle),\n );\n\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n } else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n\n return beakPosition;\n}\n\nfunction _getRectangleFromElement(element: Element): Rectangle {\n const clientRect: ClientRect = element.getBoundingClientRect();\n\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\n\nfunction _getRectangleFromIRect(rect: IRectangle): Rectangle {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\n\nfunction _getTargetRect(bounds: Rectangle, target: Element | MouseEvent | Point | undefined): Rectangle {\n let targetRectangle: Rectangle;\n if (target) {\n if (!!(target as MouseEvent).preventDefault) {\n const ev = target as MouseEvent;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n } else if (!!(target as Element).getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target as Element);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n } else {\n const point: Point = target as Point;\n // tslint:disable-next-line:deprecation\n const left = point.left || point.x;\n // tslint:disable-next-line:deprecation\n const top = point.top || point.y;\n targetRectangle = new Rectangle(left, left, top, top);\n }\n\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n const outOfBounds: RectangleEdge[] = _getOutOfBoundsEdges(targetRectangle, bounds);\n\n for (const direction of outOfBounds) {\n (targetRectangle as any)[RectangleEdge[direction]] = (bounds as any)[RectangleEdge[direction]];\n }\n }\n } else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n\n return targetRectangle;\n}\n\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(\n targetRectangle: Rectangle,\n targetEdge: DirectionalHint,\n gapSpace: number,\n bounds: Rectangle,\n coverTarget?: boolean,\n) {\n let maxHeight = 0;\n const directionalHint = DirectionalDictionary[targetEdge];\n\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 const target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n } else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n } else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\n\nfunction _positionElementRelative(\n props: IPositionProps,\n elementToPosition: HTMLElement,\n boundingRect: Rectangle,\n previousPositions?: IPositionedData,\n): IElementPositionInfo {\n const gap: number = props.gapSpace ? props.gapSpace : 0;\n const targetRect: Rectangle = _getTargetRect(boundingRect, props.target);\n const positionData: IPositionDirectionalHintData = _getAlignmentData(\n _getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions)!,\n targetRect,\n boundingRect,\n props.coverTarget,\n props.alignTargetEdge,\n );\n const positionedElement: IElementPosition = _positionElementWithinBounds(\n _getRectangleFromElement(elementToPosition),\n targetRect,\n boundingRect,\n positionData,\n gap,\n props.directionalHintFixed,\n props.coverTarget,\n );\n return { ...positionedElement, targetRectangle: targetRect };\n}\n\nfunction _finalizePositionData(\n positionedElement: IElementPosition,\n hostElement: HTMLElement,\n bounds?: Rectangle,\n coverTarget?: boolean,\n doNotFinalizeReturnEdge?: boolean,\n): IPositionedData {\n const finalizedElement: IPartialIRectangle = _finalizeElementPosition(\n positionedElement.elementRectangle,\n hostElement,\n positionedElement.targetEdge,\n bounds,\n positionedElement.alignmentEdge,\n coverTarget,\n doNotFinalizeReturnEdge,\n );\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\n\nfunction _positionElement(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: IPositionedData,\n): IPositionedData {\n const boundingRect: Rectangle = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n const positionedElement: IElementPosition = _positionElementRelative(\n props,\n elementToPosition,\n boundingRect,\n previousPositions,\n );\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\n\nfunction _positionCallout(\n props: ICalloutPositionProps,\n hostElement: HTMLElement,\n callout: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n doNotFinalizeReturnEdge?: boolean,\n): ICalloutPositionedInfo {\n const beakWidth: number = props.isBeakVisible ? props.beakWidth || 0 : 0;\n const gap: number = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n const positionProps: IPositionProps = props;\n positionProps.gapSpace = gap;\n const boundingRect: Rectangle = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n const positionedElement: IElementPositionInfo = _positionElementRelative(\n positionProps,\n callout,\n boundingRect,\n previousPositions,\n );\n const beakPositioned: Rectangle = _positionBeak(beakWidth, positionedElement);\n const finalizedBeakPosition: ICalloutBeakPositionedInfo = _finalizeBeakPosition(\n positionedElement,\n beakPositioned,\n boundingRect,\n );\n return {\n ..._finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge),\n beakPosition: finalizedBeakPosition,\n };\n}\n\nfunction _positionCard(\n props: ICalloutPositionProps,\n hostElement: HTMLElement,\n callout: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n): ICalloutPositionedInfo {\n return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\n\n/* tslint:disable:variable-name */\nexport const __positioningTestPackage = {\n _finalizePositionData,\n _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds,\n _positionBeak,\n _getPositionData,\n _getMaxHeightFromTargetRectangle,\n};\n/* tslint:enable:variable-name */\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(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: IPositionedData,\n): IPositionedData {\n return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\n\nexport function positionCallout(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n): ICalloutPositionedInfo {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\n\nexport function positionCard(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n): ICalloutPositionedInfo {\n return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n\n/**\n * Get's 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(\n target: Element | MouseEvent | Point,\n targetEdge: DirectionalHint,\n gapSpace: number = 0,\n bounds?: IRectangle,\n coverTarget?: boolean,\n): number {\n const mouseTarget: MouseEvent = target as MouseEvent;\n const elementTarget: Element = target as Element;\n const pointTarget: Point = target as Point;\n let targetRect: Rectangle;\n const boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n\n // tslint:disable-next-line:deprecation\n const left = pointTarget.left || pointTarget.x;\n // tslint:disable-next-line:deprecation\n const top = pointTarget.top || pointTarget.y;\n\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n } else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, left, top, top);\n } else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge: RectangleEdge): RectangleEdge {\n return edge * -1;\n}\n\n/**\n * Window with typings for experimental features regarding Dual Screen devices.\n */\ninterface IWindowWithSegments extends Window {\n getWindowSegments?: () => DOMRect[];\n}\n\nfunction _getBoundsFromTargetWindow(\n target: Element | MouseEvent | Point | null,\n targetWindow: IWindowWithSegments,\n): IRectangle {\n let segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\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\n // Logic for determining dual screen scenarios.\n let x: number | undefined = 0;\n let y: number | undefined = 0;\n\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!(target as Element).getBoundingClientRect) {\n const clientRect = (target as Element).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 // tslint:disable-next-line:deprecation\n x = (target as Point).left || (target as MouseEvent | Point).x;\n // tslint:disable-next-line:deprecation\n y = (target as Point).top || (target as MouseEvent | Point).y;\n }\n\n let bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (const segment of segments) {\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\n return bounds;\n}\n\nexport function getBoundsFromTargetWindow(\n target: Element | MouseEvent | Point | null,\n targetWindow: IWindowWithSegments,\n): IRectangle {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\n","import * as React from 'react';\nimport {\n Async,\n KeyCodes,\n divProperties,\n doesElementContainFocus,\n getDocument,\n getNativeProps,\n on,\n getWindow,\n elementContains,\n} from '../../Utilities';\nimport { IPopupProps } from './Popup.types';\n\nexport interface IPopupState {\n needsVerticalScrollBar?: boolean;\n}\n\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport class Popup extends React.Component {\n public static defaultProps: IPopupProps = {\n shouldRestoreFocus: true,\n };\n\n public _root = React.createRef();\n private _disposables: (() => void)[] = [];\n private _originalFocusedElement: HTMLElement;\n private _containsFocus: boolean;\n private _async: Async;\n\n public constructor(props: IPopupProps) {\n super(props);\n this._async = new Async(this);\n this.state = { needsVerticalScrollBar: false };\n }\n\n // tslint:disable-next-line function-name\n public UNSAFE_componentWillMount(): void {\n this._originalFocusedElement = getDocument()!.activeElement as HTMLElement;\n }\n\n public componentDidMount(): void {\n if (this._root.current) {\n this._disposables.push(\n on(this._root.current, 'focus', this._onFocus, true),\n on(this._root.current, 'blur', this._onBlur, true),\n );\n const currentWindow = getWindow(this._root.current);\n if (currentWindow) {\n this._disposables.push(on(currentWindow, 'keydown', this._onKeyDown as any));\n }\n if (doesElementContainFocus(this._root.current)) {\n this._containsFocus = true;\n }\n }\n\n this._updateScrollBarAsync();\n }\n\n public componentDidUpdate() {\n this._updateScrollBarAsync();\n this._async.dispose();\n }\n\n public componentWillUnmount(): void {\n this._disposables.forEach((dispose: () => void) => dispose());\n\n // tslint:disable-next-line:deprecation\n if (this.props.shouldRestoreFocus) {\n const { onRestoreFocus = defaultFocusRestorer } = this.props;\n onRestoreFocus({ originalElement: this._originalFocusedElement, containsFocus: this._containsFocus });\n }\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n delete this._originalFocusedElement;\n }\n\n public render(): JSX.Element {\n const { role, className, ariaLabel, ariaLabelledBy, ariaDescribedBy, style } = this.props;\n\n return (\n \n {this.props.children}\n \n );\n }\n\n private _onKeyDown = (ev: React.KeyboardEvent): void => {\n switch (ev.which) {\n case KeyCodes.escape:\n if (this.props.onDismiss) {\n this.props.onDismiss(ev);\n\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n break;\n }\n };\n\n private _updateScrollBarAsync(): void {\n this._async.requestAnimationFrame(() => {\n this._getScrollBar();\n });\n }\n\n private _getScrollBar(): void {\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\n let 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 const rootHeight = this._root.current.clientHeight;\n const 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\n private _onFocus = (): void => {\n this._containsFocus = true;\n };\n\n private _onBlur = (ev: FocusEvent): void => {\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 (\n this._root.current &&\n ev.relatedTarget &&\n !elementContains(this._root.current, ev.relatedTarget as HTMLElement)\n ) {\n this._containsFocus = false;\n }\n };\n}\n\nfunction defaultFocusRestorer(options: { originalElement?: HTMLElement | Window; containsFocus: boolean }) {\n const { originalElement, containsFocus } = options;\n\n if (originalElement && containsFocus && originalElement !== window) {\n originalElement.focus();\n }\n}\n","import * as React from 'react';\nimport { ICalloutProps, ICalloutContentStyleProps, ICalloutContentStyles, Target } from './Callout.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport {\n Async,\n Point,\n IRectangle,\n assign,\n css,\n divProperties,\n elementContains,\n focusFirstChild,\n getDocument,\n getNativeProps,\n getWindow,\n on,\n shallowCompare,\n} from '../../Utilities';\nimport {\n positionCallout,\n ICalloutPositionedInfo,\n IPositionProps,\n getMaxHeight,\n IPosition,\n RectangleEdge,\n positionCard,\n getBoundsFromTargetWindow,\n} from '../../utilities/positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\n\nconst ANIMATIONS: { [key: number]: string | undefined } = {\n [RectangleEdge.top]: AnimationClassNames.slideUpIn10,\n [RectangleEdge.bottom]: AnimationClassNames.slideDownIn10,\n [RectangleEdge.left]: AnimationClassNames.slideLeftIn10,\n [RectangleEdge.right]: AnimationClassNames.slideRightIn10,\n};\n\nconst getClassNames = classNamesFunction({\n disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n\nconst 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.\nconst OFF_SCREEN_STYLE = { opacity: 0, filter: 'opacity(0)' };\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)\nconst ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\n\nexport interface ICalloutState {\n positions?: ICalloutPositionedInfo;\n slideDirectionalClassName?: string;\n calloutElementRect?: ClientRect;\n heightOffset?: number;\n}\n\nexport class CalloutContentBase extends React.Component {\n public static 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\n private _classNames: { [key in keyof ICalloutContentStyles]: string };\n private _didSetInitialFocus: boolean;\n private _hostElement = React.createRef();\n private _calloutElement = React.createRef();\n private _targetWindow: Window;\n private _bounds: IRectangle | undefined;\n private _positionAttempts: number;\n private _target: Element | MouseEvent | Point | null;\n private _setHeightOffsetTimer: number;\n private _hasListeners = false;\n private _maxHeight: number | undefined;\n private _blockResetHeight: boolean;\n private _isMouseDownOnPopup: boolean;\n\n private _async: Async;\n private _disposables: (() => void)[] = [];\n\n constructor(props: ICalloutProps) {\n super(props);\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 }\n\n public componentDidUpdate() {\n if (!this.props.hidden) {\n this._setInitialFocus();\n if (!this._hasListeners) {\n this._addListeners();\n }\n this._updateAsyncPosition();\n } else {\n if (this._hasListeners) {\n this._removeListeners();\n }\n }\n }\n\n public shouldComponentUpdate(newProps: ICalloutProps, newState: ICalloutState): boolean {\n if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {\n // Do not update when hidden.\n return false;\n }\n\n return !shallowCompare(this.props, newProps) || !shallowCompare(this.state, newState);\n }\n\n // tslint:disable-next-line function-name\n public UNSAFE_componentWillMount() {\n this._setTargetWindowAndElement(this._getTarget());\n }\n\n public componentWillUnmount() {\n this._async.dispose();\n this._disposables.forEach((dispose: () => void) => dispose());\n }\n\n // tslint:disable-next-line function-name\n public UNSAFE_componentWillUpdate(newProps: ICalloutProps): void {\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 const newTarget = this._getTarget(newProps);\n const oldTarget = this._getTarget();\n if (\n (newTarget !== oldTarget || typeof newTarget === 'string' || newTarget instanceof String) &&\n !this._blockResetHeight\n ) {\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\n if (newProps.finalHeight !== this.props.finalHeight) {\n this._setHeightOffsetEveryFrame();\n }\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\n this._blockResetHeight = false;\n }\n\n public componentDidMount(): void {\n if (!this.props.hidden) {\n this._onComponentDidMount();\n }\n }\n\n public render(): JSX.Element | null {\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 let { target } = this.props;\n const {\n styles,\n style,\n ariaLabel,\n ariaDescribedBy,\n ariaLabelledBy,\n className,\n isBeakVisible,\n children,\n beakWidth,\n calloutWidth,\n calloutMaxWidth,\n finalHeight,\n hideOverflow = !!finalHeight,\n backgroundColor,\n calloutMaxHeight,\n onScroll,\n // tslint:disable-next-line: deprecation\n shouldRestoreFocus = true,\n } = this.props;\n target = this._getTarget();\n const { positions } = this.state;\n\n const getContentMaxHeight: number | undefined = this._getMaxHeight()\n ? this._getMaxHeight()! + this.state.heightOffset!\n : undefined;\n const contentMaxHeight: number | undefined =\n calloutMaxHeight! && getContentMaxHeight && calloutMaxHeight! < getContentMaxHeight\n ? calloutMaxHeight!\n : getContentMaxHeight!;\n const overflowYHidden = hideOverflow;\n\n const beakVisible = isBeakVisible && !!target;\n this._classNames = getClassNames(styles!, {\n theme: this.props.theme!,\n className,\n overflowYHidden: overflowYHidden,\n calloutWidth,\n positions,\n beakWidth,\n backgroundColor,\n calloutMaxWidth,\n });\n\n const overflowStyle: React.CSSProperties = {\n ...style,\n maxHeight: contentMaxHeight,\n ...(overflowYHidden && { overflowY: 'hidden' }),\n };\n\n const visibilityStyle: React.CSSProperties | undefined = 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 const content = (\n
\n \n {beakVisible &&
}\n {beakVisible &&
}\n \n {children}\n \n
\n
\n );\n\n return content;\n }\n\n public dismiss = (ev?: Event | React.MouseEvent | React.KeyboardEvent): void => {\n const { onDismiss } = this.props;\n\n if (onDismiss) {\n onDismiss(ev);\n }\n };\n\n protected _dismissOnScroll = (ev: Event) => {\n const { preventDismissOnScroll } = this.props;\n if (this.state.positions && !preventDismissOnScroll) {\n this._dismissOnClickOrScroll(ev);\n }\n };\n\n protected _dismissOnResize = (ev: Event) => {\n const { preventDismissOnResize } = this.props;\n if (!preventDismissOnResize) {\n this.dismiss(ev);\n }\n };\n\n protected _dismissOnLostFocus = (ev: Event) => {\n const { preventDismissOnLostFocus } = this.props;\n if (!preventDismissOnLostFocus) {\n this._dismissOnClickOrScroll(ev);\n }\n };\n\n protected _setInitialFocus = (): void => {\n if (\n this.props.setInitialFocus &&\n !this._didSetInitialFocus &&\n this.state.positions &&\n this._calloutElement.current\n ) {\n this._didSetInitialFocus = true;\n this._async.requestAnimationFrame(\n () => focusFirstChild(this._calloutElement.current!),\n this._calloutElement.current,\n );\n }\n };\n\n protected _onComponentDidMount = (): void => {\n this._addListeners();\n\n if (this.props.onLayerMounted) {\n this.props.onLayerMounted();\n }\n\n this._updateAsyncPosition();\n this._setHeightOffsetEveryFrame();\n };\n\n private _dismissOnClickOrScroll(ev: Event) {\n const target = ev.target as HTMLElement;\n const isEventTargetOutsideCallout =\n this._hostElement.current && !elementContains(this._hostElement.current, target);\n\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\n if (\n (!this._target && isEventTargetOutsideCallout) ||\n (ev.target !== this._targetWindow &&\n isEventTargetOutsideCallout &&\n ((this._target as MouseEvent).stopPropagation ||\n !this._target ||\n (target !== this._target && !elementContains(this._target as HTMLElement, target))))\n ) {\n this.dismiss(ev);\n }\n }\n\n private _addListeners() {\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(() => {\n this._disposables.push(\n on(this._targetWindow, 'scroll', this._dismissOnScroll, true),\n on(this._targetWindow, 'resize', this._dismissOnResize, true),\n on(this._targetWindow.document.documentElement, 'focus', this._dismissOnLostFocus, true),\n on(this._targetWindow.document.documentElement, 'click', this._dismissOnLostFocus, true),\n );\n this._hasListeners = true;\n }, 0);\n }\n\n private _removeListeners() {\n this._disposables.forEach((dispose: () => void) => dispose());\n this._disposables = [];\n this._hasListeners = false;\n }\n\n private _updateAsyncPosition(): void {\n this._async.requestAnimationFrame(() => this._updatePosition(), this._calloutElement.current);\n }\n\n private _getBeakPosition(): React.CSSProperties {\n const { positions } = this.state;\n const beakPostionStyle: React.CSSProperties = {\n ...(positions && positions.beakPosition ? positions.beakPosition.elementPosition : null),\n };\n\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\n return beakPostionStyle;\n }\n\n private _updatePosition(): void {\n // Try to update the target, page might have changed\n this._setTargetWindowAndElement(this._getTarget());\n\n const { positions } = this.state;\n const hostElement: HTMLElement | null = this._hostElement.current;\n const calloutElement: HTMLElement | null = this._calloutElement.current;\n\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 const expectsTarget = !!this.props.target;\n\n if (hostElement && calloutElement && (!expectsTarget || this._target)) {\n let currentProps: IPositionProps | undefined;\n currentProps = assign(currentProps, 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 const newPositions: ICalloutPositionedInfo = this.props.finalHeight\n ? positionCard(currentProps!, hostElement, calloutElement, positions)\n : positionCallout(currentProps!, hostElement, calloutElement, positions);\n\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 (\n (!positions && newPositions) ||\n (positions && newPositions && !this._arePositionsEqual(positions, newPositions) && this._positionAttempts < 5)\n ) {\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 } 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\n private _getBounds(): IRectangle {\n if (!this._bounds) {\n const bounds = this.props.bounds;\n let currentBounds = typeof bounds === 'function' ? bounds(this.props.target, this._targetWindow) : bounds;\n\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\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 private _getMaxHeight(): number | undefined {\n if (!this._maxHeight) {\n if (this.props.directionalHintFixed && this._target) {\n const beakWidth = this.props.isBeakVisible ? this.props.beakWidth : 0;\n const 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 const totalGap = gapSpace + beakWidth!;\n this._async.requestAnimationFrame(() => {\n if (this._target) {\n this._maxHeight = getMaxHeight(\n this._target,\n this.props.directionalHint!,\n totalGap,\n this._getBounds(),\n this.props.coverTarget,\n );\n this._blockResetHeight = true;\n this.forceUpdate();\n }\n }, this._target as Element);\n } else {\n this._maxHeight = this._getBounds().height!;\n }\n }\n return this._maxHeight!;\n }\n\n private _arePositionsEqual(positions: ICalloutPositionedInfo, newPosition: ICalloutPositionedInfo): boolean {\n return (\n this._comparePositions(positions.elementPosition, newPosition.elementPosition) &&\n this._comparePositions(positions.beakPosition.elementPosition, newPosition.beakPosition.elementPosition)\n );\n }\n\n private _comparePositions(oldPositions: IPosition, newPositions: IPosition): boolean {\n for (const key in newPositions) {\n if (newPositions.hasOwnProperty(key)) {\n const oldPositionEdge = oldPositions[key];\n const newPositionEdge = newPositions[key];\n\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n return true;\n }\n\n private _setTargetWindowAndElement(target: Target): void {\n const currentElement = this._calloutElement.current;\n\n if (target) {\n if (typeof target === 'string') {\n const currentDoc: Document = getDocument(currentElement)!;\n this._target = currentDoc ? (currentDoc.querySelector(target) as Element) : null;\n this._targetWindow = getWindow(currentElement)!;\n } else if (!!(target as MouseEvent).stopPropagation) {\n this._targetWindow = getWindow((target as MouseEvent).target as HTMLElement)!;\n this._target = target as MouseEvent;\n } else if (!!(target as Element).getBoundingClientRect) {\n const targetElement: Element = target as Element;\n this._targetWindow = getWindow(targetElement)!;\n this._target = target as Element;\n } else if ((target as React.RefObject).current !== undefined) {\n this._target = (target as React.RefObject).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 } else {\n this._targetWindow = getWindow(currentElement)!;\n this._target = target as Point;\n }\n } else {\n this._targetWindow = getWindow(currentElement)!;\n }\n }\n\n private _setHeightOffsetEveryFrame(): void {\n if (this._calloutElement.current && this.props.finalHeight) {\n this._setHeightOffsetTimer = this._async.requestAnimationFrame(() => {\n const calloutMainElem = this._calloutElement.current && (this._calloutElement.current.lastChild as HTMLElement);\n\n if (!calloutMainElem) {\n return;\n }\n\n const cardScrollHeight: number = calloutMainElem.scrollHeight;\n const cardCurrHeight: number = calloutMainElem.offsetHeight;\n const scrollDiff: number = cardScrollHeight - cardCurrHeight;\n\n this.setState({\n heightOffset: this.state.heightOffset! + scrollDiff,\n });\n\n if (calloutMainElem.offsetHeight < this.props.finalHeight!) {\n this._setHeightOffsetEveryFrame();\n } else {\n this._async.cancelAnimationFrame(this._setHeightOffsetTimer, this._calloutElement.current);\n }\n }, this._calloutElement.current);\n }\n }\n\n // Whether or not the current positions should be reset\n private _didPositionPropsChange(newProps: ICalloutProps, oldProps: ICalloutProps): boolean {\n return (\n (!newProps.hidden && newProps.hidden !== oldProps.hidden) || newProps.directionalHint !== oldProps.directionalHint\n );\n }\n\n private _getTarget(props: ICalloutProps = this.props): Target {\n const { target } = props;\n return target!;\n }\n\n private _mouseDownOnPopup = () => {\n this._isMouseDownOnPopup = true;\n };\n\n private _mouseUpOnPopup = () => {\n this._isMouseDownOnPopup = false;\n };\n}\n","import { HighContrastSelector, IRawStyle, focusClear, getGlobalClassNames } from '../../Styling';\nimport { ICalloutContentStyleProps, ICalloutContentStyles } from './Callout.types';\n\nfunction getBeakStyle(beakWidth?: number): IRawStyle {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\n\nconst 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};\n\nexport const getStyles = (props: ICalloutContentStyleProps): ICalloutContentStyles => {\n const { theme, className, overflowYHidden, calloutWidth, beakWidth, backgroundColor, calloutMaxWidth } = props;\n\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\n const { semanticColors, effects } = theme;\n\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: {\n [HighContrastSelector]: {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n },\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\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","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { ICalloutProps, ICalloutContentStyles, ICalloutContentStyleProps } from './Callout.types';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\n\nexport const CalloutContent: React.FunctionComponent = styled<\n ICalloutProps,\n ICalloutContentStyleProps,\n ICalloutContentStyles\n>(CalloutContentBase, getStyles, undefined, { scope: 'CalloutContent' });\n","import { ISettings, ISettingsFunction } from './Customizations';\n\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings: ISettings = {}, newSettings?: ISettings | ISettingsFunction): ISettings {\n const mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n\n return mergeSettingsWith(oldSettings);\n}\n\nexport function mergeScopedSettings(\n oldSettings: ISettings = {},\n newSettings?: ISettings | ISettingsFunction,\n): ISettings {\n const mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n\n return mergeSettingsWith(oldSettings);\n}\n\nfunction _isSettingsFunction(settings?: ISettings | ISettingsFunction): settings is ISettingsFunction {\n return typeof settings === 'function';\n}\n\nfunction _settingsMergeWith(newSettings?: object): (settings: ISettings) => ISettings {\n return (settings: ISettings) => (newSettings ? { ...settings, ...newSettings } : settings);\n}\n\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps: ISettings = {}): (scopedSettings: ISettings) => ISettings {\n return (oldScopedSettings: ISettings): ISettings => {\n const newScopedSettings: ISettings = { ...oldScopedSettings };\n\n for (let scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = { ...oldScopedSettings[scopeName], ...scopedSettingsFromProps[scopeName] };\n }\n }\n\n return newScopedSettings;\n };\n}\n","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext, ICustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\nimport { ICustomizerProps } from './Customizer.types';\n\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n */\nexport class Customizer extends React.Component {\n public componentDidMount(): void {\n Customizations.observe(this._onCustomizationChange);\n }\n\n public componentWillUnmount(): void {\n Customizations.unobserve(this._onCustomizationChange);\n }\n\n public render(): React.ReactElement<{}> {\n const { contextTransform } = this.props;\n return (\n \n {(parentContext: ICustomizerContext) => {\n let newContext = mergeCustomizations(this.props, parentContext);\n\n if (contextTransform) {\n newContext = contextTransform(newContext);\n }\n\n return {this.props.children};\n }}\n \n );\n }\n\n private _onCustomizationChange = () => this.forceUpdate();\n}\n","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\nimport { ICustomizerProps } from './Customizer.types';\nimport { ICustomizerContext } from './CustomizerContext';\n\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props: ICustomizerProps, parentContext: ICustomizerContext): ICustomizerContext {\n const { customizations = { settings: {}, scopedSettings: {} } } = parentContext || {};\n\n return {\n customizations: {\n settings: mergeSettings(customizations.settings, props.settings),\n scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n inCustomizerContext: true,\n },\n };\n}\n","import { getGlobalClassNames } from '../../Styling';\nimport { IFabricStyleProps, IFabricStyles } from './Fabric.types';\n\nconst inheritFont = { fontFamily: 'inherit' };\n\nconst GlobalClassNames = {\n root: 'ms-Fabric',\n bodyThemed: 'ms-Fabric-bodyThemed',\n};\n\nexport interface IFabricClassNames {\n root: string;\n bodyThemed: string;\n}\n\nexport const getStyles = (props: IFabricStyleProps): IFabricStyles => {\n const { theme, className, applyTheme } = props;\n const 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","import * as React from 'react';\nimport {\n Customizer,\n getNativeProps,\n divProperties,\n classNamesFunction,\n getDocument,\n memoizeFunction,\n getRTL,\n FocusRects,\n} from '../../Utilities';\nimport { getStyles } from './Fabric.styles';\nimport { IFabricProps, IFabricStyleProps, IFabricStyles } from './Fabric.types';\nimport { IProcessedStyleSet } from '@uifabric/merge-styles';\nimport { ITheme, createTheme } from '../../Styling';\n\nconst getClassNames = classNamesFunction();\nconst getFabricTheme = memoizeFunction((theme?: ITheme, isRTL?: boolean) => createTheme({ ...theme, rtl: isRTL }));\n\nconst getDir = (theme?: ITheme, dir?: IFabricProps['dir']) => {\n const contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n const pageDir = getRTL() ? 'rtl' : 'ltr';\n const 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};\n\nexport class FabricBase extends React.Component {\n private _rootElement = React.createRef();\n private _removeClassNameFromBody?: () => void = undefined;\n\n public render() {\n const { as: Root = 'div', theme, dir } = this.props;\n const classNames = this._getClassNames();\n const divProps = getNativeProps>(this.props, divProperties, ['dir']);\n const { rootDir, needsTheme } = getDir(theme, dir);\n\n let renderedContent = ;\n\n if (needsTheme) {\n renderedContent = (\n {renderedContent}\n );\n }\n\n return (\n <>\n {renderedContent}\n \n \n );\n }\n\n public componentDidMount(): void {\n this._addClassNameToBody();\n }\n\n public componentWillUnmount(): void {\n if (this._removeClassNameFromBody) {\n this._removeClassNameFromBody();\n }\n }\n\n private _getClassNames(): IProcessedStyleSet {\n const { className, theme, applyTheme } = this.props;\n const classNames = getClassNames(getStyles, {\n theme: theme!,\n applyTheme: applyTheme,\n className,\n });\n return classNames;\n }\n\n private _addClassNameToBody(): void {\n if (this.props.applyThemeToBody) {\n const classNames = this._getClassNames();\n const currentDoc = getDocument(this._rootElement.current);\n if (currentDoc) {\n currentDoc.body.classList.add(classNames.bodyThemed);\n this._removeClassNameFromBody = () => {\n currentDoc.body.classList.remove(classNames.bodyThemed);\n };\n }\n }\n }\n}\n","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\nimport { IFabricProps, IFabricStyleProps, IFabricStyles } from './Fabric.types';\n\nexport const Fabric: React.FunctionComponent = styled(\n FabricBase,\n getStyles,\n undefined,\n {\n scope: 'Fabric',\n },\n);\n","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\n\nexport function hoistStatics(source: TSource, dest: TDest): TDest {\n for (const name in source) {\n if (source.hasOwnProperty(name)) {\n // tslint:disable-next-line:no-any\n (dest as any)[name] = source[name];\n }\n }\n\n return dest;\n}\n","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext, ICustomizerContext } from './CustomizerContext';\nimport { concatStyleSets } from '@uifabric/merge-styles';\n\nexport function customizable(\n scope: string,\n fields: string[],\n concatStyles?: boolean,\n // tslint:disable-next-line:no-any\n):

(ComposedComponent: React.ComponentType

) => any {\n // tslint:disable-next-line:no-shadowed-variable\n return function customizableFactory

(\n // tslint:disable-next-line:no-any\n ComposedComponent: React.ComponentType

,\n // tslint:disable-next-line:no-any\n ): any {\n const resultClass = class ComponentWithInjectedProps extends React.Component {\n public static displayName: string = 'Customized' + scope;\n\n // tslint:disable-next-line:no-any\n private _styleCache: { default?: any; component?: any; merged?: any } = {};\n\n constructor(props: P) {\n super(props);\n\n this._onSettingChanged = this._onSettingChanged.bind(this);\n }\n\n public componentDidMount(): void {\n Customizations.observe(this._onSettingChanged);\n }\n\n public componentWillUnmount(): void {\n Customizations.unobserve(this._onSettingChanged);\n }\n\n public render(): JSX.Element {\n return (\n \n {(context: ICustomizerContext) => {\n const defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n\n // tslint:disable-next-line:no-any\n const componentProps = this.props as any;\n\n // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n defaultProps.styles = defaultProps.styles({ ...defaultProps, ...componentProps });\n }\n\n // If concatStyles is true and custom styles have been defined compute those styles\n if (concatStyles && defaultProps.styles) {\n if (\n this._styleCache.default !== defaultProps.styles ||\n this._styleCache.component !== componentProps.styles\n ) {\n const mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n this._styleCache.default = defaultProps.styles;\n this._styleCache.component = componentProps.styles;\n this._styleCache.merged = mergedStyles;\n }\n\n return ;\n }\n\n return ;\n }}\n \n );\n }\n\n private _onSettingChanged(): void {\n this.forceUpdate();\n }\n };\n\n return hoistStatics(ComposedComponent, resultClass);\n };\n}\n","const _layersByHostId: { [hostId: string]: (() => void)[] } = {};\n\nlet _defaultHostSelector: string | undefined;\n\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: string, callback: () => void) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n\n _layersByHostId[hostId].push(callback);\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: string, callback: () => void) {\n if (_layersByHostId[hostId]) {\n const idx = _layersByHostId[hostId].indexOf(callback);\n if (idx >= 0) {\n _layersByHostId[hostId].splice(idx, 1);\n if (_layersByHostId[hostId].length === 0) {\n delete _layersByHostId[hostId];\n }\n }\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: string) {\n if (_layersByHostId[id]) {\n _layersByHostId[id].forEach(callback => callback());\n }\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?: string) {\n _defaultHostSelector = selector;\n}\n\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget(): string | undefined {\n return _defaultHostSelector;\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n\nimport { Fabric } from '../../Fabric';\nimport { ILayerProps, ILayerStyleProps, ILayerStyles } from './Layer.types';\nimport {\n classNamesFunction,\n customizable,\n getDocument,\n setPortalAttribute,\n setVirtualParent,\n warnDeprecations,\n} from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer } from './Layer.notification';\n\nexport type ILayerBaseState = {\n hostId?: string;\n layerElement?: HTMLElement;\n};\n\nconst getClassNames = classNamesFunction();\n\n@customizable('Layer', ['theme', 'hostId'])\nexport class LayerBase extends React.Component {\n public static defaultProps: ILayerProps = {\n onLayerDidMount: () => undefined,\n onLayerWillUnmount: () => undefined,\n };\n\n private _rootRef = React.createRef();\n\n constructor(props: ILayerProps) {\n super(props);\n\n this.state = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Layer', props, {\n onLayerMounted: 'onLayerDidMount',\n });\n }\n }\n\n public componentDidMount(): void {\n const { hostId } = this.props;\n\n this._createLayerElement();\n\n if (hostId) {\n registerLayer(hostId, this._createLayerElement);\n }\n }\n\n public render(): React.ReactNode {\n const { layerElement } = this.state;\n const classNames = this._getClassNames();\n const { eventBubblingEnabled } = this.props;\n\n return (\n \n {layerElement &&\n ReactDOM.createPortal(\n \n {this.props.children}\n ,\n layerElement,\n )}\n \n );\n }\n\n public componentDidUpdate(): void {\n if (this.props.hostId !== this.state.hostId) {\n this._createLayerElement();\n }\n }\n\n public componentWillUnmount(): void {\n const { hostId } = this.props;\n\n this._removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, this._createLayerElement);\n }\n }\n\n private _createLayerElement = () => {\n const { hostId } = this.props;\n\n const doc = getDocument(this._rootRef.current);\n const host = this._getHost();\n\n if (!doc || !host) {\n return;\n }\n\n // If one was already existing, remove.\n this._removeLayerElement();\n\n const layerElement = doc.createElement('div');\n const classNames = this._getClassNames();\n\n layerElement.className = classNames.root!;\n setPortalAttribute(layerElement);\n setVirtualParent(layerElement, this._rootRef.current!);\n\n this.props.insertFirst ? host.insertBefore(layerElement, host.firstChild) : host.appendChild(layerElement);\n\n this.setState(\n {\n hostId,\n layerElement,\n },\n () => {\n // tslint:disable-next-line:deprecation\n const { onLayerDidMount, onLayerMounted } = this.props;\n if (onLayerMounted) {\n onLayerMounted();\n }\n\n if (onLayerDidMount) {\n onLayerDidMount();\n }\n },\n );\n };\n\n private _removeLayerElement(): void {\n const { onLayerWillUnmount } = this.props;\n const { layerElement } = this.state;\n\n if (onLayerWillUnmount) {\n onLayerWillUnmount();\n }\n\n if (layerElement && layerElement.parentNode) {\n const parentNode = layerElement.parentNode;\n if (parentNode) {\n parentNode.removeChild(layerElement);\n }\n }\n }\n\n private _getClassNames() {\n const { className, styles, theme } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n isNotHost: !this.props.hostId,\n });\n\n return classNames;\n }\n\n private _getHost(): Node | undefined {\n const { hostId } = this.props;\n const doc = getDocument(this._rootRef.current);\n if (!doc) {\n return undefined;\n }\n\n if (hostId) {\n return doc.getElementById(hostId) as Node;\n } else {\n const defaultHostSelector = getDefaultTarget();\n return defaultHostSelector ? (doc.querySelector(defaultHostSelector) as Node) : doc.body;\n }\n }\n}\n\nconst _onFilterEvent = (ev: React.SyntheticEvent): void => {\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 (\n ev.eventPhase === Event.BUBBLING_PHASE &&\n ev.type !== 'mouseenter' &&\n ev.type !== 'mouseleave' &&\n ev.type !== 'touchstart' &&\n ev.type !== 'touchend'\n ) {\n ev.stopPropagation();\n }\n};\n\nlet _filteredEventProps: { [key: string]: (ev: React.SyntheticEvent) => void };\n\nfunction _getFilteredEvents() {\n if (!_filteredEventProps) {\n _filteredEventProps = {} as any;\n\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(name => (_filteredEventProps[name] = _onFilterEvent));\n }\n\n return _filteredEventProps;\n}\n","export const DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element: HTMLElement): void {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n","import { IVirtualElement } from './IVirtualElement';\n/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child: HTMLElement, parent: HTMLElement): void {\n let virtualChild = child;\n let virtualParent = parent;\n if (!virtualChild._virtual) {\n virtualChild._virtual = {\n children: [],\n };\n }\n let oldParent = virtualChild._virtual.parent;\n if (oldParent && oldParent !== parent) {\n // Remove the child from its old parent.\n let index = oldParent._virtual.children.indexOf(virtualChild);\n if (index > -1) {\n oldParent._virtual.children.splice(index, 1);\n }\n }\n virtualChild._virtual.parent = virtualParent || undefined;\n if (virtualParent) {\n if (!virtualParent._virtual) {\n virtualParent._virtual = {\n children: [],\n };\n }\n virtualParent._virtual.children.push(virtualChild);\n }\n}\n","import { ILayerStyleProps, ILayerStyles } from './Layer.types';\nimport { ZIndexes, getGlobalClassNames } from '../../Styling';\n\nconst GlobalClassNames = {\n root: 'ms-Layer',\n rootNoHost: 'ms-Layer--fixed',\n content: 'ms-Layer-content',\n};\n\nexport const getStyles = (props: ILayerStyleProps): ILayerStyles => {\n const { className, isNotHost, theme } = props;\n\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\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","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { ILayerProps, ILayerStyleProps, ILayerStyles } from './Layer.types';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\n\nexport const Layer: React.FunctionComponent = styled(\n LayerBase,\n getStyles,\n undefined,\n {\n scope: 'Layer',\n fields: ['hostId', 'theme', 'styles'],\n },\n);\n","import * as React from 'react';\nimport { ICalloutProps } from './Callout.types';\nimport { ICalloutState } from './CalloutContent.base';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\n\nexport class Callout extends React.Component {\n public render(): JSX.Element {\n const { layerProps, ...rest } = this.props;\n const content = ;\n return this.props.doNotLayer ? content : {content};\n }\n}\n","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target: HTMLElement, parent?: HTMLElement): boolean {\n const elementMatch = findElementRecursive(\n target,\n (testElement: HTMLElement) => parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE),\n );\n return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n","import * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { IDisposable } from './IDisposable';\nimport { ISettingsMap } from './warn/warn';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\nimport { IRefObject } from './createRef';\nimport { IBaseProps } from './BaseComponent.types';\n\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nexport class BaseComponent extends React.Component {\n /**\n * @deprecated Use React's error boundaries instead.\n */\n // tslint:disable-next-line:no-any\n public static onError: (errorMessage?: string, ex?: any) => void;\n\n /**\n * Controls whether the componentRef prop will be resolved by this component instance. If you are\n * implementing a passthrough (higher-order component), you would set this to false and pass through\n * the props to the inner component, allowing it to resolve the componentRef.\n */\n protected _skipComponentRefResolution: boolean;\n\n // tslint:disable:variable-name\n private __async: Async;\n private __events: EventGroup;\n private __disposables: IDisposable[] | null;\n private __resolves: { [name: string]: (ref: React.ReactNode) => React.ReactNode };\n private __className: string;\n // tslint:enable:variable-name\n\n /**\n * BaseComponent constructor\n * @param props - The props for the component.\n * @param context - The context for the component.\n */\n // tslint:disable-next-line:no-any\n constructor(props: TProps, context?: any) {\n super(props, context);\n\n // tslint:disable-next-line:deprecation\n _makeAllSafe(this, BaseComponent.prototype, [\n 'componentDidMount',\n 'shouldComponentUpdate',\n 'getSnapshotBeforeUpdate',\n 'render',\n 'componentDidUpdate',\n 'componentWillUnmount',\n ]);\n }\n\n /**\n * When the component receives props, make sure the componentRef is updated.\n */\n public componentDidUpdate(prevProps: TProps, prevState: TState): void {\n this._updateComponentRef(prevProps, this.props);\n }\n\n /**\n * When the component has mounted, update the componentRef.\n */\n public componentDidMount(): void {\n this._setComponentRef(this.props.componentRef, this);\n }\n\n /**\n * If we have disposables, dispose them automatically on unmount.\n */\n public componentWillUnmount(): void {\n this._setComponentRef(this.props.componentRef, null);\n\n if (this.__disposables) {\n for (let i = 0, len = this._disposables.length; i < len; i++) {\n let disposable = this.__disposables[i];\n\n if (disposable.dispose) {\n disposable.dispose();\n }\n }\n this.__disposables = null;\n }\n }\n\n /**\n * Gets the object's class name.\n */\n public get className(): string {\n if (!this.__className) {\n let funcNameRegex = /function (.{1,})\\(/;\n let results = funcNameRegex.exec(this.constructor.toString());\n\n this.__className = results && results.length > 1 ? results[1] : '';\n }\n\n return this.__className;\n }\n\n /**\n * Allows subclasses to push things to this._disposables to be auto disposed.\n */\n protected get _disposables(): IDisposable[] {\n if (!this.__disposables) {\n this.__disposables = [];\n }\n return this.__disposables;\n }\n\n /**\n * Gets the async instance associated with the component, created on demand. The async instance gives\n * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n */\n protected get _async(): Async {\n if (!this.__async) {\n this.__async = new Async(this);\n this._disposables.push(this.__async);\n }\n\n return this.__async;\n }\n\n /**\n * Gets the event group instance assocaited with the component, created on demand. The event instance\n * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n * will be automatically disconnected after unmounting. The helpers within the events object also\n * preserve the this reference so that you don't need to \"bind\" the callbacks.\n */\n protected get _events(): EventGroup {\n if (!this.__events) {\n this.__events = new EventGroup(this);\n this._disposables.push(this.__events);\n }\n\n return this.__events;\n }\n\n /**\n * Helper to return a memoized ref resolver function.\n * @param refName - Name of the member to assign the ref to.\n * @returns A function instance keyed from the given refname.\n * @deprecated Use `createRef` from React.createRef.\n */\n protected _resolveRef(refName: string): (ref: React.ReactNode) => React.ReactNode {\n if (!this.__resolves) {\n this.__resolves = {};\n }\n\n if (!this.__resolves[refName]) {\n // tslint:disable-next-line:no-any\n this.__resolves[refName] = (ref: React.ReactNode) => {\n // tslint:disable-next-line:no-any\n return ((this as any)[refName] = ref);\n };\n }\n\n return this.__resolves[refName];\n }\n\n /**\n * Updates the componentRef (by calling it with \"this\" when necessary.)\n */\n protected _updateComponentRef(currentProps: IBaseProps, newProps: IBaseProps = {}): void {\n // currentProps *should* always be defined, but verify that just in case a subclass is manually\n // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n this._setComponentRef(currentProps.componentRef, null);\n this._setComponentRef(newProps.componentRef, this);\n }\n }\n\n /**\n * Warns when a deprecated props are being used.\n *\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\n protected _warnDeprecations(deprecationMap: ISettingsMap): void {\n warnDeprecations(this.className, this.props, deprecationMap);\n }\n\n /**\n * Warns when props which are mutually exclusive with each other are both used.\n *\n * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n */\n protected _warnMutuallyExclusive(mutuallyExclusiveMap: ISettingsMap): void {\n warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n }\n\n /**\n * Warns when props are required if a condition is met.\n *\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\n protected _warnConditionallyRequiredProps(\n requiredProps: string[],\n conditionalPropName: string,\n condition: boolean,\n ): void {\n warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n }\n\n private _setComponentRef(\n ref: IRefObject | undefined,\n value: TRefInterface | null,\n ): void {\n if (!this._skipComponentRefResolution && ref) {\n if (typeof ref === 'function') {\n ref(value);\n }\n\n if (typeof ref === 'object') {\n // tslint:disable:no-any\n (ref as any).current = value;\n }\n }\n }\n}\n\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// tslint:disable-next-line:deprecation\nfunction _makeAllSafe(obj: BaseComponent<{}, {}>, prototype: Object, methodNames: string[]): void {\n for (let i = 0, len = methodNames.length; i < len; i++) {\n _makeSafe(obj, prototype, methodNames[i]);\n }\n}\n\n// tslint:disable-next-line:deprecation\nfunction _makeSafe(obj: BaseComponent<{}, {}>, prototype: Object, methodName: string): void {\n // tslint:disable:no-any\n let classMethod = (obj as any)[methodName];\n let prototypeMethod = (prototype as any)[methodName];\n // tslint:enable:no-any\n\n if (classMethod || prototypeMethod) {\n // tslint:disable-next-line:no-any\n (obj as any)[methodName] = function(): any {\n let retVal;\n\n if (prototypeMethod) {\n retVal = prototypeMethod.apply(this, arguments);\n }\n if (classMethod !== prototypeMethod) {\n retVal = classMethod.apply(this, arguments);\n }\n\n return retVal;\n };\n }\n}\n\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender(): JSX.Element | null {\n return null;\n}\n","import * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { IFocusZoneProps } from '../../FocusZone';\nimport { IIconProps } from '../Icon/Icon.types';\nimport { ICalloutProps, ICalloutContentStyleProps, Target } from '../../Callout';\nimport { ITheme, IStyle } from '../../Styling';\nimport { IButtonStyles } from '../../Button';\nimport { IRefObject, IBaseProps, IRectangle, IRenderFunction, IStyleFunctionOrObject } from '../../Utilities';\nimport { IWithResponsiveModeState } from '../../utilities/decorators/withResponsiveMode';\nimport { IContextualMenuClassNames, IMenuItemClassNames } from './ContextualMenu.classNames';\nexport { DirectionalHint } from '../../common/DirectionalHint';\nimport { IVerticalDividerClassNames } from '../Divider/VerticalDivider.types';\nimport {\n IContextualMenuItemProps,\n IContextualMenuRenderItem,\n IContextualMenuItemStyleProps,\n} from './ContextualMenuItem.types';\nimport { IKeytipProps } from '../../Keytip';\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport enum ContextualMenuItemType {\n Normal = 0,\n Divider = 1,\n Header = 2,\n Section = 3,\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenu {}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuProps extends IBaseProps, IWithResponsiveModeState {\n /**\n * Optional callback to access the IContextualMenu interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by higher-order component.\n */\n theme?: ITheme;\n\n /**\n * Additional CSS class to apply to the ContextualMenu.\n */\n className?: string;\n\n /**\n * The target that the ContextualMenu should try to position itself based on.\n * It can be either an element, a query selector string resolving to a valid element,\n * or a MouseEvent. If a MouseEvent is given, the origin point of the event will be used.\n */\n target?: Target;\n\n /**\n * How the menu should be positioned\n * @defaultvalue DirectionalHint.bottomAutoEdge\n */\n directionalHint?: DirectionalHint;\n\n /**\n * How the menu should be positioned in RTL layouts.\n * If not specified, a mirror of `directionalHint` will be used.\n */\n directionalHintForRTL?: DirectionalHint;\n\n /**\n * The gap between the ContextualMenu and the target\n * @defaultvalue 0\n */\n gapSpace?: number;\n\n /**\n * The width of the beak.\n * @defaultvalue 16\n */\n beakWidth?: number;\n\n /**\n * If true the context menu will render as the same width as the target element\n * @defaultvalue false\n */\n useTargetWidth?: boolean;\n\n /**\n * If true the context menu will have a minimum width equal to the width of the target element\n * @defaultvalue false\n */\n useTargetAsMinWidth?: boolean;\n\n /**\n * The bounding rectangle (or callback that returns a rectangle) which the contextual menu can appear in.\n */\n bounds?: IRectangle | ((target?: Target, targetWindow?: Window) => IRectangle | undefined);\n\n /**\n * If true then the beak is visible. If false it will not be shown.\n */\n isBeakVisible?: boolean;\n\n /**\n * If true, the menu will be positioned to cover the target.\n * If false, it will be positioned next to the target.\n * @defaultvalue false\n */\n coverTarget?: boolean;\n\n /**\n * If true the positioning logic will prefer to flip edges rather than to nudge the rectangle to fit within bounds,\n * thus making sure the element aligns perfectly with target's alignment edge\n */\n alignTargetEdge?: boolean;\n\n /**\n * Menu items to display.\n */\n items: IContextualMenuItem[];\n\n /**\n * Used as `aria-labelledby` for the menu element inside the callout.\n */\n labelElementId?: string;\n\n /**\n * Whether to focus on the menu when mounted.\n * @defaultvalue true\n */\n shouldFocusOnMount?: boolean;\n\n /**\n * Whether to focus on the contextual menu container (as opposed to the first menu item).\n */\n shouldFocusOnContainer?: boolean;\n\n /**\n * Callback when the ContextualMenu tries to close. If `dismissAll` is true then all\n * submenus will be dismissed.\n */\n onDismiss?: (ev?: React.MouseEvent | React.KeyboardEvent, dismissAll?: boolean) => void;\n\n /**\n * Click handler which is invoked if `onClick` is not passed for individual contextual\n * menu item.\n * Returning true will dismiss the menu even if `ev.preventDefault()` was called.\n */\n onItemClick?: (\n ev?: React.MouseEvent | React.KeyboardEvent,\n item?: IContextualMenuItem,\n ) => boolean | void;\n\n /**\n * Whether this menu is a submenu of another menu.\n */\n isSubMenu?: boolean;\n\n /**\n * ID for the ContextualMenu's root element (inside the callout).\n * Should be used for `aria-owns` and other such uses, rather than direct reference for programmatic purposes.\n */\n id?: string;\n\n /**\n * Accessible label for the ContextualMenu's root element (inside the callout).\n */\n ariaLabel?: string;\n\n /**\n * If true do not render on a new layer. If false render on a new layer.\n * @defaultvalue false\n */\n doNotLayer?: boolean;\n\n /**\n * If true the position will not change sides in an attempt to fit the ContextualMenu within bounds.\n * It will still attempt to align it to whatever bounds are given.\n * @defaultvalue false\n */\n directionalHintFixed?: boolean;\n\n /**\n * Callback for when the menu has been opened.\n */\n onMenuOpened?: (contextualMenu?: IContextualMenuProps) => void;\n\n /**\n * Callback for when the menu is being closed (removing from the DOM).\n */\n onMenuDismissed?: (contextualMenu?: IContextualMenuProps) => void;\n\n /**\n * Additional custom props for the Callout.\n */\n calloutProps?: ICalloutProps;\n\n /**\n * Title to be displayed at the top of the menu, above the items.\n */\n title?: string;\n\n /**\n * Method to provide the classnames to style the contextual menu.\n * @deprecated Use `styles` instead to leverage mergeStyles API.\n */\n // tslint:disable-next-line:deprecation\n getMenuClassNames?: (theme: ITheme, className?: string) => IContextualMenuClassNames;\n\n /** Custom render function for a submenu. */\n onRenderSubMenu?: IRenderFunction;\n\n /**\n * Method to override the render of the list of menu items.\n */\n onRenderMenuList?: IRenderFunction;\n\n /**\n * Delay (in milliseconds) to wait before expanding / dismissing a submenu on mouseEnter or mouseLeave\n */\n subMenuHoverDelay?: number;\n\n /**\n * Custom component to use for rendering individual menu items.\n * @defaultvalue ContextualMenuItem\n */\n contextualMenuItemAs?:\n | React.ComponentClass\n | React.FunctionComponent;\n\n /**\n * Props to pass down to the FocusZone.\n * NOTE: the default FocusZoneDirection will be used unless a direction\n * is specified in the focusZoneProps (even if other focusZoneProps are defined)\n * @defaultvalue \\{ direction: FocusZoneDirection.vertical \\}\n */\n focusZoneProps?: IFocusZoneProps;\n\n /**\n * If true, renders the ContextualMenu in a hidden state.\n * Use this flag, rather than rendering a ContextualMenu conditionally based on visibility,\n * to improve rendering performance when it becomes visible.\n * Note: When ContextualMenu is hidden its content will not be rendered. It will only render\n * once the ContextualMenu is visible.\n */\n hidden?: boolean;\n\n /**\n * If true, the menu will be updated even when `hidden=true`. Note that this will consume\n * resources to update even when nothing is being shown to the user. This might be helpful if\n * your updates are small and you want the menu to display quickly when `hidden` is set to false.\n */\n shouldUpdateWhenHidden?: boolean;\n\n /**\n * If true, the contextual menu will not be updated until focus enters the menu via other means.\n * This will only result in different behavior when `shouldFocusOnMount = false`.\n */\n delayUpdateFocusOnHover?: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuItemRenderProps extends IContextualMenuItem {\n index: number;\n focusableElementIndex: number;\n totalItemCount: number;\n hasCheckmarks: boolean;\n hasIcons: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuListProps {\n items: IContextualMenuItem[];\n totalItemCount: number;\n hasCheckmarks: boolean;\n hasIcons: boolean;\n defaultMenuItemRenderer: (item: IContextualMenuItemRenderProps) => React.ReactNode;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuItem {\n /**\n * Optional callback to access the IContextualMenuRenderItem interface.\n * This will get passed down to ContextualMenuItem.\n */\n componentRef?: IRefObject;\n\n /**\n * Unique id to identify the item\n */\n key: string;\n\n /**\n * Text of the menu item.\n * If a standard hyphen (-) is passed in, then the item will be rendered as a divider.\n * If a dash must appear as text, use an emdash (—), figuredash (‒), or minus symbol (−) instead.\n */\n text?: string;\n\n /**\n * Seconday description for the menu item to display\n */\n secondaryText?: string;\n\n itemType?: ContextualMenuItemType;\n\n /**\n * Props for an icon to display next to the item.\n */\n iconProps?: IIconProps;\n\n /**\n * Custom render function for the menu item icon\n */\n onRenderIcon?: IRenderFunction;\n\n /**\n * Props for the Icon used for the chevron.\n */\n submenuIconProps?: IIconProps;\n\n /**\n * Whether the menu item is disabled\n * @defaultvalue false\n */\n disabled?: boolean;\n\n /**\n * If the menu item is a split button, this prop disables purely the primary action of the button.\n * @defaultvalue false\n */\n primaryDisabled?: boolean;\n\n /**\n * @deprecated Not used\n */\n shortCut?: string;\n\n /**\n * Whether or not this menu item can be checked\n * @defaultvalue false\n */\n canCheck?: boolean;\n\n /**\n * Whether or not this menu item is currently checked.\n * @defaultvalue false\n */\n checked?: boolean;\n\n /**\n * Whether or not this menu item is a splitButton.\n * @defaultvalue false\n */\n split?: boolean;\n\n /**\n * Any custom data the developer wishes to associate with the menu item.\n */\n data?: any;\n\n /**\n * Callback for when the menu item is invoked. If `ev.preventDefault()` is called in `onClick`,\n * the click will not close the menu.\n *\n * Only for ContextualMenu items, returning true will dismiss the menu even if `ev.preventDefault()`\n * was called (does not apply for button or CommandBar sub-menu items).\n */\n onClick?: (\n ev?: React.MouseEvent | React.KeyboardEvent,\n item?: IContextualMenuItem,\n ) => boolean | void;\n\n /**\n * Navigate to this URL when the menu item is clicked.\n */\n href?: string;\n\n /**\n * Target window when using `href`.\n */\n target?: string;\n\n /**\n * Link relation setting when using `href`.\n * If `target` is `_blank`, `rel` is defaulted to a value to prevent clickjacking.\n */\n rel?: string;\n\n /**\n * Properties to apply to a submenu to this item.\n *\n * The ContextualMenu will provide default values for `target`, `onDismiss`, `isSubMenu`,\n * `id`, `shouldFocusOnMount`, `directionalHint`, `className`, and `gapSpace`, all of which\n * can be overridden.\n */\n subMenuProps?: IContextualMenuProps;\n\n /**\n * Method to provide the classnames to style the individual items inside a menu.\n * @deprecated Use `styles` prop of `IContextualMenuItemProps` to leverage mergeStyles API.\n */\n getItemClassNames?: (\n theme: ITheme,\n disabled: boolean,\n expanded: boolean,\n checked: boolean,\n isAnchorLink: boolean,\n knownIcon: boolean,\n itemClassName?: string,\n dividerClassName?: string,\n iconClassName?: string,\n subMenuClassName?: string,\n primaryDisabled?: boolean,\n ) => // tslint:disable-next-line:deprecation\n IMenuItemClassNames;\n\n /**\n * Optional IContextualMenuItemProps overrides to customize behaviors such as item styling via `styles`.\n */\n itemProps?: Partial;\n\n /**\n * Method to provide the classnames to style the Vertical Divider of a split button inside a menu.\n * Default value is the `getSplitButtonVerticalDividerClassNames` func defined in `ContextualMenu.classnames.ts`.\n * @defaultvalue getSplitButtonVerticalDividerClassNames\n */\n // tslint:disable-next-line:deprecation\n getSplitButtonVerticalDividerClassNames?: (theme: ITheme) => IVerticalDividerClassNames;\n\n /**\n * Properties to apply to render this item as a section.\n * This prop is mutually exclusive with `subMenuProps`.\n */\n sectionProps?: IContextualMenuSection;\n\n /**\n * Additional CSS class to apply to the menu item.\n */\n className?: string;\n\n /**\n * Additional styles to apply to the menu item\n * @deprecated in favor of the `styles` prop to leverage mergeStyles API.\n */\n style?: React.CSSProperties;\n\n /**\n * Custom accessible label for the element.\n * If no override is specified, the `aria-label` attribute will contain the item name.\n */\n ariaLabel?: string;\n\n /**\n * Title (tooltip) text displayed when hovering over an item.\n */\n title?: string;\n\n /**\n * Method to custom render this menu item.\n * For keyboard accessibility, the top-level rendered item should be a focusable element\n * (like an anchor or a button) or have the `data-is-focusable` property set to true.\n *\n * @param item - Item to render. Will typically be of type `IContextualMenuItem`.\n * (When rendering a command bar item, will be `ICommandBarItemProps`.)\n * @param dismissMenu - Function to dismiss the menu. Can be used to ensure that a custom menu\n * item click dismisses the menu. (Will be undefined if rendering a command bar item.)\n */\n onRender?: (item: any, dismissMenu: (ev?: any, dismissAll?: boolean) => void) => React.ReactNode;\n\n /**\n * A function to be executed on mouse down. This is executed before an `onClick` event and can\n * be used to interrupt native on click events as well. The click event should still handle\n * the commands. This should only be used in special cases when react and non-react are mixed.\n */\n onMouseDown?: (item: IContextualMenuItem, event: React.MouseEvent) => void;\n\n /**\n * Optional override for the menu button's role. Defaults to `menuitem` or `menuitemcheckbox`.\n */\n role?: string;\n\n /**\n * When rendering a custom menu component that is passed in, the component might also be a list of\n * elements. We want to keep track of the correct index our menu is using based off of\n * the length of the custom list. It is up to the user to increment the count for their list.\n */\n customOnRenderListLength?: number;\n\n /**\n * Keytip for this contextual menu item\n */\n keytipProps?: IKeytipProps;\n\n /**\n * Any additional properties to use when custom rendering menu items.\n */\n [propertyName: string]: any;\n\n /**\n * This prop is no longer used. All contextual menu items are now focusable when disabled.\n * @deprecated in 6.38.2 will be removed in 7.0.0\n */\n inactive?: boolean;\n\n /**\n * Text of the menu item.\n * @deprecated Use `text` instead.\n */\n name?: string;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuSection extends React.ClassAttributes {\n /**\n * The items to include inside the section.\n */\n items: IContextualMenuItem[];\n\n /**\n * The optional section title.\n */\n title?: string;\n\n /**\n * If set to true, the section will display a divider at the top of the section.\n */\n topDivider?: boolean;\n\n /**\n * If set to true, the section will display a divider at the bottom of the section.\n */\n bottomDivider?: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IMenuItemStyles extends IButtonStyles {\n /**\n * Styles for a menu item that is an anchor link.\n */\n item: IStyle;\n\n /**\n * Styles for the content inside the button/link of the menuItem.\n */\n linkContent: IStyle;\n\n /**\n * Styles for a menu item that is an anchor link.\n */\n anchorLink: IStyle;\n\n /**\n * Default icon color style for known icons.\n */\n iconColor: IStyle;\n\n /**\n * Default style for checkmark icons.\n */\n checkmarkIcon: IStyle;\n\n /**\n * Styles for the submenu icon of a menu item.\n */\n subMenuIcon: IStyle;\n\n /**\n * Styles for a divider item of a ConextualMenu.\n */\n divider: IStyle;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuStyleProps {\n theme: ITheme;\n\n className?: string;\n\n // Insert ContextualMenu style props below\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuStyles {\n /**\n * Style override for the contextual menu title.\n */\n title: IStyle;\n\n /**\n * Style for the container which parents all menu items.\n */\n container: IStyle;\n\n /**\n * Base styles for the root element of all ContextualMenus.\n */\n root: IStyle;\n\n /**\n * Styles for the header item of a ContextualMenu\n */\n header: IStyle;\n\n /**\n * Styles for the list that contains all menuItems.\n */\n list: IStyle;\n\n /**\n * SubComponent styles.\n */\n subComponentStyles: IContextualMenuSubComponentStyles;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuSubComponentStyles {\n /** Styles for the callout that hosts the ContextualMenu options. */\n callout: IStyleFunctionOrObject;\n\n /** Styles for each menu item. */\n menuItem: IStyleFunctionOrObject;\n}\n","import * as React from 'react';\n\nimport { IImageIconProps } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n\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 const ImageIcon: React.FunctionComponent = props => {\n const { className, imageProps } = props;\n\n const nativeProps = getNativeProps>(props, htmlElementProperties);\n\n const containerProps = props['aria-label']\n ? {}\n : {\n role: 'presentation',\n 'aria-hidden': imageProps.alt || imageProps['aria-labelledby'] ? false : true,\n };\n\n return (\n

\n \n
\n );\n};\n","import * as React from 'react';\nimport { FocusZone } from './FocusZone';\nimport { IRefObject, Point } from '@uifabric/utilities';\n\n/**\n * FocusZone component class interface.\n * {@docCategory FocusZone}\n */\nexport interface IFocusZone {\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focus(forceIntoFirstElement?: boolean): boolean;\n\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focusLast(): boolean;\n\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focusElement(childElement?: HTMLElement): boolean;\n\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference, rather\n * than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n setFocusAlignment(point: Point): void;\n}\n\n/**\n * FocusZone component props.\n * {@docCategory FocusZone}\n */\nexport interface IFocusZoneProps extends React.HTMLAttributes {\n /**\n * Optional callback to access the IFocusZone interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Additional class name to provide on the root element, in addition to the ms-FocusZone class.\n */\n className?: string;\n\n /**\n * Defines which arrows to react to.\n * @defaultvalue FocusZoneDirection.bidirectional\n */\n direction?: FocusZoneDirection;\n\n /**\n * Optionally defines the initial tabbable element inside the FocusZone.\n * If a string is passed then it is treated as a selector for identifying the initial tabbable element.\n * If a function is passed then it uses the root element as a parameter to return the initial tabbable element.\n */\n defaultTabbableElement?: string | ((root: HTMLElement) => HTMLElement);\n\n /**\n * Optionally provide a selector for identifying the initial active element.\n * @deprecated Use `defaultTabbableElement` instead.\n */\n defaultActiveElement?: string;\n\n /**\n * Determines if a default tabbable element should be force focused on FocusZone mount.\n * @default false\n */\n shouldFocusOnMount?: boolean;\n\n /**\n * If set, the FocusZone will not be tabbable and keyboard navigation will be disabled.\n * This does not affect disabled attribute of any child.\n */\n disabled?: boolean;\n\n /**\n * Element type the root element will use. Default is \"div\".\n * @deprecated Use 'as' instead.\n */\n // tslint:disable-next-line:no-any\n elementType?: any /* TODO should be `keyof React.ReactHTML`, tracking with https://github.com/Microsoft/TypeScript/issues/30050 */;\n\n /**\n * A component that should be used as the root element of the FocusZone component.\n */\n as?: React.ElementType;\n\n /**\n * If set, will cycle to the beginning of the targets once the user navigates to the\n * next target while at the end, and to the end when navigate to the previous at the beginning.\n */\n isCircularNavigation?: boolean;\n\n /**\n * If provided, this callback will be executed on keypresses to determine if the user\n * intends to navigate into the inner zone. Returning true will ask the first inner zone to\n * set focus.\n * @deprecated Use `shouldEnterInnerZone` instead.\n */\n isInnerZoneKeystroke?: (ev: React.KeyboardEvent) => boolean;\n\n /**\n * Callback function that will be executed on keypresses to determine if the user intends to navigate into\n * the inner (nested) zone. Returning true will ask the first inner zone to set focus.\n */\n shouldEnterInnerZone?: (ev: React.KeyboardEvent) => boolean;\n\n /**\n * Sets the aria-labelledby attribute.\n * @deprecated Directly use the `aria-labelledby` attribute instead\n */\n ariaLabelledBy?: string;\n\n /**\n * Sets the aria-describedby attribute.\n * @deprecated Directly use the `aria-describedby` attribute instead\n */\n ariaDescribedBy?: string;\n\n /**\n * Callback for when one of immediate children elements gets active by getting focused\n * or by having one of its respective children elements focused.\n */\n onActiveElementChanged?: (element?: HTMLElement, ev?: React.FocusEvent) => void;\n\n /**\n * Deprecated at v1.12.1. DIV props provided to the FocusZone will be mixed into the root element.\n * @deprecated DIV props provided to the FocusZone will be mixed into the root element.\n */\n rootProps?: React.HTMLAttributes;\n\n /**\n * Callback method for determining if focus should indeed be set on the given element.\n * @param element - The child element within the zone to focus.\n * @returns True if focus should be set to the given element, false to avoid setting focus.\n * @deprecated Use `shouldReceiveFocus` instead.\n */\n onBeforeFocus?: (childElement?: HTMLElement) => boolean;\n\n /**\n * Callback method for determining if focus should indeed be set on the given element.\n * @param element - The child element within the zone to focus.\n * @returns True if focus should be set to the given element, false to avoid setting focus.\n */\n shouldReceiveFocus?: (childElement?: HTMLElement) => boolean;\n\n /** Allows focus to park on root when focus is in the `FocusZone` at render time. */\n allowFocusRoot?: boolean;\n\n /**\n * Allows tab key to be handled to tab through a list of items in the focus zone,\n * an unfortunate side effect is that users will not be able to tab out of the focus zone\n * and have to hit escape or some other key.\n * @deprecated Use `handleTabKey` instead.\n *\n */\n allowTabKey?: boolean;\n\n /**\n * Allows tab key to be handled to tab through a list of items in the focus zone,\n * an unfortunate side effect is that users will not be able to tab out of the focus zone\n * and have to hit escape or some other key.\n */\n handleTabKey?: FocusZoneTabbableElements;\n\n /**\n * If true and FocusZone's root element (container) receives focus, the focus will land either on the\n * defaultTabbableElement (if set) or on the first tabbable element of this FocusZone.\n * Usually a case for nested focus zones, when the nested focus zone's container is a focusable element.\n */\n shouldFocusInnerElementWhenReceivedFocus?: boolean;\n\n /**\n * If true and TAB key is not handled by FocusZone, resets current active element to null value.\n * For example, when roving index is not desirable and focus should always reset to the default tabbable element.\n */\n shouldResetActiveElementWhenTabFromZone?: boolean;\n\n /**\n * Determines whether the FocusZone will walk up the DOM trying to invoke click callbacks on focusable elements on\n * Enter and Space keydowns to ensure accessibility for tags that don't guarantee this behavior.\n * @defaultvalue true\n */\n shouldRaiseClicks?: boolean;\n\n /**\n * A callback method to determine if the input element should lose focus on arrow keys\n * @param inputElement - The input element which is to loose focus.\n * @returns True if input element should loose focus or false otherwise.\n */\n shouldInputLoseFocusOnArrowKey?: (inputElement: HTMLInputElement) => boolean;\n\n /**\n * Determines whether to disable the paging support for Page Up and Page Down keyboard scenarios.\n * @defaultvalue false\n */\n pagingSupportDisabled?: boolean;\n\n /**\n * Determines whether to check for data-no-horizontal-wrap or data-no-vertical-wrap attributes\n * when determining how to move focus\n * @defaultvalue false\n */\n checkForNoWrap?: boolean;\n\n /**\n * Whether the FocusZone should allow focus events to propagate past the FocusZone.\n * @deprecated Use `stopFocusPropagation` instead.\n */\n doNotAllowFocusEventToPropagate?: boolean;\n\n /**\n * Whether the FocusZone should allow focus events to propagate past the FocusZone.\n */\n stopFocusPropagation?: boolean;\n\n /**\n * Callback to notify creators that focus has been set on the FocusZone\n * @deprecated Use `onFocus` instead.\n */\n onFocusNotification?: () => void;\n\n /**\n * Callback called when \"focus\" event triggered in FocusZone.\n * @param event - React's original FocusEvent.\n */\n onFocus?: (event: React.FocusEvent) => void;\n\n /**\n * If true, FocusZone prevents the default behavior of Keyboard events when changing focus between elements.\n * @defaultvalue false\n */\n preventDefaultWhenHandled?: boolean;\n\n /**\n * If true, prevents the FocusZone from attempting to restore the focus to the inner element when the focus is on the\n * root element after componentDidUpdate.\n * @defaultvalue false\n */\n preventFocusRestoration?: boolean;\n}\n/**\n * {@docCategory FocusZone}\n */\nexport const FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0 as 0,\n\n /** All tabbing action is allowed */\n all: 1 as 1,\n\n /** Tabbing is allowed only on input elements */\n inputOnly: 2 as 2,\n};\n\n/**\n * {@docCategory FocusZone}\n */\nexport type FocusZoneTabbableElements = typeof FocusZoneTabbableElements[keyof typeof FocusZoneTabbableElements];\n\n/**\n * {@docCategory FocusZone}\n */\nexport enum FocusZoneDirection {\n /** Only react to up/down arrows. */\n vertical = 0,\n\n /** Only react to left/right arrows. */\n horizontal = 1,\n\n /** React to all arrows. */\n bidirectional = 2,\n\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n domOrder = 3,\n}\n","/** Raises a click event. */\nexport function raiseClick(target: Element): void {\n const event = createNewEvent('MouseEvents');\n event.initEvent('click', true, true);\n target.dispatchEvent(event);\n}\n\nfunction createNewEvent(eventName: string): Event {\n let event;\n if (typeof Event === 'function') {\n // Chrome, Opera, Firefox\n event = new Event(eventName);\n } else {\n // IE\n event = document.createEvent('Event');\n event.initEvent(eventName, true, true);\n }\n return event;\n}\n","import * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements, IFocusZone, IFocusZoneProps } from './FocusZone.types';\nimport {\n KeyCodes,\n css,\n elementContains,\n getDocument,\n getElementIndexPath,\n getFocusableByIndexPath,\n getId,\n getNativeProps,\n getNextElement,\n getParent,\n getPreviousElement,\n getRTL,\n htmlElementProperties,\n initializeComponentRef,\n isElementFocusSubZone,\n isElementFocusZone,\n isElementTabbable,\n raiseClick,\n shouldWrapFocus,\n warnDeprecations,\n portalContainsElement,\n Point,\n getWindow,\n findScrollableParent,\n} from '@uifabric/utilities';\nimport { mergeStyles } from '@uifabric/merge-styles';\n\nconst IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nconst IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nconst FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nconst TABINDEX = 'tabindex';\nconst NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nconst NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nconst LARGE_DISTANCE_FROM_CENTER = 999999999;\nconst LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\n\nlet focusZoneStyles: string;\n\nconst focusZoneClass: string = 'ms-FocusZone';\n\n// Helper function that will return a class for when the root is focused\nfunction getRootClass(): string {\n if (!focusZoneStyles) {\n focusZoneStyles = mergeStyles(\n {\n selectors: {\n ':focus': {\n outline: 'none',\n },\n },\n },\n focusZoneClass,\n );\n }\n return focusZoneStyles;\n}\n\nconst _allInstances: {\n [key: string]: FocusZone;\n} = {};\nconst _outerZones: Set = new Set();\n\nconst ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search'];\n\nconst ALLOW_VIRTUAL_ELEMENTS = false;\n\nexport class FocusZone extends React.Component implements IFocusZone {\n public static defaultProps: IFocusZoneProps = {\n isCircularNavigation: false,\n direction: FocusZoneDirection.bidirectional,\n shouldRaiseClicks: true,\n };\n\n private _root: React.RefObject = React.createRef();\n private _id: string;\n\n /** The most recently focused child element. */\n private _activeElement: HTMLElement | null;\n\n /**\n * The index path to the last focused child element.\n */\n private _lastIndexPath: number[] | undefined;\n\n /**\n * Flag to define when we've intentionally parked focus on the root element to temporarily\n * hold focus until items appear within the zone.\n */\n private _isParked: boolean;\n\n /** The child element with tabindex=0. */\n private _defaultFocusElement: HTMLElement | null;\n private _focusAlignment: Point;\n private _isInnerZone: boolean;\n private _parkedTabIndex: string | null | undefined;\n\n /** Used to allow moving to next focusable element even when we're focusing on a input element when pressing tab */\n private _processingTabKey: boolean;\n\n private _windowElement: Window | undefined;\n\n /** Used for testing purposes only. */\n public static getOuterZones(): number {\n return _outerZones.size;\n }\n\n constructor(props: IFocusZoneProps) {\n super(props);\n // Manage componentRef resolution.\n initializeComponentRef(this);\n\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('FocusZone', props, {\n rootProps: undefined,\n allowTabKey: 'handleTabKey',\n elementType: 'as',\n ariaDescribedBy: 'aria-describedby',\n ariaLabelledBy: 'aria-labelledby',\n });\n }\n\n this._id = getId('FocusZone');\n\n this._focusAlignment = {\n left: 0,\n top: 0,\n };\n\n this._processingTabKey = false;\n }\n\n public componentDidMount(): void {\n const { current: root } = this._root;\n\n _allInstances[this._id] = this;\n\n if (root) {\n this._windowElement = getWindow(root);\n let parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n\n while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n if (isElementFocusZone(parentElement)) {\n this._isInnerZone = true;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n\n if (!this._isInnerZone) {\n _outerZones.add(this);\n\n if (this._windowElement && _outerZones.size === 1) {\n this._windowElement.addEventListener('keydown', this._onKeyDownCapture, true);\n }\n }\n\n this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n\n // Assign initial tab indexes so that we can set initial focus as appropriate.\n this._updateTabIndexes();\n\n if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement) as HTMLElement;\n // tslint:disable-next-line:deprecation\n } else if (this.props.defaultActiveElement) {\n // tslint:disable-next-line:deprecation\n this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement) as HTMLElement;\n }\n\n if (this.props.shouldFocusOnMount) {\n this.focus();\n }\n }\n }\n\n public componentDidUpdate(): void {\n const { current: root } = this._root;\n const doc = this._getDocument();\n\n if (\n doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body ||\n doc.activeElement === null ||\n (!this.props.preventFocusRestoration && doc.activeElement === root))\n ) {\n // The element has been removed after the render, attempt to restore focus.\n const elementToFocus = getFocusableByIndexPath(root as HTMLElement, this._lastIndexPath);\n\n if (elementToFocus) {\n this._setActiveElement(elementToFocus, true);\n elementToFocus.focus();\n this._setParkedFocus(false);\n } else {\n // We had a focus path to restore, but now that path is unresolvable. Park focus\n // on the container until we can try again.\n this._setParkedFocus(true);\n }\n }\n }\n\n public componentWillUnmount(): void {\n delete _allInstances[this._id];\n\n if (!this._isInnerZone) {\n _outerZones.delete(this);\n\n // If this is the last outer zone, remove the keydown listener.\n if (this._windowElement && _outerZones.size === 0) {\n this._windowElement.removeEventListener('keydown', this._onKeyDownCapture, true);\n }\n }\n\n if (this._root.current) {\n this._root.current.removeEventListener('blur', this._onBlur, true);\n }\n\n this._activeElement = null;\n this._defaultFocusElement = null;\n }\n\n public render(): React.ReactNode {\n // tslint:disable-next-line:deprecation\n const { as: tag, elementType, rootProps, ariaDescribedBy, ariaLabelledBy, className } = this.props;\n const divProps = getNativeProps(this.props, htmlElementProperties);\n\n const Tag = tag || elementType || 'div';\n\n // Note, right before rendering/reconciling proceeds, we need to record if focus\n // was in the zone before the update. This helper will track this and, if focus\n // was actually in the zone, what the index path to the element is at this time.\n // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n // the case the element was removed.\n this._evaluateFocusBeforeRender();\n\n return (\n \n {this.props.children}\n \n );\n }\n\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n public focus(forceIntoFirstElement: boolean = false): boolean {\n if (this._root.current) {\n if (\n !forceIntoFirstElement &&\n this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n this._isInnerZone\n ) {\n const ownerZoneElement = this._getOwnerZone(this._root.current) as HTMLElement;\n\n if (ownerZoneElement !== this._root.current) {\n const ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE) as string];\n\n return !!ownerZone && ownerZone.focusElement(this._root.current);\n }\n\n return false;\n } else if (\n !forceIntoFirstElement &&\n this._activeElement &&\n elementContains(this._root.current, this._activeElement) &&\n isElementTabbable(this._activeElement)\n ) {\n this._activeElement.focus();\n return true;\n } else {\n const firstChild = this._root.current.firstChild as HTMLElement;\n\n return this.focusElement(getNextElement(this._root.current, firstChild, true) as HTMLElement);\n }\n }\n return false;\n }\n\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n public focusLast(): boolean {\n if (this._root.current) {\n const lastChild = this._root.current && (this._root.current.lastChild as HTMLElement | null);\n\n return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true) as HTMLElement);\n }\n\n return false;\n }\n\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n public focusElement(element: HTMLElement): boolean {\n // tslint:disable-next-line:deprecation\n const { onBeforeFocus, shouldReceiveFocus } = this.props;\n\n if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n return false;\n }\n\n if (element) {\n // when we Set focus to a specific child, we should recalculate the alignment depend on its position\n this._setActiveElement(element);\n if (this._activeElement) {\n this._activeElement.focus();\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n * rather than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n public setFocusAlignment(point: Point): void {\n this._focusAlignment = point;\n }\n\n private _evaluateFocusBeforeRender(): void {\n const { current: root } = this._root;\n\n const doc = this._getDocument();\n if (doc) {\n const focusedElement = doc.activeElement as HTMLElement;\n\n // Only update the index path if we are not parked on the root.\n if (focusedElement !== root) {\n const shouldRestoreFocus = elementContains(root, focusedElement, false);\n this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root as HTMLElement, focusedElement) : undefined;\n }\n }\n }\n\n private _onFocus = (ev: React.FocusEvent): void => {\n if (this._portalContainsElement(ev.target as HTMLElement)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n\n const {\n onActiveElementChanged,\n // tslint:disable-next-line:deprecation\n doNotAllowFocusEventToPropagate,\n stopFocusPropagation,\n // tslint:disable-next-line:deprecation\n onFocusNotification,\n onFocus,\n shouldFocusInnerElementWhenReceivedFocus,\n defaultTabbableElement,\n } = this.props;\n const isImmediateDescendant = this._isImmediateDescendantOfZone(ev.target as HTMLElement);\n let newActiveElement: HTMLElement | null | undefined;\n\n if (onFocus) {\n onFocus(ev);\n } else if (onFocusNotification) {\n onFocusNotification();\n }\n\n if (isImmediateDescendant) {\n newActiveElement = ev.target as HTMLElement;\n } else {\n let parentElement = ev.target as HTMLElement;\n\n while (parentElement && parentElement !== this._root.current) {\n if (isElementTabbable(parentElement) && this._isImmediateDescendantOfZone(parentElement)) {\n newActiveElement = parentElement;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS) as HTMLElement;\n }\n }\n\n // If an inner focusable element should be focused when FocusZone container receives focus\n if (shouldFocusInnerElementWhenReceivedFocus && ev.target === this._root.current) {\n const maybeElementToFocus =\n defaultTabbableElement &&\n typeof defaultTabbableElement === 'function' &&\n defaultTabbableElement(this._root.current);\n\n // try to focus defaultTabbable element\n if (maybeElementToFocus && isElementTabbable(maybeElementToFocus)) {\n newActiveElement = maybeElementToFocus;\n maybeElementToFocus.focus();\n } else {\n // force focus on first focusable element\n this.focus(true);\n if (this._activeElement) {\n // set to null as new active element was handled in method above\n newActiveElement = null;\n }\n }\n }\n\n const initialElementFocused = !this._activeElement;\n\n // If the new active element is a child of this zone and received focus,\n // update alignment an immediate descendant\n if (newActiveElement && newActiveElement !== this._activeElement) {\n if (isImmediateDescendant || initialElementFocused) {\n this._setFocusAlignment(newActiveElement, true, true);\n }\n\n this._activeElement = newActiveElement;\n\n if (initialElementFocused) {\n this._updateTabIndexes();\n }\n }\n\n if (onActiveElementChanged) {\n onActiveElementChanged(this._activeElement as HTMLElement, ev);\n }\n\n if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n ev.stopPropagation();\n }\n };\n\n /**\n * When focus is in the zone at render time but then all focusable elements are removed,\n * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n * focus to the closest path from previous. If the user tabs away from the parked container,\n * we restore focusability to the pre-parked state.\n */\n private _setParkedFocus(isParked: boolean): void {\n const { current: root } = this._root;\n\n if (root && this._isParked !== isParked) {\n this._isParked = isParked;\n\n if (isParked) {\n if (!this.props.allowFocusRoot) {\n this._parkedTabIndex = root.getAttribute('tabindex');\n root.setAttribute('tabindex', '-1');\n }\n root.focus();\n } else if (!this.props.allowFocusRoot) {\n if (this._parkedTabIndex) {\n root.setAttribute('tabindex', this._parkedTabIndex);\n this._parkedTabIndex = undefined;\n } else {\n root.removeAttribute('tabindex');\n }\n }\n }\n }\n\n private _onBlur = (): void => {\n this._setParkedFocus(false);\n };\n\n /**\n * Handle global tab presses so that we can patch tabindexes on the fly.\n */\n private _onKeyDownCapture = (ev: KeyboardEvent): void => {\n // tslint:disable-next-line:deprecation deprecated-keyboard-event-props\n if (ev.which === KeyCodes.tab) {\n _outerZones.forEach((zone: FocusZone) => zone._updateTabIndexes());\n }\n };\n\n private _onMouseDown = (ev: React.MouseEvent): void => {\n if (this._portalContainsElement(ev.target as HTMLElement)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n\n const { disabled } = this.props;\n\n if (disabled) {\n return;\n }\n\n let target = ev.target as HTMLElement;\n const path = [];\n\n while (target && target !== this._root.current) {\n path.push(target);\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS) as HTMLElement;\n }\n\n while (path.length) {\n target = path.pop() as HTMLElement;\n\n if (target && isElementTabbable(target)) {\n this._setActiveElement(target, true);\n }\n\n if (isElementFocusZone(target)) {\n // Stop here since the focus zone will take care of its own children.\n break;\n }\n }\n };\n\n private _setActiveElement(element: HTMLElement, forceAlignment?: boolean): void {\n const previousActiveElement = this._activeElement;\n\n this._activeElement = element;\n\n if (previousActiveElement) {\n if (isElementFocusZone(previousActiveElement)) {\n this._updateTabIndexes(previousActiveElement);\n }\n\n previousActiveElement.tabIndex = -1;\n }\n\n if (this._activeElement) {\n if (!this._focusAlignment || forceAlignment) {\n this._setFocusAlignment(element, true, true);\n }\n\n this._activeElement.tabIndex = 0;\n }\n }\n\n private _preventDefaultWhenHandled(ev: React.KeyboardEvent): void {\n this.props.preventDefaultWhenHandled && ev.preventDefault();\n }\n\n /**\n * Handle the keystrokes.\n */\n private _onKeyDown = (ev: React.KeyboardEvent): boolean | undefined => {\n if (this._portalContainsElement(ev.target as HTMLElement)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n\n // tslint:disable-next-line:deprecation\n const { direction, disabled, isInnerZoneKeystroke, pagingSupportDisabled, shouldEnterInnerZone } = this.props;\n\n if (disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(ev);\n }\n\n // If the default has been prevented, do not process keyboard events.\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n if (this._getDocument().activeElement === this._root.current && this._isInnerZone) {\n // If this element has focus, it is being controlled by a parent.\n // Ignore the keystroke.\n return;\n }\n\n if (\n ((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n this._isImmediateDescendantOfZone(ev.target as HTMLElement)\n ) {\n // Try to focus\n const innerZone = this._getFirstInnerZone();\n\n if (innerZone) {\n if (!innerZone.focus(true)) {\n return;\n }\n } else if (isElementFocusSubZone(ev.target as HTMLElement)) {\n if (\n !this.focusElement(\n getNextElement(\n ev.target as HTMLElement,\n (ev.target as HTMLElement).firstChild as HTMLElement,\n true,\n ) as HTMLElement,\n )\n ) {\n return;\n }\n } else {\n return;\n }\n } else if (ev.altKey) {\n return;\n } else {\n // tslint:disable-next-line:deprecated-keyboard-event-props\n switch (ev.which) {\n case KeyCodes.space:\n if (this._tryInvokeClickForFocusable(ev.target as HTMLElement)) {\n break;\n }\n return;\n\n case KeyCodes.left:\n if (direction !== FocusZoneDirection.vertical) {\n this._preventDefaultWhenHandled(ev);\n if (this._moveFocusLeft()) {\n break;\n }\n }\n return;\n\n case KeyCodes.right:\n if (direction !== FocusZoneDirection.vertical) {\n this._preventDefaultWhenHandled(ev);\n if (this._moveFocusRight()) {\n break;\n }\n }\n return;\n\n case KeyCodes.up:\n if (direction !== FocusZoneDirection.horizontal) {\n this._preventDefaultWhenHandled(ev);\n if (this._moveFocusUp()) {\n break;\n }\n }\n return;\n\n case KeyCodes.down:\n if (direction !== FocusZoneDirection.horizontal) {\n this._preventDefaultWhenHandled(ev);\n if (this._moveFocusDown()) {\n break;\n }\n }\n return;\n case KeyCodes.pageDown:\n if (!pagingSupportDisabled && this._moveFocusPaging(true)) {\n break;\n }\n return;\n case KeyCodes.pageUp:\n if (!pagingSupportDisabled && this._moveFocusPaging(false)) {\n break;\n }\n return;\n\n case KeyCodes.tab:\n if (\n // tslint:disable-next-line:deprecation\n this.props.allowTabKey ||\n this.props.handleTabKey === FocusZoneTabbableElements.all ||\n (this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n this._isElementInput(ev.target as HTMLElement))\n ) {\n let focusChanged = false;\n this._processingTabKey = true;\n if (\n direction === FocusZoneDirection.vertical ||\n !this._shouldWrapFocus(this._activeElement as HTMLElement, NO_HORIZONTAL_WRAP)\n ) {\n focusChanged = ev.shiftKey ? this._moveFocusUp() : this._moveFocusDown();\n } else {\n const tabWithDirection = getRTL() ? !ev.shiftKey : ev.shiftKey;\n focusChanged = tabWithDirection ? this._moveFocusLeft() : this._moveFocusRight();\n }\n this._processingTabKey = false;\n if (focusChanged) {\n break;\n } else if (this.props.shouldResetActiveElementWhenTabFromZone) {\n this._activeElement = null;\n }\n }\n return;\n\n case KeyCodes.home:\n if (\n this._isContentEditableElement(ev.target as HTMLElement) ||\n (this._isElementInput(ev.target as HTMLElement) &&\n !this._shouldInputLoseFocus(ev.target as HTMLInputElement, false))\n ) {\n return false;\n }\n const firstChild = this._root.current && (this._root.current.firstChild as HTMLElement | null);\n if (\n this._root.current &&\n firstChild &&\n this.focusElement(getNextElement(this._root.current, firstChild, true) as HTMLElement)\n ) {\n break;\n }\n return;\n\n case KeyCodes.end:\n if (\n this._isContentEditableElement(ev.target as HTMLElement) ||\n (this._isElementInput(ev.target as HTMLElement) &&\n !this._shouldInputLoseFocus(ev.target as HTMLInputElement, true))\n ) {\n return false;\n }\n\n const lastChild = this._root.current && (this._root.current.lastChild as HTMLElement | null);\n if (\n this._root.current &&\n this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true) as HTMLElement)\n ) {\n break;\n }\n return;\n\n case KeyCodes.enter:\n if (this._tryInvokeClickForFocusable(ev.target as HTMLElement)) {\n break;\n }\n return;\n\n default:\n return;\n }\n }\n\n ev.preventDefault();\n ev.stopPropagation();\n };\n\n /**\n * Walk up the dom try to find a focusable element.\n */\n private _tryInvokeClickForFocusable(target: HTMLElement): boolean {\n if (target === this._root.current || !this.props.shouldRaiseClicks) {\n return false;\n }\n\n do {\n if (\n target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA'\n ) {\n return false;\n }\n\n if (\n this._isImmediateDescendantOfZone(target) &&\n target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true'\n ) {\n raiseClick(target);\n return true;\n }\n\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS) as HTMLElement;\n } while (target !== this._root.current);\n\n return false;\n }\n\n /**\n * Traverse to find first child zone.\n */\n private _getFirstInnerZone(rootElement?: HTMLElement | null): FocusZone | null {\n rootElement = rootElement || this._activeElement || this._root.current;\n\n if (!rootElement) {\n return null;\n }\n\n if (isElementFocusZone(rootElement)) {\n return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE) as string];\n }\n\n let child = rootElement.firstElementChild as HTMLElement | null;\n\n while (child) {\n if (isElementFocusZone(child)) {\n return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE) as string];\n }\n const match = this._getFirstInnerZone(child);\n\n if (match) {\n return match;\n }\n\n child = child.nextElementSibling as HTMLElement | null;\n }\n\n return null;\n }\n\n private _moveFocus(\n isForward: boolean,\n getDistanceFromCenter: (activeRect: ClientRect, targetRect: ClientRect) => number,\n ev?: Event,\n useDefaultWrap: boolean = true,\n ): boolean {\n let element = this._activeElement;\n let candidateDistance = -1;\n let candidateElement: HTMLElement | undefined = undefined;\n let changedFocus = false;\n const isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n\n if (!element || !this._root.current) {\n return false;\n }\n\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element as HTMLInputElement, isForward)) {\n return false;\n }\n }\n\n const activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n\n do {\n element = (isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element)) as HTMLElement;\n\n if (isBidirectional) {\n if (element) {\n const targetRect = element.getBoundingClientRect();\n const elementDistance = getDistanceFromCenter(activeRect as ClientRect, targetRect);\n\n if (elementDistance === -1 && candidateDistance === -1) {\n candidateElement = element;\n break;\n }\n\n if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n\n if (candidateDistance >= 0 && elementDistance < 0) {\n break;\n }\n }\n } else {\n candidateElement = element;\n break;\n }\n } while (element);\n\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n } else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(\n getNextElement(this._root.current, this._root.current.firstElementChild as HTMLElement, true) as HTMLElement,\n );\n } else {\n return this.focusElement(\n getPreviousElement(\n this._root.current,\n this._root.current.lastElementChild as HTMLElement,\n true,\n true,\n true,\n ) as HTMLElement,\n );\n }\n }\n\n return changedFocus;\n }\n\n private _moveFocusDown(): boolean {\n let targetTop = -1;\n // tslint:disable-next-line:deprecation\n const leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n\n if (\n this._moveFocus(true, (activeRect: ClientRect, targetRect: ClientRect) => {\n let distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n const targetRectTop = Math.floor(targetRect.top);\n const activeRectBottom = Math.floor(activeRect.bottom);\n\n if (targetRectTop < activeRectBottom) {\n if (!this._shouldWrapFocus(this._activeElement as HTMLElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n\n return LARGE_DISTANCE_FROM_CENTER;\n }\n\n if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n } else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n\n return distance;\n })\n ) {\n this._setFocusAlignment(this._activeElement as HTMLElement, false, true);\n return true;\n }\n\n return false;\n }\n\n private _moveFocusUp(): boolean {\n let targetTop = -1;\n // tslint:disable-next-line:deprecation\n const leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n\n if (\n this._moveFocus(false, (activeRect: ClientRect, targetRect: ClientRect) => {\n let distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n const targetRectBottom = Math.floor(targetRect.bottom);\n const targetRectTop = Math.floor(targetRect.top);\n const activeRectTop = Math.floor(activeRect.top);\n\n if (targetRectBottom > activeRectTop) {\n if (!this._shouldWrapFocus(this._activeElement as HTMLElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n\n if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n } else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n\n return distance;\n })\n ) {\n this._setFocusAlignment(this._activeElement as HTMLElement, false, true);\n return true;\n }\n\n return false;\n }\n\n private _moveFocusLeft(): boolean {\n const shouldWrap = this._shouldWrapFocus(this._activeElement as HTMLElement, NO_HORIZONTAL_WRAP);\n if (\n this._moveFocus(\n getRTL(),\n (activeRect: ClientRect, targetRect: ClientRect) => {\n let distance = -1;\n let topBottomComparison;\n\n if (getRTL()) {\n // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n // This is important, because we want to be comparing the top of the target rect\n // with the bottom of the active rect.\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n } else {\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n\n if (\n topBottomComparison &&\n targetRect.right <= activeRect.right &&\n this.props.direction !== FocusZoneDirection.vertical\n ) {\n distance = activeRect.right - targetRect.right;\n } else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n\n return distance;\n },\n undefined /*ev*/,\n shouldWrap,\n )\n ) {\n this._setFocusAlignment(this._activeElement as HTMLElement, true, false);\n return true;\n }\n\n return false;\n }\n\n private _moveFocusRight(): boolean {\n const shouldWrap = this._shouldWrapFocus(this._activeElement as HTMLElement, NO_HORIZONTAL_WRAP);\n if (\n this._moveFocus(\n !getRTL(),\n (activeRect: ClientRect, targetRect: ClientRect) => {\n let distance = -1;\n let topBottomComparison;\n\n if (getRTL()) {\n // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n // This is important, because we want to be comparing the bottom of the target rect\n // with the top of the active rect.\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n } else {\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n\n if (\n topBottomComparison &&\n targetRect.left >= activeRect.left &&\n this.props.direction !== FocusZoneDirection.vertical\n ) {\n distance = targetRect.left - activeRect.left;\n } else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n\n return distance;\n },\n undefined /*ev*/,\n shouldWrap,\n )\n ) {\n this._setFocusAlignment(this._activeElement as HTMLElement, true, false);\n return true;\n }\n\n return false;\n }\n\n private _getHorizontalDistanceFromCenter = (\n isForward: boolean,\n activeRect: ClientRect,\n targetRect: ClientRect,\n ): number => {\n // tslint:disable-next-line:deprecation\n const leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n const targetRectTop = Math.floor(targetRect.top);\n const activeRectBottom = Math.floor(activeRect.bottom);\n const targetRectBottom = Math.floor(targetRect.bottom);\n const activeRectTop = Math.floor(activeRect.top);\n const isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n const isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n\n if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n return 0;\n }\n return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n\n if (!this._shouldWrapFocus(this._activeElement as HTMLElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n };\n\n private _moveFocusPaging(isForward: boolean, useDefaultWrap: boolean = true): boolean {\n let element = this._activeElement;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element as HTMLInputElement, isForward)) {\n return false;\n }\n }\n const scrollableParent = findScrollableParent(element);\n if (!scrollableParent) {\n return false;\n }\n let candidateDistance = -1;\n let candidateElement = undefined;\n let targetTop = -1;\n let targetBottom = -1;\n const pagesize = scrollableParent.clientHeight;\n const activeRect = element.getBoundingClientRect();\n do {\n element = isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element);\n if (element) {\n const targetRect = element.getBoundingClientRect();\n const targetRectTop = Math.floor(targetRect.top);\n const activeRectBottom = Math.floor(activeRect.bottom);\n const targetRectBottom = Math.floor(targetRect.bottom);\n const activeRectTop = Math.floor(activeRect.top);\n const elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n const isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n const isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n\n if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n break;\n }\n if (elementDistance > -1) {\n // for paging down\n if (isForward && targetRectTop > targetTop) {\n targetTop = targetRectTop;\n candidateDistance = elementDistance;\n candidateElement = element;\n } else if (!isForward && targetRectBottom < targetBottom) {\n // for paging up\n targetBottom = targetRectBottom;\n candidateDistance = elementDistance;\n candidateElement = element;\n } else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n }\n }\n } while (element);\n\n let changedFocus = false;\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n this._setFocusAlignment(candidateElement as HTMLElement, false, true);\n } else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(\n getNextElement(this._root.current, this._root.current.firstElementChild as HTMLElement, true) as HTMLElement,\n );\n }\n return this.focusElement(\n getPreviousElement(\n this._root.current,\n this._root.current.lastElementChild as HTMLElement,\n true,\n true,\n true,\n ) as HTMLElement,\n );\n }\n return changedFocus;\n }\n\n private _setFocusAlignment(element: HTMLElement, isHorizontal?: boolean, isVertical?: boolean): void {\n if (\n this.props.direction === FocusZoneDirection.bidirectional &&\n (!this._focusAlignment || isHorizontal || isVertical)\n ) {\n const rect = element.getBoundingClientRect();\n const left = rect.left + rect.width / 2;\n const top = rect.top + rect.height / 2;\n\n if (!this._focusAlignment) {\n this._focusAlignment = { left, top };\n }\n\n if (isHorizontal) {\n this._focusAlignment.left = left;\n }\n\n if (isVertical) {\n this._focusAlignment.top = top;\n }\n }\n }\n\n private _isImmediateDescendantOfZone(element?: HTMLElement): boolean {\n return this._getOwnerZone(element) === this._root.current;\n }\n\n private _getOwnerZone(element?: HTMLElement): HTMLElement | null {\n let parentElement = getParent(element as HTMLElement, ALLOW_VIRTUAL_ELEMENTS);\n\n while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n if (isElementFocusZone(parentElement)) {\n return parentElement;\n }\n\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n\n return parentElement;\n }\n\n private _updateTabIndexes(element?: HTMLElement): void {\n if (\n !this._activeElement &&\n this.props.defaultTabbableElement &&\n typeof this.props.defaultTabbableElement === 'function'\n ) {\n this._activeElement = this.props.defaultTabbableElement(this._root.current as HTMLElement);\n }\n\n if (!element && this._root.current) {\n this._defaultFocusElement = null;\n element = this._root.current;\n if (this._activeElement && !elementContains(element, this._activeElement)) {\n this._activeElement = null;\n }\n }\n\n // If active element changes state to disabled, set it to null.\n // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n if (this._activeElement && !isElementTabbable(this._activeElement)) {\n this._activeElement = null;\n }\n\n const childNodes = element && element.children;\n\n for (let childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n const child = childNodes[childIndex] as HTMLElement;\n\n if (!isElementFocusZone(child)) {\n // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n child.setAttribute(TABINDEX, '-1');\n }\n\n if (isElementTabbable(child)) {\n if (this.props.disabled) {\n child.setAttribute(TABINDEX, '-1');\n } else if (\n !this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)\n ) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n } else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n } else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n // Disgusting IE hack. Sad face.\n child.setAttribute('focusable', 'false');\n }\n } else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n if (\n !this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)\n ) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n } else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n\n this._updateTabIndexes(child);\n }\n }\n\n private _isContentEditableElement(element: HTMLElement): boolean {\n return element && element.getAttribute('contenteditable') === 'true';\n }\n\n private _isElementInput(element: HTMLElement): boolean {\n if (\n element &&\n element.tagName &&\n (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')\n ) {\n return true;\n }\n return false;\n }\n\n private _shouldInputLoseFocus(element: HTMLInputElement, isForward?: boolean): boolean {\n // If a tab was used, we want to focus on the next element.\n if (\n !this._processingTabKey &&\n element &&\n element.type &&\n ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1\n ) {\n const selectionStart = element.selectionStart;\n const selectionEnd = element.selectionEnd;\n const isRangeSelected = selectionStart !== selectionEnd;\n const inputValue = element.value;\n const isReadonly = element.readOnly;\n\n // We shouldn't lose focus in the following cases:\n // 1. There is range selected.\n // 2. When selection start is larger than 0 and it is backward and not readOnly.\n // 3. when selection start is not the end of length, it is forward and not readOnly.\n // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n // determined by calling the callback shouldInputLoseFocusOnArrowKey\n if (\n isRangeSelected ||\n (selectionStart! > 0 && !isForward && !isReadonly) ||\n (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n (!!this.props.handleTabKey &&\n !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))\n ) {\n return false;\n }\n }\n\n return true;\n }\n\n private _shouldWrapFocus(\n element: HTMLElement,\n noWrapDataAttribute: 'data-no-vertical-wrap' | 'data-no-horizontal-wrap',\n ): boolean {\n return !!this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n }\n\n /**\n * Returns true if the element is a descendant of the FocusZone through a React portal.\n */\n private _portalContainsElement(element: HTMLElement): boolean {\n return element && !!this._root.current && portalContainsElement(element, this._root.current);\n }\n\n private _getDocument(): Document {\n return getDocument(this._root.current)!;\n }\n}\n","import { IContextualMenuItem } from '../../index';\n\n/**\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: IContextualMenuItem): boolean | null {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n\n // Item is not checkable.\n return null;\n}\n\nexport function hasSubmenu(item: IContextualMenuItem): boolean {\n return !!(item.subMenuProps || item.items);\n}\n\nexport function isItemDisabled(item: IContextualMenuItem): boolean {\n return !!(item.isDisabled || item.disabled);\n}\n\nexport function getMenuItemAriaRole(item: IContextualMenuItem): string {\n const isChecked = getIsChecked(item);\n const canCheck: boolean = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n","const REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n // tslint:disable-next-line:no-any\n destination: any,\n // tslint:disable-next-line:no-any\n source: any,\n exclusions: string[] = REACT_LIFECYCLE_EXCLUSIONS,\n): string[] {\n let hoisted: string[] = [];\n for (let methodName in source) {\n if (\n typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)\n ) {\n hoisted.push(methodName);\n /* tslint:disable:no-function-expression */\n destination[methodName] = function(): void {\n source[methodName].apply(source, arguments);\n };\n /* tslint:enable */\n }\n }\n\n return hoisted;\n}\n\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// tslint:disable-next-line:no-any\nexport function unhoistMethods(source: any, methodNames: string[]): void {\n methodNames.forEach((methodName: string) => delete source[methodName]);\n}\n","import * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\n\nexport class BaseDecorator extends React.Component {\n protected _composedComponentInstance: React.Component;\n\n private _hoisted: string[];\n\n constructor(props: TProps) {\n super(props);\n this._updateComposedComponentRef = this._updateComposedComponentRef.bind(this);\n }\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 protected _updateComposedComponentRef(composedComponentInstance: React.Component): void {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n } else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n }\n}\n","import * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\n\nexport interface IWithResponsiveModeState {\n responsiveMode?: ResponsiveMode;\n}\n\nexport enum ResponsiveMode {\n small = 0,\n medium = 1,\n large = 2,\n xLarge = 3,\n xxLarge = 4,\n xxxLarge = 5,\n unknown = 999,\n}\n\nconst RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nlet _defaultMode: ResponsiveMode | undefined;\n\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nlet _lastMode: ResponsiveMode | undefined;\n\n/**\n * Allows a server rendered scenario to provide a default responsive mode.\n */\nexport function setResponsiveMode(responsiveMode: ResponsiveMode | undefined): void {\n _defaultMode = responsiveMode;\n}\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?: HTMLElement): void {\n if (typeof window !== 'undefined') {\n const currentWindow = (element && getWindow(element)) || window;\n\n getResponsiveMode(currentWindow);\n }\n}\n\nexport function withResponsiveMode(\n ComposedComponent: new (props: TProps, ...args: any[]) => React.Component,\n): any {\n const resultClass = class WithResponsiveMode extends BaseDecorator {\n private _events: EventGroup;\n\n constructor(props: TProps) {\n super(props);\n this._events = new EventGroup(this);\n this._updateComposedComponentRef = this._updateComposedComponentRef.bind(this);\n\n this.state = {\n responsiveMode: _defaultMode || _lastMode || ResponsiveMode.large,\n };\n }\n\n public componentDidMount(): void {\n this._events.on(window, 'resize', this._onResize);\n this._onResize();\n }\n\n public componentWillUnmount(): void {\n this._events.dispose();\n }\n\n public render(): JSX.Element | null {\n const { responsiveMode } = this.state;\n\n return responsiveMode === ResponsiveMode.unknown ? null : (\n \n );\n }\n\n private _onResize = () => {\n const element = findDOMNode(this) as Element;\n const currentWindow = (element && getWindow(element)) || window;\n const responsiveMode = getResponsiveMode(currentWindow);\n\n if (responsiveMode !== this.state.responsiveMode) {\n this.setState({\n responsiveMode,\n });\n }\n };\n };\n return hoistStatics(ComposedComponent, resultClass);\n}\n\nfunction getResponsiveMode(currentWindow: Window | undefined): ResponsiveMode {\n let responsiveMode = ResponsiveMode.small;\n\n if (currentWindow) {\n try {\n while (currentWindow.innerWidth > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\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 = _defaultMode || _lastMode || ResponsiveMode.large;\n }\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 } else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n } else {\n throw new Error(\n '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 }\n\n return responsiveMode;\n}\n","import * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nimport { IContextualMenuItemProps } from './ContextualMenuItem.types';\n\nconst renderItemIcon = (props: IContextualMenuItemProps) => {\n const { item, hasIcons, classNames } = props;\n\n const { iconProps } = item;\n\n if (!hasIcons) {\n return null;\n }\n\n if (item.onRenderIcon) {\n return item.onRenderIcon(props);\n }\n\n return ;\n};\n\nconst renderCheckMarkIcon = ({ onCheckmarkClick, item, classNames }: IContextualMenuItemProps) => {\n const isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n const onClick = (e: React.MouseEvent) => onCheckmarkClick(item, e);\n\n return (\n \n );\n }\n return null;\n};\n\nconst renderItemName = ({ item, classNames }: IContextualMenuItemProps) => {\n // tslint:disable:deprecation\n if (item.text || item.name) {\n return {item.text || item.name};\n }\n // tslint:enable:deprecation\n return null;\n};\n\nconst renderSecondaryText = ({ item, classNames }: IContextualMenuItemProps) => {\n if (item.secondaryText) {\n return {item.secondaryText};\n }\n return null;\n};\n\nconst renderSubMenuIcon = ({ item, classNames, theme }: IContextualMenuItemProps) => {\n if (hasSubmenu(item)) {\n return (\n \n );\n }\n return null;\n};\n\nexport class ContextualMenuItemBase extends React.Component {\n constructor(props: IContextualMenuItemProps) {\n super(props);\n\n initializeComponentRef(this);\n }\n\n public render() {\n const { item, classNames } = this.props;\n\n return (\n
\n {renderCheckMarkIcon(this.props)}\n {renderItemIcon(this.props)}\n {renderItemName(this.props)}\n {renderSecondaryText(this.props)}\n {renderSubMenuIcon(this.props)}\n
\n );\n }\n\n public openSubMenu = (): void => {\n const { item, openSubMenu, getSubmenuTarget } = this.props;\n if (getSubmenuTarget) {\n const submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n\n public dismissSubMenu = (): void => {\n const { item, dismissSubMenu } = this.props;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n\n public dismissMenu = (dismissAll?: boolean): void => {\n const { dismissMenu } = this.props;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n}\n","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets, ITheme } from '../../Styling';\nimport { IVerticalDividerClassNames } from './VerticalDivider.types';\n\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport const getDividerClassNames = memoizeFunction(\n // tslint:disable-next-line:deprecation\n (theme: ITheme): IVerticalDividerClassNames => {\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);\n","import {\n concatStyleSets,\n getFocusStyle,\n HighContrastSelector,\n IRawStyle,\n ITheme,\n getScreenSelector,\n ScreenWidthMaxMedium,\n IconFontSizes,\n} from '../../Styling';\nimport { IMenuItemStyles } from './ContextualMenu.types';\nimport { memoizeFunction } from '../../Utilities';\n\nexport const CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\n\nconst MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\n\nconst getItemHighContrastStyles = memoizeFunction(\n (): IRawStyle => {\n return {\n selectors: {\n [HighContrastSelector]: {\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n color: 'HighlightText',\n MsHighContrastAdjust: 'none',\n },\n },\n };\n },\n);\n\nexport const getMenuItemStyles = memoizeFunction(\n (theme: ITheme): IMenuItemStyles => {\n const { semanticColors, fonts, palette } = theme;\n const ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n const ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n const ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n const ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n\n const menuItemStyles: IMenuItemStyles = {\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', // inner elements have a margin of 4px (4 + 4 = 8px as on right side)\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n opacity: 1,\n },\n },\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 ...getItemHighContrastStyles(),\n },\n rootFocused: {\n backgroundColor: palette.white,\n ...getItemHighContrastStyles(),\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n ...getItemHighContrastStyles(),\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 ...getItemHighContrastStyles(),\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n ...getItemHighContrastStyles(),\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', // inner elements have a margin of 4px (4 + 4 = 8px as on right side)\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: {\n [MediumScreenSelector]: {\n fontSize: IconFontSizes.large,\n width: IconFontSizes.large,\n },\n },\n },\n iconColor: {\n color: semanticColors.menuIcon,\n selectors: {\n [HighContrastSelector]: {\n color: 'inherit',\n },\n ['$root:hover &']: {\n selectors: {\n [HighContrastSelector]: {\n color: 'HighlightText',\n },\n },\n },\n ['$root:focus &']: {\n selectors: {\n [HighContrastSelector]: {\n color: 'HighlightText',\n },\n },\n },\n },\n },\n iconDisabled: {\n color: semanticColors.disabledBodyText,\n },\n checkmarkIcon: {\n color: semanticColors.bodySubtext,\n selectors: {\n [HighContrastSelector]: {\n color: 'HighlightText',\n },\n },\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, // 12px\n selectors: {\n ':hover': {\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.neutralPrimary,\n },\n [MediumScreenSelector]: {\n fontSize: IconFontSizes.medium, // 16px\n },\n },\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\n return concatStyleSets(menuItemStyles);\n },\n);\n","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { ITheme, mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium } from '../../Styling';\nimport { IVerticalDividerClassNames } from '../Divider/VerticalDivider.types';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nimport { IContextualMenuItemStyles, IContextualMenuItemStyleProps } from './ContextualMenuItem.types';\nimport { IContextualMenuSubComponentStyles } from './ContextualMenu.types';\n\n/**\n * @deprecated in favor of mergeStyles API.\n */\nexport interface IContextualMenuClassNames {\n container: string;\n root: string;\n list: string;\n header: string;\n title: string;\n subComponentStyles?: IContextualMenuSubComponentStyles;\n}\n\n/**\n * @deprecated in favor of mergeStyles API.\n */\nexport interface IMenuItemClassNames {\n item: string;\n divider: string;\n root: string;\n linkContent: string;\n icon: string;\n checkmarkIcon: string;\n subMenuIcon: string;\n label: string;\n secondaryText: string;\n splitContainer: string;\n splitPrimary: string;\n splitMenu: string;\n linkContentMenu: string;\n}\n\nconst CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\n\nconst MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\n\nexport const getSplitButtonVerticalDividerClassNames = memoizeFunction(\n // tslint:disable:deprecation\n (theme: ITheme): IVerticalDividerClassNames => {\n return mergeStyleSets(getDividerClassNames(theme), {\n // tslint:enable:deprecation\n wrapper: {\n position: 'absolute',\n right: 28, // width of the splitMenu based on the padding plus icon fontSize\n selectors: {\n [MediumScreenSelector]: {\n right: 32, // fontSize of the icon increased from 12px to 16px\n },\n },\n },\n divider: {\n height: 16,\n width: 1,\n },\n });\n },\n);\n\nconst 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};\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 const getItemClassNames = memoizeFunction(\n (\n theme: ITheme,\n disabled: boolean,\n expanded: boolean,\n checked: boolean,\n isAnchorLink: boolean,\n knownIcon: boolean,\n itemClassName?: string,\n dividerClassName?: string,\n iconClassName?: string,\n subMenuClassName?: string,\n primaryDisabled?: boolean,\n className?: string,\n ): IContextualMenuItemStyles => {\n const styles = getMenuItemStyles(theme);\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\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: {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed,\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n [`.${IsFocusVisibleClassName} &:hover`]: { background: 'inherit;' },\n },\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: {\n ':hover': styles.rootHovered,\n // when hovering over the splitPrimary also affect the splitMenu\n [`:hover ~ .${classNames.splitMenu}`]: styles.rootHovered,\n ':active': styles.rootPressed,\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n [`.${IsFocusVisibleClassName} &:hover`]: { background: 'inherit;' },\n },\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: {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed,\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n [`.${IsFocusVisibleClassName} &:hover`]: { background: 'inherit;' },\n },\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: {\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n },\n },\n ],\n ],\n });\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 const getItemStyles = (props: IContextualMenuItemStyleProps): IContextualMenuItemStyles => {\n const {\n theme,\n disabled,\n expanded,\n checked,\n isAnchorLink,\n knownIcon,\n itemClassName,\n dividerClassName,\n iconClassName,\n subMenuClassName,\n primaryDisabled,\n className,\n } = props;\n\n // tslint:disable-next-line:deprecation\n return getItemClassNames(\n theme,\n disabled,\n expanded,\n checked,\n isAnchorLink,\n knownIcon,\n itemClassName,\n dividerClassName,\n iconClassName,\n subMenuClassName,\n primaryDisabled,\n className,\n );\n};\n","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport {\n IContextualMenuItemProps,\n IContextualMenuItemStyleProps,\n IContextualMenuItemStyles,\n} from './ContextualMenuItem.types';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n\n/**\n * ContextualMenuItem description\n */\nexport const ContextualMenuItem: React.FunctionComponent = styled<\n IContextualMenuItemProps,\n IContextualMenuItemStyleProps,\n IContextualMenuItemStyles\n>(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n","import * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nimport { IContextualMenuItemWrapperProps } from './ContextualMenuItemWrapper.types';\nimport { IContextualMenuItem } from '../../../ContextualMenu';\n\nexport class ContextualMenuItemWrapper extends React.Component {\n constructor(props: IContextualMenuItemWrapperProps) {\n super(props);\n initializeComponentRef(this);\n }\n\n public shouldComponentUpdate(newProps: IContextualMenuItemWrapperProps): boolean {\n return !shallowCompare(newProps, this.props);\n }\n\n protected _onItemMouseEnter = (ev: React.MouseEvent): void => {\n const { item, onItemMouseEnter } = this.props;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, ev.currentTarget as HTMLElement);\n }\n };\n\n protected _onItemClick = (ev: React.MouseEvent): void => {\n const { item, onItemClickBase } = this.props;\n if (onItemClickBase) {\n onItemClickBase(item, ev, ev.currentTarget as HTMLElement);\n }\n };\n\n protected _onItemMouseLeave = (ev: React.MouseEvent): void => {\n const { item, onItemMouseLeave } = this.props;\n if (onItemMouseLeave) {\n onItemMouseLeave(item, ev);\n }\n };\n\n protected _onItemKeyDown = (ev: React.KeyboardEvent): void => {\n const { item, onItemKeyDown } = this.props;\n if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n\n protected _onItemMouseMove = (ev: React.MouseEvent): void => {\n const { item, onItemMouseMove } = this.props;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, ev.currentTarget as HTMLElement);\n }\n };\n\n protected _getSubMenuId = (item: IContextualMenuItem): string | undefined => {\n const { getSubMenuId } = this.props;\n if (getSubMenuId) {\n return getSubMenuId(item);\n }\n };\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return undefined;\n };\n}\n","import * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { IKeytipDataProps } from '../../KeytipData/KeytipData.types';\nimport { IKeytipProps } from '../../Keytip/Keytip.types';\n\nexport class ContextualMenuAnchor extends ContextualMenuItemWrapper {\n private _anchor = React.createRef();\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n public render() {\n const {\n item,\n classNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem,\n expandedMenuItemKey,\n onItemClick,\n openSubMenu,\n dismissSubMenu,\n dismissMenu,\n } = this.props;\n\n let 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\n const subMenuId = this._getSubMenuId(item);\n const itemHasSubmenu = hasSubmenu(item);\n const nativeProps = getNativeProps>(item, anchorProperties);\n const disabled = isItemDisabled(item);\n const { itemProps } = item;\n\n let { keytipProps } = item;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n return (\n
\n );\n }\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return this._anchor.current ? this._anchor.current : undefined;\n };\n\n protected _onItemClick = (ev: React.MouseEvent): void => {\n const { item, onItemClick } = this.props;\n if (onItemClick) {\n onItemClick(item, ev);\n }\n };\n}\n","import * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { IKeytipDataProps } from '../../KeytipData/KeytipData.types';\nimport { IKeytipProps } from '../../Keytip/Keytip.types';\n\nexport class ContextualMenuButton extends ContextualMenuItemWrapper {\n private _btn = React.createRef();\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n public render() {\n const {\n item,\n classNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem,\n expandedMenuItemKey,\n onItemMouseDown,\n onItemClick,\n openSubMenu,\n dismissSubMenu,\n dismissMenu,\n } = this.props;\n\n const subMenuId = this._getSubMenuId(item);\n\n const isChecked: boolean | null | undefined = getIsChecked(item);\n const canCheck: boolean = isChecked !== null;\n const defaultRole = getMenuItemAriaRole(item);\n const itemHasSubmenu = hasSubmenu(item);\n const { itemProps, ariaLabel } = item;\n\n const buttonNativeProperties = getNativeProps>(\n item,\n buttonProperties,\n );\n // Do not add the disabled attribute to the button so that it is focusable\n delete buttonNativeProperties.disabled;\n\n const itemRole = item.role || defaultRole;\n\n const 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: (ev: React.MouseEvent) =>\n onItemMouseDown ? onItemMouseDown(item, ev) : undefined,\n onMouseMove: this._onItemMouseMove,\n href: item.href,\n title: item.title,\n 'aria-label': ariaLabel,\n 'aria-haspopup': itemHasSubmenu || undefined,\n 'aria-owns': item.key === expandedMenuItemKey ? subMenuId : 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':\n (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n 'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n role: itemRole,\n // tslint:disable-next-line:deprecation\n style: item.style,\n };\n\n let { keytipProps } = item;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n return (\n \n {(keytipAttributes: IKeytipDataProps): JSX.Element => (\n \n )}\n \n );\n }\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return this._btn.current ? this._btn.current : undefined;\n };\n}\n","import * as React from 'react';\nimport { IVerticalDividerProps, IVerticalDividerPropsStyles, IVerticalDividerStyles } from './VerticalDivider.types';\nimport { classNamesFunction } from '../../Utilities';\nconst getClassNames = classNamesFunction();\n\nexport const VerticalDividerBase = (props: IVerticalDividerProps) => {\n // tslint:disable-next-line:deprecation\n const { styles, theme, getClassNames: deprecatedGetClassNames, className } = props;\n const classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className });\n return (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { IVerticalDividerProps, IVerticalDividerStyles, IVerticalDividerPropsStyles } from './VerticalDivider.types';\nimport { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\n\nexport const VerticalDivider: React.FunctionComponent = styled<\n IVerticalDividerProps,\n IVerticalDividerPropsStyles,\n IVerticalDividerStyles\n>(VerticalDividerBase, getStyles, undefined, {\n scope: 'VerticalDivider',\n});\n","import { IVerticalDividerPropsStyles, IVerticalDividerStyles } from './VerticalDivider.types';\nimport { IStyleFunction } from '../../Utilities';\n\nexport const getStyles: IStyleFunction = (\n props: IVerticalDividerPropsStyles,\n): IVerticalDividerStyles => {\n // tslint:disable-next-line:deprecation\n const { theme, getClassNames, className } = props;\n\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n\n if (getClassNames) {\n const names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\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","import * as React from 'react';\nimport {\n buttonProperties,\n getNativeProps,\n KeyCodes,\n mergeAriaAttributeValues,\n memoizeFunction,\n Async,\n EventGroup,\n} from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { IContextualMenuItem } from '../ContextualMenu.types';\nimport { IMenuItemClassNames, getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { IKeytipProps } from '../../Keytip/Keytip.types';\nimport { IContextualMenuItemWrapperProps } from './ContextualMenuItemWrapper.types';\n\nexport interface IContextualMenuSplitButtonState {}\n\nconst TouchIdleDelay = 500; /* ms */\n\nexport class ContextualMenuSplitButton extends ContextualMenuItemWrapper {\n private _splitButton: HTMLDivElement;\n private _lastTouchTimeoutId: number | undefined;\n private _processingTouch: boolean;\n\n private _async: Async;\n private _events: EventGroup;\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n constructor(props: IContextualMenuItemWrapperProps) {\n super(props);\n\n this._async = new Async(this);\n this._events = new EventGroup(this);\n }\n\n public componentDidMount() {\n if (this._splitButton && 'onpointerdown' in this._splitButton) {\n this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n }\n }\n\n public componentWillUnmount(): void {\n this._async.dispose();\n this._events.dispose();\n }\n\n public render(): JSX.Element | null {\n const {\n item,\n classNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n onItemMouseLeave,\n expandedMenuItemKey,\n } = this.props;\n\n const itemHasSubmenu = hasSubmenu(item);\n\n let { keytipProps } = item;\n if (keytipProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n return (\n \n {(keytipAttributes: any): JSX.Element => (\n (this._splitButton = splitButton)}\n role={getMenuItemAriaRole(item)}\n aria-label={item.ariaLabel}\n className={classNames.splitContainer}\n aria-disabled={isItemDisabled(item)}\n aria-expanded={itemHasSubmenu ? item.key === expandedMenuItemKey : undefined}\n aria-haspopup={true}\n aria-describedby={mergeAriaAttributeValues(item.ariaDescription, keytipAttributes['aria-describedby'])}\n aria-checked={item.isChecked || item.checked}\n aria-posinset={focusableElementIndex + 1}\n aria-setsize={totalItemCount}\n onMouseEnter={this._onItemMouseEnterPrimary}\n onMouseLeave={\n onItemMouseLeave ? onItemMouseLeave.bind(this, { ...item, subMenuProps: null, items: null }) : undefined\n }\n onMouseMove={this._onItemMouseMovePrimary}\n onKeyDown={this._onItemKeyDown}\n onClick={this._executeItemClick}\n onTouchStart={this._onTouchStart}\n tabIndex={0}\n data-is-focusable={true}\n aria-roledescription={item['aria-roledescription']}\n >\n {this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks!, hasIcons!)}\n {this._renderSplitDivider(item)}\n {this._renderSplitIconButton(item, classNames, index, keytipAttributes)}\n
\n )}\n \n );\n }\n\n protected _onItemKeyDown = (ev: React.KeyboardEvent): void => {\n const { item, onItemKeyDown } = this.props;\n if (ev.which === KeyCodes.enter) {\n this._executeItemClick(ev);\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return this._splitButton;\n };\n\n private _renderSplitPrimaryButton(\n item: IContextualMenuItem,\n // tslint:disable-next-line:deprecation\n classNames: IMenuItemClassNames,\n index: number,\n hasCheckmarks: boolean,\n hasIcons: boolean,\n ) {\n const { contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem, onItemClick } = this.props;\n\n const itemProps: IContextualMenuItem = {\n key: item.key,\n disabled: isItemDisabled(item) || item.primaryDisabled,\n // tslint:disable:deprecation\n name: item.name,\n text: item.text || item.name,\n secondaryText: item.secondaryText,\n // tslint:enable: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\n const { itemProps: itemComponentProps } = item;\n\n return (\n \n );\n }\n\n private _renderSplitDivider(item: IContextualMenuItem) {\n const getDividerClassNames =\n item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n return ;\n }\n\n private _renderSplitIconButton(\n item: IContextualMenuItem,\n classNames: IMenuItemClassNames, // tslint:disable-line:deprecation\n index: number,\n keytipAttributes: any,\n ) {\n const {\n contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem,\n onItemMouseLeave,\n onItemMouseDown,\n openSubMenu,\n dismissSubMenu,\n dismissMenu,\n } = this.props;\n\n const itemProps: IContextualMenuItem = {\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\n const buttonProps = {\n ...getNativeProps>(itemProps, buttonProperties),\n ...{\n onMouseEnter: this._onItemMouseEnterIcon,\n onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n onMouseDown: (ev: React.MouseEvent) =>\n onItemMouseDown ? onItemMouseDown(item, ev) : undefined,\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 };\n\n const { itemProps: itemComponentProps } = item;\n\n return (\n \n );\n }\n\n private _onItemMouseEnterPrimary = (ev: React.MouseEvent): void => {\n const { item, onItemMouseEnter } = this.props;\n if (onItemMouseEnter) {\n onItemMouseEnter({ ...item, subMenuProps: undefined, items: undefined }, ev, this._splitButton);\n }\n };\n\n private _onItemMouseEnterIcon = (ev: React.MouseEvent): void => {\n const { item, onItemMouseEnter } = this.props;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, this._splitButton);\n }\n };\n\n private _onItemMouseMovePrimary = (ev: React.MouseEvent): void => {\n const { item, onItemMouseMove } = this.props;\n if (onItemMouseMove) {\n onItemMouseMove({ ...item, subMenuProps: undefined, items: undefined }, ev, this._splitButton);\n }\n };\n\n private _onItemMouseMoveIcon = (ev: React.MouseEvent): void => {\n const { item, onItemMouseMove } = this.props;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, this._splitButton);\n }\n };\n\n private _onIconItemClick = (ev: React.MouseEvent): void => {\n const { item, onItemClickBase } = this.props;\n if (onItemClickBase) {\n onItemClickBase(item, ev, (this._splitButton ? this._splitButton : ev.currentTarget) as HTMLElement);\n }\n };\n\n private _executeItemClick = (ev: React.MouseEvent | React.KeyboardEvent): void => {\n const { item, executeItemClick, onItemClick } = this.props;\n\n if (item.disabled || item.isDisabled) {\n return;\n }\n\n if (this._processingTouch && onItemClick) {\n return onItemClick(item, ev);\n }\n\n if (executeItemClick) {\n executeItemClick(item, ev);\n }\n };\n\n private _onTouchStart = (ev: React.TouchEvent): void => {\n if (this._splitButton && !('onpointerdown' in this._splitButton)) {\n this._handleTouchAndPointerEvent(ev);\n }\n };\n\n private _onPointerDown = (ev: PointerEvent): void => {\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent(ev);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n\n private _handleTouchAndPointerEvent(ev: React.TouchEvent | PointerEvent) {\n const { onTap } = this.props;\n\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(() => {\n this._processingTouch = false;\n this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n }\n}\n","import * as React from 'react';\nimport {\n IContextualMenuProps,\n IContextualMenuItem,\n ContextualMenuItemType,\n IContextualMenuListProps,\n IContextualMenuStyleProps,\n IContextualMenuStyles,\n IContextualMenuItemRenderProps,\n} from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, IFocusZoneProps, FocusZoneTabbableElements } from '../../FocusZone';\nimport { IMenuItemClassNames, IContextualMenuClassNames } from './ContextualMenu.classNames';\nimport {\n divProperties,\n getNativeProps,\n shallowCompare,\n warnDeprecations,\n Async,\n EventGroup,\n assign,\n classNamesFunction,\n css,\n getDocument,\n getFirstFocusable,\n getId,\n getLastFocusable,\n getRTL,\n getWindow,\n IRenderFunction,\n Point,\n KeyCodes,\n shouldWrapFocus,\n IStyleFunctionOrObject,\n isIOS,\n isMac,\n initializeComponentRef,\n memoizeFunction,\n} from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { withResponsiveMode, ResponsiveMode } from '../../utilities/decorators/withResponsiveMode';\nimport { Callout, ICalloutContentStyleProps, ICalloutContentStyles, Target } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport {\n ContextualMenuSplitButton,\n ContextualMenuButton,\n ContextualMenuAnchor,\n} from './ContextualMenuItemWrapper/index';\nimport { IProcessedStyleSet, concatStyleSetsWithProps } from '../../Styling';\nimport { IContextualMenuItemStyleProps, IContextualMenuItemStyles } from './ContextualMenuItem.types';\nimport { getItemStyles } from './ContextualMenu.classNames';\n\nconst getClassNames = classNamesFunction();\nconst getContextualMenuItemClassNames = classNamesFunction();\n\nexport interface IContextualMenuState {\n expandedMenuItemKey?: string;\n /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n expandedByMouseClick?: boolean;\n dismissedMenuItemKey?: string;\n contextualMenuItems?: IContextualMenuItem[];\n contextualMenuTarget?: Element;\n submenuTarget?: Element;\n positions?: any;\n slideDirectionalClassName?: string;\n subMenuId?: string;\n submenuDirection?: DirectionalHint;\n}\n\nexport function getSubmenuItems(item: IContextualMenuItem): IContextualMenuItem[] | undefined {\n return item.subMenuProps ? item.subMenuProps.items : item.items;\n}\n\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items: IContextualMenuItem[]): boolean {\n return items.some(item => {\n if (item.canCheck) {\n return true;\n }\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(submenuItem => submenuItem.canCheck === true)) {\n return true;\n }\n\n return false;\n });\n}\n\nconst NavigationIdleDelay = 250 /* ms */;\n\nconst COMPONENT_NAME = 'ContextualMenu';\n\nconst _getMenuItemStylesFunction = memoizeFunction(\n (\n ...styles: (IStyleFunctionOrObject | undefined)[]\n ): IStyleFunctionOrObject => {\n return (styleProps: IContextualMenuItemStyleProps) =>\n concatStyleSetsWithProps(styleProps, getItemStyles, ...styles);\n },\n);\n\n@withResponsiveMode\nexport class ContextualMenuBase extends React.Component {\n // The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\n public static defaultProps: IContextualMenuProps = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n };\n\n private _async: Async;\n private _events: EventGroup;\n private _id: string;\n private _host: HTMLElement;\n private _previousActiveElement: HTMLElement | undefined;\n private _enterTimerId: number | undefined;\n private _targetWindow: Window;\n private _target: Element | MouseEvent | Point | null;\n private _isScrollIdle: boolean;\n private _scrollIdleTimeoutId: number | undefined;\n /** True if the most recent keydown event was for alt (option) or meta (command). */\n private _lastKeyDownWasAltOrMeta: boolean | undefined;\n private _shouldUpdateFocusOnMouseEvent: boolean;\n private _gotMouseMove: boolean;\n private _mounted = false;\n private _focusingPreviousElement: boolean;\n\n private _adjustedFocusZoneProps: IFocusZoneProps;\n\n // tslint:disable-next-line:deprecation\n private _classNames: IProcessedStyleSet | IContextualMenuClassNames;\n\n constructor(props: IContextualMenuProps) {\n super(props);\n\n this._async = new Async(this);\n this._events = new EventGroup(this);\n initializeComponentRef(this);\n\n warnDeprecations(COMPONENT_NAME, props, {\n getMenuClassNames: 'styles',\n });\n\n this.state = {\n contextualMenuItems: undefined,\n subMenuId: getId('ContextualMenu'),\n };\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 }\n\n public dismiss = (ev?: any, dismissAll?: boolean) => {\n const { onDismiss } = this.props;\n\n if (onDismiss) {\n onDismiss(ev, dismissAll);\n }\n };\n\n public shouldComponentUpdate(newProps: IContextualMenuProps, newState: IContextualMenuState): boolean {\n if (!newProps.shouldUpdateWhenHidden && this.props.hidden && newProps.hidden) {\n // Do not update when hidden.\n return false;\n }\n\n return !shallowCompare(this.props, newProps) || !shallowCompare(this.state, newState);\n }\n\n // tslint:disable-next-line function-name\n public UNSAFE_componentWillUpdate(newProps: IContextualMenuProps): void {\n if (newProps.target !== this.props.target) {\n const newTarget = newProps.target;\n this._setTargetWindowAndElement(newTarget!);\n }\n\n if (this._isHidden(newProps) !== this._isHidden(this.props)) {\n if (this._isHidden(newProps)) {\n this._onMenuClosed();\n } else {\n this._onMenuOpened();\n this._previousActiveElement = this._targetWindow\n ? (this._targetWindow.document.activeElement as HTMLElement)\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\n // If shouldUpdateFocusOnMouseEvent is false, we need to reset gotMouseMove to false\n this._gotMouseMove = this._shouldUpdateFocusOnMouseEvent && this._gotMouseMove;\n }\n }\n\n // Invoked once, both on the client and server, immediately before the initial rendering occurs.\n // tslint:disable-next-line function-name\n public UNSAFE_componentWillMount() {\n const target = this.props.target;\n this._setTargetWindowAndElement(target!);\n if (!this.props.hidden) {\n this._previousActiveElement = this._targetWindow\n ? (this._targetWindow.document.activeElement as HTMLElement)\n : undefined;\n }\n }\n\n // Invoked once, only on the client (not on the server), immediately after the initial rendering occurs.\n public componentDidMount(): void {\n if (!this.props.hidden) {\n this._onMenuOpened();\n }\n\n this._mounted = true;\n }\n\n // Invoked immediately before a component is unmounted from the DOM.\n public componentWillUnmount() {\n if (this.props.onMenuDismissed) {\n this.props.onMenuDismissed(this.props);\n }\n\n this._events.dispose();\n this._async.dispose();\n this._mounted = false;\n }\n\n public render(): JSX.Element | null {\n let { isBeakVisible } = this.props;\n\n const {\n items,\n labelElementId,\n id,\n className,\n beakWidth,\n directionalHint,\n directionalHintForRTL,\n alignTargetEdge,\n gapSpace,\n coverTarget,\n ariaLabel,\n doNotLayer,\n target,\n bounds,\n useTargetWidth,\n useTargetAsMinWidth,\n directionalHintFixed,\n shouldFocusOnMount,\n shouldFocusOnContainer,\n title,\n styles,\n theme,\n calloutProps,\n onRenderSubMenu = this._onRenderSubMenu,\n onRenderMenuList = this._onRenderMenuList,\n focusZoneProps,\n // tslint:disable-next-line:deprecation\n getMenuClassNames,\n } = this.props;\n\n this._classNames = getMenuClassNames\n ? getMenuClassNames(theme!, className)\n : getClassNames(styles, {\n theme: theme!,\n className: className,\n });\n\n const hasIcons = itemsHaveIcons(items);\n\n function itemsHaveIcons(contextualMenuItems: IContextualMenuItem[]): boolean {\n for (const item of contextualMenuItems) {\n if (!!item.iconProps) {\n return true;\n }\n\n if (\n item.itemType === ContextualMenuItemType.Section &&\n item.sectionProps &&\n itemsHaveIcons(item.sectionProps.items)\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n this._adjustedFocusZoneProps = { ...focusZoneProps, direction: this._getFocusZoneDirection() };\n\n const hasCheckmarks = canAnyMenuItemsCheck(items);\n const submenuProps = this.state.expandedMenuItemKey && this.props.hidden !== true ? this._getSubmenuProps() : null;\n\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 let contextMenuStyle;\n const targetAsHtmlElement = this._target as HTMLElement;\n if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n const targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n const targetWidth = targetBoundingRect.width - 2 /* Accounts for 1px border */;\n\n if (useTargetWidth) {\n contextMenuStyle = {\n width: targetWidth,\n };\n } else if (useTargetAsMinWidth) {\n contextMenuStyle = {\n minWidth: targetWidth,\n };\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 let totalItemCount = 0;\n for (const item of items) {\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n const itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount += itemCount;\n }\n }\n\n const calloutStyles = this._classNames.subComponentStyles\n ? (this._classNames.subComponentStyles.callout as IStyleFunctionOrObject<\n ICalloutContentStyleProps,\n ICalloutContentStyles\n >)\n : undefined;\n\n return (\n